-
-
Save nikic/3df8cd975e6a59d287dc00687be1ce27 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = '../MultiSource/Benchmarks/7zip/CPP/7zip/UI/Common/ArchiveCommandLine.cpp' | |
source_filename = "../MultiSource/Benchmarks/7zip/CPP/7zip/UI/Common/ArchiveCommandLine.cpp" | |
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.CStringBase = type { i32*, i32, i32 } | |
%"struct.NCommandLineParser::CSwitchForm" = type { i32*, i32, i8, i32, i32, i32* } | |
%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, %struct._IO_codecvt*, %struct._IO_wide_data*, %struct._IO_FILE*, i8*, i64, i32, [20 x i8] } | |
%struct._IO_marker = type opaque | |
%struct._IO_codecvt = type opaque | |
%struct._IO_wide_data = type opaque | |
%"struct.NCommandLineParser::CCommandForm" = type { i32*, i8 } | |
%"struct.NUpdateArchive::CActionSet" = type { [7 x i32] } | |
%class.CArchiveCommandLineParser = type { %"class.NCommandLineParser::CParser" } | |
%"class.NCommandLineParser::CParser" = type { i32, %"struct.NCommandLineParser::CSwitchResult"*, %class.CObjectVector } | |
%"struct.NCommandLineParser::CSwitchResult" = type <{ i8, i8, [6 x i8], %class.CObjectVector, i32, [4 x i8] }> | |
%class.CObjectVector = type { %class.CRecordVector } | |
%class.CRecordVector = type { %class.CBaseRecordVector } | |
%class.CBaseRecordVector = type { i32 (...)**, i32, i32, i8*, i64 } | |
%struct.CArchiveCommand = type { i32 } | |
%struct.CArchiveCommandLineOptions = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, %"class.NWildcard::CCensor", %struct.CArchiveCommand, %class.CStringBase, i8, %class.CStringBase, i8, i8, i8, %class.CStringBase, i32, %class.CObjectVector, %class.CObjectVector, %class.CObjectVector.1, %struct.CUpdateOptions, %class.CStringBase, i8, i32, i32, i32, %class.CStringBase } | |
%"class.NWildcard::CCensor" = type { %class.CObjectVector.0 } | |
%class.CObjectVector.0 = type { %class.CRecordVector } | |
%class.CObjectVector.1 = type { %class.CRecordVector } | |
%struct.CUpdateOptions = type { %struct.CCompressionMethodMode, %class.CObjectVector.2, i8, %struct.CArchivePath, i8, %class.CStringBase, i8, i8, %class.CStringBase, i8, i8, i8, %class.CStringBase, %class.CStringBase, %class.CRecordVector.3 } | |
%struct.CCompressionMethodMode = type { i32, %class.CObjectVector.1 } | |
%class.CObjectVector.2 = type { %class.CRecordVector } | |
%struct.CArchivePath = type { %class.CStringBase, %class.CStringBase, %class.CStringBase, %class.CStringBase, %class.CStringBase, i8, %class.CStringBase, %class.CStringBase } | |
%class.CRecordVector.3 = type { %class.CBaseRecordVector } | |
%class.CDirItems = type { %class.CObjectVector, %class.CRecordVector.4, %class.CRecordVector.4, %class.CObjectVector.5 } | |
%class.CRecordVector.4 = type { %class.CBaseRecordVector } | |
%class.CObjectVector.5 = type { %class.CRecordVector } | |
%class.CRecordVector.6 = type { %class.CBaseRecordVector } | |
%struct.CDirItem = type <{ i64, %struct._FILETIME, %struct._FILETIME, %struct._FILETIME, %class.CStringBase, i32, i32, i32, [4 x i8] }> | |
%struct._FILETIME = type { i32, i32 } | |
%struct.IEnumDirItemCallback = type { i32 (...)** } | |
%"struct.NWildcard::CPair" = type { %class.CStringBase, %"class.NWildcard::CCensorNode" } | |
%"class.NWildcard::CCensorNode" = type { %"class.NWildcard::CCensorNode"*, %class.CStringBase, %class.CObjectVector.7, %class.CObjectVector.8, %class.CObjectVector.8 } | |
%class.CObjectVector.7 = type { %class.CRecordVector } | |
%class.CObjectVector.8 = type { %class.CRecordVector } | |
%struct.CArchiveCommandLineException = type { %class.CStringBase.9 } | |
%class.CStringBase.9 = type { i8*, i32, i32 } | |
%struct.CProperty = type { %class.CStringBase, %class.CStringBase } | |
%struct.CUpdateArchiveCommand = type <{ %class.CStringBase, %struct.CArchivePath, %"struct.NUpdateArchive::CActionSet", [4 x i8] }> | |
%"struct.NWildcard::CItem" = type <{ %class.CObjectVector, i8, i8, i8, [5 x i8] }> | |
$_ZN11CStringBaseIwEC2EPKw = comdat any | |
$_ZN11CStringBaseIwED2Ev = comdat any | |
$__clang_call_terminate = comdat any | |
$_ZNK13CObjectVectorI11CStringBaseIwEE5FrontEv = comdat any | |
$_ZNK11CStringBaseIwE7IsEmptyEv = comdat any | |
$_ZNK17CBaseRecordVector4SizeEv = comdat any | |
$_ZNK13CObjectVectorI11CStringBaseIwEEixEi = comdat any | |
$_ZN11CStringBaseIwEaSERKS0_ = comdat any | |
$_ZNK9NWildcard7CCensor14AllAreRelativeEv = comdat any | |
$_ZN9NWildcard7CCensorC2Ev = comdat any | |
$_ZNK11CStringBaseIwE4FindERKS0_ = comdat any | |
$_ZN11CStringBaseIwEC2ERKS0_ = comdat any | |
$_ZN13CObjectVectorI11CStringBaseIwEE3AddERKS1_ = comdat any | |
$_ZN13CObjectVectorI11CStringBaseIwEEC2Ev = comdat any | |
$_ZN9CDirItemsC2Ev = comdat any | |
$_ZN13CRecordVectorIjEC2Ev = comdat any | |
$_ZN13CObjectVectorI11CStringBaseIwEED2Ev = comdat any | |
$_ZN13CObjectVectorI8CDirItemEixEi = comdat any | |
$_ZNK8CDirItem5IsDirEv = comdat any | |
$_ZN9CDirItemsD2Ev = comdat any | |
$_ZN11CStringBaseIwEC2Ev = comdat any | |
$_ZN13CObjectVectorI11CStringBaseIwEEixEi = comdat any | |
$_ZNK11CStringBaseIwEcvPKwEv = comdat any | |
$_ZN13CRecordVectorIiEC2Ev = comdat any | |
$_ZN13CRecordVectorIiEixEi = comdat any | |
$_ZN9NWildcard7CCensorD2Ev = comdat any | |
$_ZNK11CStringBaseIwE6LengthEv = comdat any | |
$_ZN11CStringBaseIwE6DeleteEii = comdat any | |
$_ZN11CStringBaseIwE9MakeUpperEv = comdat any | |
$_ZNK11CStringBaseIwE3MidEi = comdat any | |
$_ZNK11CStringBaseIwE4FindEw = comdat any | |
$_ZNK11CStringBaseIwE4FindEwi = comdat any | |
$_ZN11CStringBaseIwE18GetNextCharPointerEPw = comdat any | |
$_Z26MyStringGetNextCharPointerPw = comdat any | |
$_ZNK13CObjectVectorIN9NWildcard5CPairEE5FrontEv = comdat any | |
$_ZNK13CObjectVectorIN9NWildcard5CPairEEixEi = comdat any | |
$_ZNK13CRecordVectorIPvEixEi = comdat any | |
$_ZN28CArchiveCommandLineExceptionC2EPKc = comdat any | |
$_ZN11CStringBaseIcED2Ev = comdat any | |
$_ZN11CStringBaseIcEC2EPKc = comdat any | |
$_Z11MyStringLenIcEiPKT_ = comdat any | |
$_ZN11CStringBaseIcE11SetCapacityEi = comdat any | |
$_Z12MyStringCopyIcEPT_S1_PKS0_ = comdat any | |
$_ZN13CObjectVectorIN9NWildcard5CPairEEC2Ev = comdat any | |
$_ZN13CRecordVectorIPvEC2Ev = comdat any | |
$_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev = comdat any | |
$_ZN13CObjectVectorIN9NWildcard5CPairEED0Ev = comdat any | |
$_ZN13CObjectVectorIN9NWildcard5CPairEE6DeleteEii = comdat any | |
$_ZN17CBaseRecordVectorC2Em = comdat any | |
$_ZN13CRecordVectorIPvED0Ev = comdat any | |
$_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi = comdat any | |
$_ZN9NWildcard5CPairD2Ev = comdat any | |
$_ZN9NWildcard11CCensorNodeD2Ev = comdat any | |
$_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev = comdat any | |
$_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev = comdat any | |
$_ZN13CObjectVectorIN9NWildcard5CItemEED0Ev = comdat any | |
$_ZN13CObjectVectorIN9NWildcard5CItemEE6DeleteEii = comdat any | |
$_ZN9NWildcard5CItemD2Ev = comdat any | |
$_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED0Ev = comdat any | |
$_ZN13CObjectVectorIN9NWildcard11CCensorNodeEE6DeleteEii = comdat any | |
$_ZN13CObjectVectorI8CDirItemEC2Ev = comdat any | |
$_ZN13CObjectVectorI8CDirItemED2Ev = comdat any | |
$_ZN13CObjectVectorI8CDirItemED0Ev = comdat any | |
$_ZN13CObjectVectorI8CDirItemE6DeleteEii = comdat any | |
$_ZN8CDirItemD2Ev = comdat any | |
$_ZN9CPropertyC2Ev = comdat any | |
$_ZNK11CStringBaseIwE4LeftEi = comdat any | |
$_ZN13CObjectVectorI9CPropertyE3AddERKS0_ = comdat any | |
$_ZN9CPropertyD2Ev = comdat any | |
$_ZNK11CStringBaseIwE3MidEii = comdat any | |
$_ZN11CStringBaseIwE11SetCapacityEi = comdat any | |
$_ZN13CRecordVectorIPvE3AddES0_ = comdat any | |
$_ZN9CPropertyC2ERKS_ = comdat any | |
$_ZN21CUpdateArchiveCommandC2Ev = comdat any | |
$_ZN13CObjectVectorI21CUpdateArchiveCommandE3AddERKS0_ = comdat any | |
$_ZN13CRecordVectorIyE3AddEy = comdat any | |
$_ZN21CUpdateArchiveCommandD2Ev = comdat any | |
$_ZN12CArchivePathC2Ev = comdat any | |
$_ZN21CUpdateArchiveCommandC2ERKS_ = comdat any | |
$_ZN12CArchivePathC2ERKS_ = comdat any | |
$_ZNK11CStringBaseIwE13CompareNoCaseEPKw = comdat any | |
$_ZN13CObjectVectorI21CUpdateArchiveCommandE6DeleteEii = comdat any | |
$_ZN13CObjectVectorI21CUpdateArchiveCommandEixEi = comdat any | |
$_ZN11CStringBaseIwE5EmptyEv = comdat any | |
$_ZN13CRecordVectorIPvEixEi = comdat any | |
$_ZN12CArchivePathD2Ev = comdat any | |
$_Z12MyStringCopyIwEPT_S1_PKS0_ = comdat any | |
$_ZN13CObjectVectorI11CStringBaseIwEED0Ev = comdat any | |
$_ZN13CObjectVectorI11CStringBaseIwEE6DeleteEii = comdat any | |
$_Z11MyStringLenIwEiPKT_ = comdat any | |
$_ZNK11CStringBaseIwE4FindERKS0_i = comdat any | |
$_ZN13CRecordVectorIiED0Ev = comdat any | |
$_ZN13CRecordVectorIjED0Ev = comdat any | |
$_ZN11CStringBaseIwE9MoveItemsEii = comdat any | |
$_ZTS28CArchiveCommandLineException = comdat any | |
$_ZTS11CStringBaseIcE = comdat any | |
$_ZTI11CStringBaseIcE = comdat any | |
$_ZTI28CArchiveCommandLineException = comdat any | |
$_ZTV13CObjectVectorIN9NWildcard5CPairEE = comdat any | |
$_ZTS13CObjectVectorIN9NWildcard5CPairEE = comdat any | |
$_ZTS13CRecordVectorIPvE = comdat any | |
$_ZTI13CRecordVectorIPvE = comdat any | |
$_ZTI13CObjectVectorIN9NWildcard5CPairEE = comdat any | |
$_ZTV13CRecordVectorIPvE = comdat any | |
$_ZTV13CObjectVectorIN9NWildcard5CItemEE = comdat any | |
$_ZTS13CObjectVectorIN9NWildcard5CItemEE = comdat any | |
$_ZTI13CObjectVectorIN9NWildcard5CItemEE = comdat any | |
$_ZTV13CObjectVectorIN9NWildcard11CCensorNodeEE = comdat any | |
$_ZTS13CObjectVectorIN9NWildcard11CCensorNodeEE = comdat any | |
$_ZTI13CObjectVectorIN9NWildcard11CCensorNodeEE = comdat any | |
$_ZTV13CObjectVectorI8CDirItemE = comdat any | |
$_ZTS13CObjectVectorI8CDirItemE = comdat any | |
$_ZTI13CObjectVectorI8CDirItemE = comdat any | |
$_ZTV13CObjectVectorI11CStringBaseIwEE = comdat any | |
$_ZTS13CObjectVectorI11CStringBaseIwEE = comdat any | |
$_ZTI13CObjectVectorI11CStringBaseIwEE = comdat any | |
$_ZTV13CRecordVectorIiE = comdat any | |
$_ZTS13CRecordVectorIiE = comdat any | |
$_ZTI13CRecordVectorIiE = comdat any | |
$_ZTV13CRecordVectorIjE = comdat any | |
$_ZTS13CRecordVectorIjE = comdat any | |
$_ZTI13CRecordVectorIjE = comdat any | |
@k_OverwriteModes = dso_local global [4 x i32] [i32 1, i32 2, i32 3, i32 4], align 16 | |
@_ZL21kUpdatePairStateIDSet = internal global %class.CStringBase zeroinitializer, align 8 | |
@.str = private unnamed_addr constant [8 x i32] [i32 80, i32 81, i32 82, i32 88, i32 89, i32 90, i32 87, i32 0], align 4 | |
@__dso_handle = external hidden global i8 | |
@_ZL22kUpdatePairActionIDSet = internal global %class.CStringBase zeroinitializer, align 8 | |
@.str.2 = private unnamed_addr constant [5 x i32] [i32 48, i32 49, i32 50, i32 51, i32 0], align 4 | |
@.str.3 = private unnamed_addr constant [2 x i32] [i32 45, i32 0], align 4 | |
@kUpdateIgnoreItselfPostStringID = dso_local global i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.3, i32 0, i32 0), align 8 | |
@_ZL12kSwitchForms = internal global [30 x %"struct.NCommandLineParser::CSwitchForm"] zeroinitializer, align 16 | |
@stdin = external dso_local global %struct._IO_FILE*, align 8 | |
@stdout = external dso_local global %struct._IO_FILE*, align 8 | |
@stderr = external dso_local global %struct._IO_FILE*, align 8 | |
@g_CaseSensitive = external dso_local global i8, align 1 | |
@global_use_lstat = external dso_local global i32, align 4 | |
@.str.4 = private unnamed_addr constant [47 x i8] c"Cannot use absolute pathnames for this command\00", align 1 | |
@_ZL18kUniversalWildcard = internal global i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.49, i32 0, i32 0), align 8 | |
@.str.5 = private unnamed_addr constant [2 x i32] [i32 63, i32 0], align 4 | |
@.str.6 = private unnamed_addr constant [20 x i8] c"cannot find archive\00", align 1 | |
@_ZTIPKc = external dso_local constant i8* | |
@.str.7 = private unnamed_addr constant [25 x i8] c"there is no such archive\00", align 1 | |
@_ZL18kSameTerminalError = internal global i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.50, i32 0, i32 0), align 8 | |
@.str.8 = private unnamed_addr constant [46 x i8] c"stdout mode and email mode cannot be combined\00", align 1 | |
@_ZL17kTerminalOutError = internal global i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.52, i32 0, i32 0), align 8 | |
@.str.9 = private unnamed_addr constant [2 x i32] [i32 72, i32 0], align 4 | |
@.str.10 = private unnamed_addr constant [6 x i32] [i32 45, i32 72, i32 69, i32 76, i32 80, i32 0], align 4 | |
@.str.11 = private unnamed_addr constant [3 x i32] [i32 66, i32 65, i32 0], align 4 | |
@.str.12 = private unnamed_addr constant [3 x i32] [i32 66, i32 68, i32 0], align 4 | |
@.str.13 = private unnamed_addr constant [2 x i32] [i32 84, i32 0], align 4 | |
@.str.14 = private unnamed_addr constant [2 x i32] [i32 89, i32 0], align 4 | |
@.str.15 = private unnamed_addr constant [2 x i32] [i32 80, i32 0], align 4 | |
@.str.16 = private unnamed_addr constant [2 x i32] [i32 77, i32 0], align 4 | |
@.str.17 = private unnamed_addr constant [2 x i32] [i32 79, i32 0], align 4 | |
@.str.18 = private unnamed_addr constant [2 x i32] [i32 87, i32 0], align 4 | |
@.str.19 = private unnamed_addr constant [2 x i32] [i32 73, i32 0], align 4 | |
@.str.20 = private unnamed_addr constant [2 x i32] [i32 88, i32 0], align 4 | |
@.str.21 = private unnamed_addr constant [3 x i32] [i32 65, i32 73, i32 0], align 4 | |
@.str.22 = private unnamed_addr constant [3 x i32] [i32 65, i32 88, i32 0], align 4 | |
@.str.23 = private unnamed_addr constant [3 x i32] [i32 65, i32 78, i32 0], align 4 | |
@.str.24 = private unnamed_addr constant [2 x i32] [i32 85, i32 0], align 4 | |
@.str.25 = private unnamed_addr constant [2 x i32] [i32 86, i32 0], align 4 | |
@.str.26 = private unnamed_addr constant [2 x i32] [i32 82, i32 0], align 4 | |
@_ZL20kRecursedPostCharSet = internal global i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.39, i32 0, i32 0), align 8 | |
@.str.28 = private unnamed_addr constant [4 x i32] [i32 83, i32 70, i32 88, i32 0], align 4 | |
@.str.29 = private unnamed_addr constant [3 x i32] [i32 83, i32 73, i32 0], align 4 | |
@.str.30 = private unnamed_addr constant [3 x i32] [i32 83, i32 79, i32 0], align 4 | |
@.str.31 = private unnamed_addr constant [3 x i32] [i32 65, i32 79, i32 0], align 4 | |
@_ZL21kOverwritePostCharSet = internal global i32* getelementptr inbounds ([5 x i32], [5 x i32]* @.str.40, i32 0, i32 0), align 8 | |
@.str.32 = private unnamed_addr constant [5 x i32] [i32 83, i32 69, i32 77, i32 76, i32 0], align 4 | |
@.str.33 = private unnamed_addr constant [3 x i32] [i32 65, i32 68, i32 0], align 4 | |
@.str.34 = private unnamed_addr constant [4 x i32] [i32 83, i32 76, i32 80, i32 0], align 4 | |
@.str.35 = private unnamed_addr constant [2 x i32] [i32 76, i32 0], align 4 | |
@.str.36 = private unnamed_addr constant [4 x i32] [i32 83, i32 76, i32 84, i32 0], align 4 | |
@.str.37 = private unnamed_addr constant [4 x i32] [i32 83, i32 83, i32 67, i32 0], align 4 | |
@.str.38 = private unnamed_addr constant [5 x i32] [i32 83, i32 67, i32 82, i32 67, i32 0], align 4 | |
@.str.39 = private unnamed_addr constant [3 x i32] [i32 48, i32 45, i32 0], align 4 | |
@.str.40 = private unnamed_addr constant [5 x i32] [i32 97, i32 115, i32 117, i32 116, i32 0], align 4 | |
@_ZL17kUserErrorMessage = internal global i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.41, i32 0, i32 0), align 8 | |
@.str.41 = private unnamed_addr constant [23 x i8] c"Incorrect command line\00", align 1 | |
@_ZL14g_CommandForms = internal constant [9 x %"struct.NCommandLineParser::CCommandForm"] [%"struct.NCommandLineParser::CCommandForm" { i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.42, i32 0, i32 0), i8 0 }, %"struct.NCommandLineParser::CCommandForm" { i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.24, i32 0, i32 0), i8 0 }, %"struct.NCommandLineParser::CCommandForm" { i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.43, i32 0, i32 0), i8 0 }, %"struct.NCommandLineParser::CCommandForm" { i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.13, i32 0, i32 0), i8 0 }, %"struct.NCommandLineParser::CCommandForm" { i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.44, i32 0, i32 0), i8 0 }, %"struct.NCommandLineParser::CCommandForm" { i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.20, i32 0, i32 0), i8 0 }, %"struct.NCommandLineParser::CCommandForm" { i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.35, i32 0, i32 0), i8 0 }, %"struct.NCommandLineParser::CCommandForm" { i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.45, i32 0, i32 0), i8 0 }, %"struct.NCommandLineParser::CCommandForm" { i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.19, i32 0, i32 0), i8 0 }], align 16 | |
@.str.42 = private unnamed_addr constant [2 x i32] [i32 65, i32 0], align 4 | |
@.str.43 = private unnamed_addr constant [2 x i32] [i32 68, i32 0], align 4 | |
@.str.44 = private unnamed_addr constant [2 x i32] [i32 69, i32 0], align 4 | |
@.str.45 = private unnamed_addr constant [2 x i32] [i32 66, i32 0], align 4 | |
@_ZL19kCannotFindListFile = internal global i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.46, i32 0, i32 0), align 8 | |
@_ZL18kIncorrectListFile = internal global i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.47, i32 0, i32 0), align 8 | |
@.str.46 = private unnamed_addr constant [21 x i8] c"Cannot find listfile\00", align 1 | |
@.str.47 = private unnamed_addr constant [68 x i8] c"Incorrect item in listfile.\0ACheck charset encoding and -scs switch.\00", align 1 | |
@_ZL14kEmptyFilePath = internal global i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.48, i32 0, i32 0), align 8 | |
@.str.48 = private unnamed_addr constant [16 x i8] c"Empty file path\00", align 1 | |
@_ZTVN10__cxxabiv120__si_class_type_infoE = external dso_local global i8* | |
@_ZTS28CArchiveCommandLineException = linkonce_odr dso_local constant [31 x i8] c"28CArchiveCommandLineException\00", comdat, align 1 | |
@_ZTVN10__cxxabiv117__class_type_infoE = external dso_local global i8* | |
@_ZTS11CStringBaseIcE = linkonce_odr dso_local constant [17 x i8] c"11CStringBaseIcE\00", comdat, align 1 | |
@_ZTI11CStringBaseIcE = linkonce_odr dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([17 x i8], [17 x i8]* @_ZTS11CStringBaseIcE, i32 0, i32 0) }, comdat, align 8 | |
@_ZTI28CArchiveCommandLineException = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @_ZTS28CArchiveCommandLineException, i32 0, i32 0), i8* bitcast ({ i8*, i8* }* @_ZTI11CStringBaseIcE to i8*) }, comdat, align 8 | |
@_ZTV13CObjectVectorIN9NWildcard5CPairEE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorIN9NWildcard5CPairEE to i8*), i8* bitcast (void (%class.CObjectVector.0*)* @_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.0*)* @_ZN13CObjectVectorIN9NWildcard5CPairEED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.0*, i32, i32)* @_ZN13CObjectVectorIN9NWildcard5CPairEE6DeleteEii to i8*)] }, comdat, align 8 | |
@_ZTS13CObjectVectorIN9NWildcard5CPairEE = linkonce_odr dso_local constant [36 x i8] c"13CObjectVectorIN9NWildcard5CPairEE\00", comdat, align 1 | |
@_ZTS13CRecordVectorIPvE = linkonce_odr dso_local constant [20 x i8] c"13CRecordVectorIPvE\00", comdat, align 1 | |
@_ZTI17CBaseRecordVector = external dso_local constant i8* | |
@_ZTI13CRecordVectorIPvE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([20 x i8], [20 x i8]* @_ZTS13CRecordVectorIPvE, i32 0, i32 0), i8* bitcast (i8** @_ZTI17CBaseRecordVector to i8*) }, comdat, align 8 | |
@_ZTI13CObjectVectorIN9NWildcard5CPairEE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([36 x i8], [36 x i8]* @_ZTS13CObjectVectorIN9NWildcard5CPairEE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8 | |
@_ZTV13CRecordVectorIPvE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to i8*), i8* bitcast (void (%class.CRecordVector*)* @_ZN13CRecordVectorIPvED0Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*, i32, i32)* @_ZN17CBaseRecordVector6DeleteEii to i8*)] }, comdat, align 8 | |
@_ZTV17CBaseRecordVector = available_externally dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast (i8** @_ZTI17CBaseRecordVector to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD1Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD0Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*, i32, i32)* @_ZN17CBaseRecordVector6DeleteEii to i8*)] }, align 8 | |
@_ZTV13CObjectVectorIN9NWildcard5CItemEE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorIN9NWildcard5CItemEE to i8*), i8* bitcast (void (%class.CObjectVector.8*)* @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.8*)* @_ZN13CObjectVectorIN9NWildcard5CItemEED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.8*, i32, i32)* @_ZN13CObjectVectorIN9NWildcard5CItemEE6DeleteEii to i8*)] }, comdat, align 8 | |
@_ZTS13CObjectVectorIN9NWildcard5CItemEE = linkonce_odr dso_local constant [36 x i8] c"13CObjectVectorIN9NWildcard5CItemEE\00", comdat, align 1 | |
@_ZTI13CObjectVectorIN9NWildcard5CItemEE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([36 x i8], [36 x i8]* @_ZTS13CObjectVectorIN9NWildcard5CItemEE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8 | |
@_ZTV13CObjectVectorIN9NWildcard11CCensorNodeEE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorIN9NWildcard11CCensorNodeEE to i8*), i8* bitcast (void (%class.CObjectVector.7*)* @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.7*)* @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.7*, i32, i32)* @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEE6DeleteEii to i8*)] }, comdat, align 8 | |
@_ZTS13CObjectVectorIN9NWildcard11CCensorNodeEE = linkonce_odr dso_local constant [43 x i8] c"13CObjectVectorIN9NWildcard11CCensorNodeEE\00", comdat, align 1 | |
@_ZTI13CObjectVectorIN9NWildcard11CCensorNodeEE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([43 x i8], [43 x i8]* @_ZTS13CObjectVectorIN9NWildcard11CCensorNodeEE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8 | |
@.str.49 = private unnamed_addr constant [2 x i32] [i32 42, i32 0], align 4 | |
@_ZTV13CObjectVectorI8CDirItemE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorI8CDirItemE to i8*), i8* bitcast (void (%class.CObjectVector.5*)* @_ZN13CObjectVectorI8CDirItemED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.5*)* @_ZN13CObjectVectorI8CDirItemED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.5*, i32, i32)* @_ZN13CObjectVectorI8CDirItemE6DeleteEii to i8*)] }, comdat, align 8 | |
@_ZTS13CObjectVectorI8CDirItemE = linkonce_odr dso_local constant [27 x i8] c"13CObjectVectorI8CDirItemE\00", comdat, align 1 | |
@_ZTI13CObjectVectorI8CDirItemE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @_ZTS13CObjectVectorI8CDirItemE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8 | |
@.str.50 = private unnamed_addr constant [59 x i8] c"I won't write data and program's messages to same terminal\00", align 1 | |
@_ZN14NUpdateArchive13kAddActionSetE = external dso_local global %"struct.NUpdateArchive::CActionSet", align 4 | |
@_ZN14NUpdateArchive16kDeleteActionSetE = external dso_local global %"struct.NUpdateArchive::CActionSet", align 4 | |
@_ZN14NUpdateArchive16kUpdateActionSetE = external dso_local global %"struct.NUpdateArchive::CActionSet", align 4 | |
@.str.51 = private unnamed_addr constant [22 x i8] c"Incorrect volume size\00", align 1 | |
@_ZL35kUpdatePairStateNotSupportedActions = internal constant [7 x i32] [i32 2, i32 2, i32 1, i32 -1, i32 -1, i32 -1, i32 -1], align 16 | |
@_ZTIi = external dso_local constant i8* | |
@.str.52 = private unnamed_addr constant [44 x i8] c"I won't write compressed data to a terminal\00", align 1 | |
@_ZTV13CObjectVectorI11CStringBaseIwEE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorI11CStringBaseIwEE to i8*), i8* bitcast (void (%class.CObjectVector*)* @_ZN13CObjectVectorI11CStringBaseIwEED2Ev to i8*), i8* bitcast (void (%class.CObjectVector*)* @_ZN13CObjectVectorI11CStringBaseIwEED0Ev to i8*), i8* bitcast (void (%class.CObjectVector*, i32, i32)* @_ZN13CObjectVectorI11CStringBaseIwEE6DeleteEii to i8*)] }, comdat, align 8 | |
@_ZTS13CObjectVectorI11CStringBaseIwEE = linkonce_odr dso_local constant [34 x i8] c"13CObjectVectorI11CStringBaseIwEE\00", comdat, align 1 | |
@_ZTI13CObjectVectorI11CStringBaseIwEE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([34 x i8], [34 x i8]* @_ZTS13CObjectVectorI11CStringBaseIwEE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8 | |
@_ZTV13CRecordVectorIiE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIiE to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to i8*), i8* bitcast (void (%class.CRecordVector.4*)* @_ZN13CRecordVectorIiED0Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*, i32, i32)* @_ZN17CBaseRecordVector6DeleteEii to i8*)] }, comdat, align 8 | |
@_ZTS13CRecordVectorIiE = linkonce_odr dso_local constant [19 x i8] c"13CRecordVectorIiE\00", comdat, align 1 | |
@_ZTI13CRecordVectorIiE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @_ZTS13CRecordVectorIiE, i32 0, i32 0), i8* bitcast (i8** @_ZTI17CBaseRecordVector to i8*) }, comdat, align 8 | |
@_ZTV13CRecordVectorIjE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIjE to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to i8*), i8* bitcast (void (%class.CRecordVector.6*)* @_ZN13CRecordVectorIjED0Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*, i32, i32)* @_ZN17CBaseRecordVector6DeleteEii to i8*)] }, comdat, align 8 | |
@_ZTS13CRecordVectorIjE = linkonce_odr dso_local constant [19 x i8] c"13CRecordVectorIjE\00", comdat, align 1 | |
@_ZTI13CRecordVectorIjE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @_ZTS13CRecordVectorIjE, i32 0, i32 0), i8* bitcast (i8** @_ZTI17CBaseRecordVector to i8*) }, comdat, align 8 | |
@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_ArchiveCommandLine.cpp, i8* null }] | |
@_ZN25CArchiveCommandLineParserC1Ev = dso_local unnamed_addr alias void (%class.CArchiveCommandLineParser*), void (%class.CArchiveCommandLineParser*)* @_ZN25CArchiveCommandLineParserC2Ev | |
; Function Attrs: mustprogress nounwind uwtable | |
define dso_local zeroext i1 @_ZNK15CArchiveCommand18IsFromExtractGroupEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %this) #0 align 2 { | |
entry: | |
%retval = alloca i1, align 1 | |
%this.addr = alloca %struct.CArchiveCommand*, align 8 | |
store %struct.CArchiveCommand* %this, %struct.CArchiveCommand** %this.addr, align 8, !tbaa !3 | |
%this1 = load %struct.CArchiveCommand*, %struct.CArchiveCommand** %this.addr, align 8 | |
%CommandType = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %this1, i32 0, i32 0 | |
%0 = load i32, i32* %CommandType, align 4, !tbaa !7 | |
switch i32 %0, label %sw.default [ | |
i32 3, label %sw.bb | |
i32 4, label %sw.bb | |
i32 5, label %sw.bb | |
] | |
sw.bb: ; preds = %entry, %entry, %entry | |
store i1 true, i1* %retval, align 1 | |
br label %return | |
sw.default: ; preds = %entry | |
store i1 false, i1* %retval, align 1 | |
br label %return | |
return: ; preds = %sw.default, %sw.bb | |
%1 = load i1, i1* %retval, align 1 | |
ret i1 %1 | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define dso_local i32 @_ZNK15CArchiveCommand11GetPathModeEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %this) #0 align 2 { | |
entry: | |
%retval = alloca i32, align 4 | |
%this.addr = alloca %struct.CArchiveCommand*, align 8 | |
store %struct.CArchiveCommand* %this, %struct.CArchiveCommand** %this.addr, align 8, !tbaa !3 | |
%this1 = load %struct.CArchiveCommand*, %struct.CArchiveCommand** %this.addr, align 8 | |
%CommandType = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %this1, i32 0, i32 0 | |
%0 = load i32, i32* %CommandType, align 4, !tbaa !7 | |
switch i32 %0, label %sw.default [ | |
i32 3, label %sw.bb | |
i32 5, label %sw.bb | |
] | |
sw.bb: ; preds = %entry, %entry | |
store i32 0, i32* %retval, align 4 | |
br label %return | |
sw.default: ; preds = %entry | |
store i32 2, i32* %retval, align 4 | |
br label %return | |
return: ; preds = %sw.default, %sw.bb | |
%1 = load i32, i32* %retval, align 4 | |
ret i32 %1 | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define dso_local zeroext i1 @_ZNK15CArchiveCommand17IsFromUpdateGroupEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %this) #0 align 2 { | |
entry: | |
%this.addr = alloca %struct.CArchiveCommand*, align 8 | |
store %struct.CArchiveCommand* %this, %struct.CArchiveCommand** %this.addr, align 8, !tbaa !3 | |
%this1 = load %struct.CArchiveCommand*, %struct.CArchiveCommand** %this.addr, align 8 | |
%CommandType = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %this1, i32 0, i32 0 | |
%0 = load i32, i32* %CommandType, align 4, !tbaa !7 | |
%cmp = icmp eq i32 %0, 0 | |
br i1 %cmp, label %lor.end, label %lor.lhs.false | |
lor.lhs.false: ; preds = %entry | |
%CommandType2 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %this1, i32 0, i32 0 | |
%1 = load i32, i32* %CommandType2, align 4, !tbaa !7 | |
%cmp3 = icmp eq i32 %1, 1 | |
br i1 %cmp3, label %lor.end, label %lor.rhs | |
lor.rhs: ; preds = %lor.lhs.false | |
%CommandType4 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %this1, i32 0, i32 0 | |
%2 = load i32, i32* %CommandType4, align 4, !tbaa !7 | |
%cmp5 = icmp eq i32 %2, 2 | |
br label %lor.end | |
lor.end: ; preds = %lor.rhs, %lor.lhs.false, %entry | |
%3 = phi i1 [ true, %lor.lhs.false ], [ true, %entry ], [ %cmp5, %lor.rhs ] | |
ret i1 %3 | |
} | |
; Function Attrs: uwtable | |
define internal void @__cxx_global_var_init() #1 section ".text.startup" { | |
entry: | |
call void @_ZN11CStringBaseIwEC2EPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) @_ZL21kUpdatePairStateIDSet, i32* getelementptr inbounds ([8 x i32], [8 x i32]* @.str, i64 0, i64 0)) | |
%0 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%class.CStringBase*)* @_ZN11CStringBaseIwED2Ev to void (i8*)*), i8* bitcast (%class.CStringBase* @_ZL21kUpdatePairStateIDSet to i8*), i8* @__dso_handle) #3 | |
ret void | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN11CStringBaseIwEC2EPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32* %chars) unnamed_addr #1 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%chars.addr = alloca i32*, align 8 | |
%length = alloca i32, align 4 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
store i32* %chars, i32** %chars.addr, align 8, !tbaa !3 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
store i32* null, i32** %_chars, align 8, !tbaa !10 | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
store i32 0, i32* %_length, align 8, !tbaa !13 | |
%_capacity = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 2 | |
store i32 0, i32* %_capacity, align 4, !tbaa !14 | |
%0 = bitcast i32* %length to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3 | |
%1 = load i32*, i32** %chars.addr, align 8, !tbaa !3 | |
%call = call i32 @_Z11MyStringLenIwEiPKT_(i32* %1) | |
store i32 %call, i32* %length, align 4, !tbaa !15 | |
%2 = load i32, i32* %length, align 4, !tbaa !15 | |
call void @_ZN11CStringBaseIwE11SetCapacityEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 %2) | |
%_chars2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%3 = load i32*, i32** %_chars2, align 8, !tbaa !10 | |
%4 = load i32*, i32** %chars.addr, align 8, !tbaa !3 | |
%call3 = call i32* @_Z12MyStringCopyIwEPT_S1_PKS0_(i32* %3, i32* %4) | |
%5 = load i32, i32* %length, align 4, !tbaa !15 | |
%_length4 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
store i32 %5, i32* %_length4, align 8, !tbaa !13 | |
%6 = bitcast i32* %length to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %6) #3 | |
ret void | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%0 = load i32*, i32** %_chars, align 8, !tbaa !10 | |
%isnull = icmp eq i32* %0, null | |
br i1 %isnull, label %delete.end, label %delete.notnull | |
delete.notnull: ; preds = %entry | |
%1 = bitcast i32* %0 to i8* | |
call void @_ZdaPv(i8* %1) #16 | |
br label %delete.end | |
delete.end: ; preds = %delete.notnull, %entry | |
ret void | |
} | |
; Function Attrs: nounwind | |
declare dso_local i32 @__cxa_atexit(void (i8*)*, i8*, i8*) #3 | |
; Function Attrs: uwtable | |
define internal void @__cxx_global_var_init.1() #1 section ".text.startup" { | |
entry: | |
call void @_ZN11CStringBaseIwEC2EPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) @_ZL22kUpdatePairActionIDSet, i32* getelementptr inbounds ([5 x i32], [5 x i32]* @.str.2, i64 0, i64 0)) | |
%0 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%class.CStringBase*)* @_ZN11CStringBaseIwED2Ev to void (i8*)*), i8* bitcast (%class.CStringBase* @_ZL22kUpdatePairActionIDSet to i8*), i8* @__dso_handle) #3 | |
ret void | |
} | |
; Function Attrs: uwtable | |
define dso_local void @_ZN25CArchiveCommandLineParserC2Ev(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48) %this) unnamed_addr #1 align 2 { | |
entry: | |
%this.addr = alloca %class.CArchiveCommandLineParser*, align 8 | |
store %class.CArchiveCommandLineParser* %this, %class.CArchiveCommandLineParser** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CArchiveCommandLineParser*, %class.CArchiveCommandLineParser** %this.addr, align 8 | |
%parser = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
call void @_ZN18NCommandLineParser7CParserC1Ei(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser, i32 30) | |
ret void | |
} | |
declare dso_local void @_ZN18NCommandLineParser7CParserC1Ei(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48), i32) unnamed_addr #4 | |
; Function Attrs: mustprogress uwtable | |
define dso_local void @_ZN25CArchiveCommandLineParser6Parse1ERK13CObjectVectorI11CStringBaseIwEER26CArchiveCommandLineOptions(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48) %this, %class.CObjectVector* nonnull align 8 dereferenceable(32) %commandStrings, %struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592) %options) #5 align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CArchiveCommandLineParser*, align 8 | |
%commandStrings.addr = alloca %class.CObjectVector*, align 8 | |
%options.addr = alloca %struct.CArchiveCommandLineOptions*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
%postString = alloca %class.CStringBase*, align 8 | |
store %class.CArchiveCommandLineParser* %this, %class.CArchiveCommandLineParser** %this.addr, align 8, !tbaa !3 | |
store %class.CObjectVector* %commandStrings, %class.CObjectVector** %commandStrings.addr, align 8, !tbaa !3 | |
store %struct.CArchiveCommandLineOptions* %options, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%this1 = load %class.CArchiveCommandLineParser*, %class.CArchiveCommandLineParser** %this.addr, align 8 | |
%parser = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%0 = load %class.CObjectVector*, %class.CObjectVector** %commandStrings.addr, align 8, !tbaa !3 | |
invoke void @_ZN18NCommandLineParser7CParser12ParseStringsEPKNS_11CSwitchFormERK13CObjectVectorI11CStringBaseIwEE(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser, %"struct.NCommandLineParser::CSwitchForm"* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 0), %class.CObjectVector* nonnull align 8 dereferenceable(32) %0) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
br label %try.cont | |
lpad: ; preds = %entry | |
%1 = landingpad { i8*, i32 } | |
catch i8* null | |
%2 = extractvalue { i8*, i32 } %1, 0 | |
store i8* %2, i8** %exn.slot, align 8 | |
%3 = extractvalue { i8*, i32 } %1, 1 | |
store i32 %3, i32* %ehselector.slot, align 4 | |
br label %catch | |
catch: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%4 = call i8* @__cxa_begin_catch(i8* %exn) #3 | |
invoke void @_ZL23ThrowUserErrorExceptionv() | |
to label %invoke.cont3 unwind label %lpad2 | |
invoke.cont3: ; preds = %catch | |
call void @__cxa_end_catch() | |
br label %try.cont | |
try.cont: ; preds = %invoke.cont3, %invoke.cont | |
%5 = load %struct._IO_FILE*, %struct._IO_FILE** @stdin, align 8, !tbaa !3 | |
%call = call i32 @fileno(%struct._IO_FILE* %5) #3 | |
%call5 = call i32 @isatty(i32 %call) #3 | |
%cmp = icmp ne i32 %call5, 0 | |
%6 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%IsInTerminal = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %6, i32 0, i32 2 | |
%frombool = zext i1 %cmp to i8 | |
store i8 %frombool, i8* %IsInTerminal, align 2, !tbaa !16 | |
%7 = load %struct._IO_FILE*, %struct._IO_FILE** @stdout, align 8, !tbaa !3 | |
%call6 = call i32 @fileno(%struct._IO_FILE* %7) #3 | |
%call7 = call i32 @isatty(i32 %call6) #3 | |
%cmp8 = icmp ne i32 %call7, 0 | |
%8 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%IsStdOutTerminal = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %8, i32 0, i32 3 | |
%frombool9 = zext i1 %cmp8 to i8 | |
store i8 %frombool9, i8* %IsStdOutTerminal, align 1, !tbaa !29 | |
%9 = load %struct._IO_FILE*, %struct._IO_FILE** @stderr, align 8, !tbaa !3 | |
%call10 = call i32 @fileno(%struct._IO_FILE* %9) #3 | |
%call11 = call i32 @isatty(i32 %call10) #3 | |
%cmp12 = icmp ne i32 %call11, 0 | |
%10 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%IsStdErrTerminal = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %10, i32 0, i32 4 | |
%frombool13 = zext i1 %cmp12 to i8 | |
store i8 %frombool13, i8* %IsStdErrTerminal, align 4, !tbaa !30 | |
%parser14 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call15 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser14, i64 20) | |
%ThereIs = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call15, i32 0, i32 0 | |
%11 = load i8, i8* %ThereIs, align 8, !tbaa !31, !range !33 | |
%tobool = trunc i8 %11 to i1 | |
%12 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%StdInMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %12, i32 0, i32 5 | |
%frombool16 = zext i1 %tobool to i8 | |
store i8 %frombool16, i8* %StdInMode, align 1, !tbaa !34 | |
%parser17 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call18 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser17, i64 21) | |
%ThereIs19 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call18, i32 0, i32 0 | |
%13 = load i8, i8* %ThereIs19, align 8, !tbaa !31, !range !33 | |
%tobool20 = trunc i8 %13 to i1 | |
%14 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%StdOutMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %14, i32 0, i32 6 | |
%frombool21 = zext i1 %tobool20 to i8 | |
store i8 %frombool21, i8* %StdOutMode, align 2, !tbaa !35 | |
%parser22 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call23 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser22, i64 3) | |
%ThereIs24 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call23, i32 0, i32 0 | |
%15 = load i8, i8* %ThereIs24, align 8, !tbaa !31, !range !33 | |
%tobool25 = trunc i8 %15 to i1 | |
%lnot = xor i1 %tobool25, true | |
%16 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%EnableHeaders = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %16, i32 0, i32 7 | |
%frombool26 = zext i1 %lnot to i8 | |
store i8 %frombool26, i8* %EnableHeaders, align 1, !tbaa !36 | |
%parser27 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call28 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser27, i64 0) | |
%ThereIs29 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call28, i32 0, i32 0 | |
%17 = load i8, i8* %ThereIs29, align 8, !tbaa !31, !range !33 | |
%tobool30 = trunc i8 %17 to i1 | |
br i1 %tobool30, label %lor.end, label %lor.lhs.false | |
lor.lhs.false: ; preds = %try.cont | |
%parser31 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call32 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser31, i64 1) | |
%ThereIs33 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call32, i32 0, i32 0 | |
%18 = load i8, i8* %ThereIs33, align 8, !tbaa !31, !range !33 | |
%tobool34 = trunc i8 %18 to i1 | |
br i1 %tobool34, label %lor.end, label %lor.rhs | |
lor.rhs: ; preds = %lor.lhs.false | |
%parser35 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call36 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser35, i64 2) | |
%ThereIs37 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call36, i32 0, i32 0 | |
%19 = load i8, i8* %ThereIs37, align 8, !tbaa !31, !range !33 | |
%tobool38 = trunc i8 %19 to i1 | |
br label %lor.end | |
lor.end: ; preds = %lor.rhs, %lor.lhs.false, %try.cont | |
%20 = phi i1 [ true, %lor.lhs.false ], [ true, %try.cont ], [ %tobool38, %lor.rhs ] | |
%21 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%HelpMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %21, i32 0, i32 0 | |
%frombool39 = zext i1 %20 to i8 | |
store i8 %frombool39, i8* %HelpMode, align 8, !tbaa !37 | |
%22 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%LargePages = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %22, i32 0, i32 1 | |
store i8 0, i8* %LargePages, align 1, !tbaa !38 | |
%parser40 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call41 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser40, i64 25) | |
%ThereIs42 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call41, i32 0, i32 0 | |
%23 = load i8, i8* %ThereIs42, align 8, !tbaa !31, !range !33 | |
%tobool43 = trunc i8 %23 to i1 | |
br i1 %tobool43, label %if.then, label %if.end50 | |
if.then: ; preds = %lor.end | |
%24 = bitcast %class.CStringBase** %postString to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %24) #3 | |
%parser44 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call45 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser44, i64 25) | |
%PostStrings = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call45, i32 0, i32 3 | |
%call46 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEE5FrontEv(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings) | |
store %class.CStringBase* %call46, %class.CStringBase** %postString, align 8, !tbaa !3 | |
%25 = load %class.CStringBase*, %class.CStringBase** %postString, align 8, !tbaa !3 | |
%call47 = call zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %25) | |
br i1 %call47, label %if.then48, label %if.end | |
if.then48: ; preds = %if.then | |
%26 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%LargePages49 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %26, i32 0, i32 1 | |
store i8 1, i8* %LargePages49, align 1, !tbaa !38 | |
br label %if.end | |
lpad2: ; preds = %catch | |
%27 = landingpad { i8*, i32 } | |
cleanup | |
%28 = extractvalue { i8*, i32 } %27, 0 | |
store i8* %28, i8** %exn.slot, align 8 | |
%29 = extractvalue { i8*, i32 } %27, 1 | |
store i32 %29, i32* %ehselector.slot, align 4 | |
invoke void @__cxa_end_catch() | |
to label %invoke.cont4 unwind label %terminate.lpad | |
invoke.cont4: ; preds = %lpad2 | |
br label %eh.resume | |
if.end: ; preds = %if.then48, %if.then | |
%30 = bitcast %class.CStringBase** %postString to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %30) #3 | |
br label %if.end50 | |
if.end50: ; preds = %if.end, %lor.end | |
ret void | |
eh.resume: ; preds = %invoke.cont4 | |
%exn51 = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn51, 0 | |
%lpad.val52 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val52 | |
terminate.lpad: ; preds = %lpad2 | |
%31 = landingpad { i8*, i32 } | |
catch i8* null | |
%32 = extractvalue { i8*, i32 } %31, 0 | |
call void @__clang_call_terminate(i8* %32) #17 | |
unreachable | |
} | |
declare dso_local void @_ZN18NCommandLineParser7CParser12ParseStringsEPKNS_11CSwitchFormERK13CObjectVectorI11CStringBaseIwEE(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48), %"struct.NCommandLineParser::CSwitchForm"*, %class.CObjectVector* nonnull align 8 dereferenceable(32)) #4 | |
declare dso_local i32 @__gxx_personality_v0(...) | |
declare dso_local i8* @__cxa_begin_catch(i8*) | |
; Function Attrs: mustprogress uwtable | |
define internal void @_ZL23ThrowUserErrorExceptionv() #5 { | |
entry: | |
%0 = load i8*, i8** @_ZL17kUserErrorMessage, align 8, !tbaa !3 | |
call void @_ZL14ThrowExceptionPKc(i8* %0) | |
ret void | |
} | |
declare dso_local void @__cxa_end_catch() | |
; Function Attrs: noinline noreturn nounwind | |
define linkonce_odr hidden void @__clang_call_terminate(i8* %0) #6 comdat { | |
%2 = call i8* @__cxa_begin_catch(i8* %0) #3 | |
call void @_ZSt9terminatev() #17 | |
unreachable | |
} | |
declare dso_local void @_ZSt9terminatev() | |
; Function Attrs: nounwind | |
declare dso_local i32 @isatty(i32) #7 | |
; Function Attrs: nounwind | |
declare dso_local i32 @fileno(%struct._IO_FILE*) #7 | |
declare dso_local nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48), i64) #4 | |
; Function Attrs: argmemonly nofree nosync nounwind willreturn | |
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #8 | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEE5FrontEv(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector*, align 8 | |
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8 | |
%call = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this1, i32 0) | |
ret %class.CStringBase* %call | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%0 = load i32, i32* %_length, align 8, !tbaa !13 | |
%cmp = icmp eq i32 %0, 0 | |
ret i1 %cmp | |
} | |
; Function Attrs: argmemonly nofree nosync nounwind willreturn | |
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #8 | |
; Function Attrs: mustprogress uwtable | |
define dso_local void @_ZN25CArchiveCommandLineParser6Parse2ER26CArchiveCommandLineOptions(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48) %this, %struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592) %options) #5 align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CArchiveCommandLineParser*, align 8 | |
%options.addr = alloca %struct.CArchiveCommandLineOptions*, align 8 | |
%nonSwitchStrings = alloca %class.CObjectVector*, align 8 | |
%numNonSwitchStrings = alloca i32, align 4 | |
%recursedType = alloca i32, align 4 | |
%codePage = alloca i32, align 4 | |
%thereAreSwitchIncludes = alloca i8, align 1 | |
%curCommandIndex = alloca i32, align 4 | |
%thereIsArchiveName = alloca i8, align 1 | |
%isExtractGroupCommand = alloca i8, align 1 | |
%isExtractOrList = alloca i8, align 1 | |
%archiveWildcardCensor = alloca %"class.NWildcard::CCensor", align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
%directlyAddArchiveName = alloca i8, align 1 | |
%ref.tmp = alloca %class.CStringBase, align 8 | |
%ref.tmp167 = alloca %class.CStringBase, align 8 | |
%cleanup.cond = alloca i1, align 1 | |
%cleanup.cond170 = alloca i1, align 1 | |
%arcName = alloca %class.CStringBase, align 8 | |
%archivePaths = alloca %class.CObjectVector, align 8 | |
%dirItems = alloca %class.CDirItems, align 8 | |
%errorPaths = alloca %class.CObjectVector, align 8 | |
%errorCodes = alloca %class.CRecordVector.6, align 8 | |
%res = alloca i32, align 4 | |
%i = alloca i32, align 4 | |
%dirItem = alloca %struct.CDirItem*, align 8 | |
%ref.tmp247 = alloca %class.CStringBase, align 8 | |
%archivePathsFull = alloca %class.CObjectVector, align 8 | |
%i276 = alloca i32, align 4 | |
%fullPath = alloca %class.CStringBase, align 8 | |
%indices = alloca %class.CRecordVector.4, align 8 | |
%updateOptions = alloca %struct.CUpdateOptions*, align 8 | |
%i499 = alloca i32, align 4 | |
%postString = alloca %class.CStringBase, align 8 | |
%pos = alloca i32, align 4 | |
%logSize = alloca i32, align 4 | |
%pos560 = alloca i32, align 4 | |
%pos599 = alloca i32, align 4 | |
%ref.tmp607 = alloca %class.CStringBase, align 8 | |
store %class.CArchiveCommandLineParser* %this, %class.CArchiveCommandLineParser** %this.addr, align 8, !tbaa !3 | |
store %struct.CArchiveCommandLineOptions* %options, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%this1 = load %class.CArchiveCommandLineParser*, %class.CArchiveCommandLineParser** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector** %nonSwitchStrings to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %0) #3 | |
%parser = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%NonSwitchStrings = getelementptr inbounds %"class.NCommandLineParser::CParser", %"class.NCommandLineParser::CParser"* %parser, i32 0, i32 2 | |
store %class.CObjectVector* %NonSwitchStrings, %class.CObjectVector** %nonSwitchStrings, align 8, !tbaa !3 | |
%1 = bitcast i32* %numNonSwitchStrings to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %1) #3 | |
%2 = load %class.CObjectVector*, %class.CObjectVector** %nonSwitchStrings, align 8, !tbaa !3 | |
%3 = bitcast %class.CObjectVector* %2 to %class.CBaseRecordVector* | |
%call = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %3) | |
store i32 %call, i32* %numNonSwitchStrings, align 4, !tbaa !15 | |
%4 = load i32, i32* %numNonSwitchStrings, align 4, !tbaa !15 | |
%cmp = icmp slt i32 %4, 1 | |
br i1 %cmp, label %if.then, label %if.end | |
if.then: ; preds = %entry | |
call void @_ZL23ThrowUserErrorExceptionv() | |
br label %if.end | |
if.end: ; preds = %if.then, %entry | |
%5 = load %class.CObjectVector*, %class.CObjectVector** %nonSwitchStrings, align 8, !tbaa !3 | |
%call2 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %5, i32 0) | |
%6 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%Command = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %6, i32 0, i32 11 | |
%call3 = call zeroext i1 @_ZL19ParseArchiveCommandRK11CStringBaseIwER15CArchiveCommand(%class.CStringBase* nonnull align 8 dereferenceable(16) %call2, %struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %Command) | |
br i1 %call3, label %if.end5, label %if.then4 | |
if.then4: ; preds = %if.end | |
call void @_ZL23ThrowUserErrorExceptionv() | |
br label %if.end5 | |
if.end5: ; preds = %if.then4, %if.end | |
%parser6 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call7 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser6, i64 27) | |
%ThereIs = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call7, i32 0, i32 0 | |
%7 = load i8, i8* %ThereIs, align 8, !tbaa !31, !range !33 | |
%tobool = trunc i8 %7 to i1 | |
%8 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%TechMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %8, i32 0, i32 15 | |
%frombool = zext i1 %tobool to i8 | |
store i8 %frombool, i8* %TechMode, align 8, !tbaa !39 | |
%parser8 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call9 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser8, i64 29) | |
%ThereIs10 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call9, i32 0, i32 0 | |
%9 = load i8, i8* %ThereIs10, align 8, !tbaa !31, !range !33 | |
%tobool11 = trunc i8 %9 to i1 | |
%10 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%CalcCrc = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %10, i32 0, i32 16 | |
%frombool12 = zext i1 %tobool11 to i8 | |
store i8 %frombool12, i8* %CalcCrc, align 1, !tbaa !40 | |
%parser13 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call14 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser13, i64 28) | |
%ThereIs15 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call14, i32 0, i32 0 | |
%11 = load i8, i8* %ThereIs15, align 8, !tbaa !31, !range !33 | |
%tobool16 = trunc i8 %11 to i1 | |
br i1 %tobool16, label %if.then17, label %if.end22 | |
if.then17: ; preds = %if.end5 | |
%parser18 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call19 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser18, i64 28) | |
%PostCharIndex = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call19, i32 0, i32 4 | |
%12 = load i32, i32* %PostCharIndex, align 8, !tbaa !41 | |
%cmp20 = icmp slt i32 %12, 0 | |
%frombool21 = zext i1 %cmp20 to i8 | |
store i8 %frombool21, i8* @g_CaseSensitive, align 1, !tbaa !42 | |
br label %if.end22 | |
if.end22: ; preds = %if.then17, %if.end5 | |
%13 = bitcast i32* %recursedType to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %13) #3 | |
%parser23 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call24 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser23, i64 18) | |
%ThereIs25 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call24, i32 0, i32 0 | |
%14 = load i8, i8* %ThereIs25, align 8, !tbaa !31, !range !33 | |
%tobool26 = trunc i8 %14 to i1 | |
br i1 %tobool26, label %if.then27, label %if.else | |
if.then27: ; preds = %if.end22 | |
%parser28 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call29 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser28, i64 18) | |
%PostCharIndex30 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call29, i32 0, i32 4 | |
%15 = load i32, i32* %PostCharIndex30, align 8, !tbaa !41 | |
%call31 = call i32 @_ZL24GetRecursedTypeFromIndexi(i32 %15) | |
store i32 %call31, i32* %recursedType, align 4, !tbaa !43 | |
br label %if.end32 | |
if.else: ; preds = %if.end22 | |
store i32 2, i32* %recursedType, align 4, !tbaa !43 | |
br label %if.end32 | |
if.end32: ; preds = %if.else, %if.then27 | |
%16 = bitcast i32* %codePage to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %16) #3 | |
store i32 0, i32* %codePage, align 4, !tbaa !15 | |
call void @llvm.lifetime.start.p0i8(i64 1, i8* %thereAreSwitchIncludes) #3 | |
store i8 0, i8* %thereAreSwitchIncludes, align 1, !tbaa !42 | |
%parser33 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call34 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser33, i64 11) | |
%ThereIs35 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call34, i32 0, i32 0 | |
%17 = load i8, i8* %ThereIs35, align 8, !tbaa !31, !range !33 | |
%tobool36 = trunc i8 %17 to i1 | |
br i1 %tobool36, label %if.then37, label %if.end40 | |
if.then37: ; preds = %if.end32 | |
store i8 1, i8* %thereAreSwitchIncludes, align 1, !tbaa !42 | |
%18 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%WildcardCensor = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %18, i32 0, i32 10 | |
%parser38 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call39 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser38, i64 11) | |
%PostStrings = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call39, i32 0, i32 3 | |
%19 = load i32, i32* %recursedType, align 4, !tbaa !43 | |
%20 = load i32, i32* %codePage, align 4, !tbaa !15 | |
call void @_ZL26AddSwitchWildCardsToCensorRN9NWildcard7CCensorERK13CObjectVectorI11CStringBaseIwEEbN13NRecursedType5EEnumEj(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %WildcardCensor, %class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings, i1 zeroext true, i32 %19, i32 %20) | |
br label %if.end40 | |
if.end40: ; preds = %if.then37, %if.end32 | |
%parser41 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call42 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser41, i64 12) | |
%ThereIs43 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call42, i32 0, i32 0 | |
%21 = load i8, i8* %ThereIs43, align 8, !tbaa !31, !range !33 | |
%tobool44 = trunc i8 %21 to i1 | |
br i1 %tobool44, label %if.then45, label %if.end50 | |
if.then45: ; preds = %if.end40 | |
%22 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%WildcardCensor46 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %22, i32 0, i32 10 | |
%parser47 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call48 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser47, i64 12) | |
%PostStrings49 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call48, i32 0, i32 3 | |
%23 = load i32, i32* %recursedType, align 4, !tbaa !43 | |
%24 = load i32, i32* %codePage, align 4, !tbaa !15 | |
call void @_ZL26AddSwitchWildCardsToCensorRN9NWildcard7CCensorERK13CObjectVectorI11CStringBaseIwEEbN13NRecursedType5EEnumEj(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %WildcardCensor46, %class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings49, i1 zeroext false, i32 %23, i32 %24) | |
br label %if.end50 | |
if.end50: ; preds = %if.then45, %if.end40 | |
%25 = bitcast i32* %curCommandIndex to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %25) #3 | |
store i32 1, i32* %curCommandIndex, align 4, !tbaa !15 | |
call void @llvm.lifetime.start.p0i8(i64 1, i8* %thereIsArchiveName) #3 | |
%parser51 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call52 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser51, i64 15) | |
%ThereIs53 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call52, i32 0, i32 0 | |
%26 = load i8, i8* %ThereIs53, align 8, !tbaa !31, !range !33 | |
%tobool54 = trunc i8 %26 to i1 | |
br i1 %tobool54, label %land.end, label %land.lhs.true | |
land.lhs.true: ; preds = %if.end50 | |
%27 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%Command55 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %27, i32 0, i32 11 | |
%CommandType = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command55, i32 0, i32 0 | |
%28 = load i32, i32* %CommandType, align 8, !tbaa !45 | |
%cmp56 = icmp ne i32 %28, 7 | |
br i1 %cmp56, label %land.rhs, label %land.end | |
land.rhs: ; preds = %land.lhs.true | |
%29 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%Command57 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %29, i32 0, i32 11 | |
%CommandType58 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command57, i32 0, i32 0 | |
%30 = load i32, i32* %CommandType58, align 8, !tbaa !45 | |
%cmp59 = icmp ne i32 %30, 8 | |
br label %land.end | |
land.end: ; preds = %land.rhs, %land.lhs.true, %if.end50 | |
%31 = phi i1 [ false, %land.lhs.true ], [ false, %if.end50 ], [ %cmp59, %land.rhs ] | |
%frombool60 = zext i1 %31 to i8 | |
store i8 %frombool60, i8* %thereIsArchiveName, align 1, !tbaa !42 | |
call void @llvm.lifetime.start.p0i8(i64 1, i8* %isExtractGroupCommand) #3 | |
%32 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%Command61 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %32, i32 0, i32 11 | |
%call62 = call zeroext i1 @_ZNK15CArchiveCommand18IsFromExtractGroupEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %Command61) | |
%frombool63 = zext i1 %call62 to i8 | |
store i8 %frombool63, i8* %isExtractGroupCommand, align 1, !tbaa !42 | |
call void @llvm.lifetime.start.p0i8(i64 1, i8* %isExtractOrList) #3 | |
%33 = load i8, i8* %isExtractGroupCommand, align 1, !tbaa !42, !range !33 | |
%tobool64 = trunc i8 %33 to i1 | |
br i1 %tobool64, label %lor.end, label %lor.rhs | |
lor.rhs: ; preds = %land.end | |
%34 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%Command65 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %34, i32 0, i32 11 | |
%CommandType66 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command65, i32 0, i32 0 | |
%35 = load i32, i32* %CommandType66, align 8, !tbaa !45 | |
%cmp67 = icmp eq i32 %35, 6 | |
br label %lor.end | |
lor.end: ; preds = %lor.rhs, %land.end | |
%36 = phi i1 [ true, %land.end ], [ %cmp67, %lor.rhs ] | |
%frombool68 = zext i1 %36 to i8 | |
store i8 %frombool68, i8* %isExtractOrList, align 1, !tbaa !42 | |
%37 = load i8, i8* %isExtractOrList, align 1, !tbaa !42, !range !33 | |
%tobool69 = trunc i8 %37 to i1 | |
br i1 %tobool69, label %land.lhs.true70, label %if.end73 | |
land.lhs.true70: ; preds = %lor.end | |
%38 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%StdInMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %38, i32 0, i32 5 | |
%39 = load i8, i8* %StdInMode, align 1, !tbaa !34, !range !33 | |
%tobool71 = trunc i8 %39 to i1 | |
br i1 %tobool71, label %if.then72, label %if.end73 | |
if.then72: ; preds = %land.lhs.true70 | |
store i8 0, i8* %thereIsArchiveName, align 1, !tbaa !42 | |
br label %if.end73 | |
if.end73: ; preds = %if.then72, %land.lhs.true70, %lor.end | |
%40 = load i8, i8* %thereIsArchiveName, align 1, !tbaa !42, !range !33 | |
%tobool74 = trunc i8 %40 to i1 | |
br i1 %tobool74, label %if.then75, label %if.end85 | |
if.then75: ; preds = %if.end73 | |
%41 = load i32, i32* %curCommandIndex, align 4, !tbaa !15 | |
%42 = load i32, i32* %numNonSwitchStrings, align 4, !tbaa !15 | |
%cmp76 = icmp sge i32 %41, %42 | |
br i1 %cmp76, label %if.then77, label %if.end78 | |
if.then77: ; preds = %if.then75 | |
call void @_ZL23ThrowUserErrorExceptionv() | |
br label %if.end78 | |
if.end78: ; preds = %if.then77, %if.then75 | |
%43 = load %class.CObjectVector*, %class.CObjectVector** %nonSwitchStrings, align 8, !tbaa !3 | |
%44 = load i32, i32* %curCommandIndex, align 4, !tbaa !15 | |
%inc = add nsw i32 %44, 1 | |
store i32 %inc, i32* %curCommandIndex, align 4, !tbaa !15 | |
%call79 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %43, i32 %44) | |
%45 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%ArchiveName = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %45, i32 0, i32 12 | |
%call80 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName, %class.CStringBase* nonnull align 8 dereferenceable(16) %call79) | |
%46 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%ArchiveName81 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %46, i32 0, i32 12 | |
%call82 = call zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName81) | |
br i1 %call82, label %if.then83, label %if.end84 | |
if.then83: ; preds = %if.end78 | |
call void @_ZL23ThrowUserErrorExceptionv() | |
br label %if.end84 | |
if.end84: ; preds = %if.then83, %if.end78 | |
br label %if.end85 | |
if.end85: ; preds = %if.end84, %if.end73 | |
%47 = load i32, i32* %curCommandIndex, align 4, !tbaa !15 | |
%48 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%WildcardCensor86 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %48, i32 0, i32 10 | |
%49 = load %class.CObjectVector*, %class.CObjectVector** %nonSwitchStrings, align 8, !tbaa !3 | |
%50 = load i32, i32* %recursedType, align 4, !tbaa !43 | |
%51 = load i8, i8* %thereAreSwitchIncludes, align 1, !tbaa !42, !range !33 | |
%tobool87 = trunc i8 %51 to i1 | |
%52 = load i32, i32* %codePage, align 4, !tbaa !15 | |
call void @_ZL33AddToCensorFromNonSwitchesStringsiRN9NWildcard7CCensorERK13CObjectVectorI11CStringBaseIwEEN13NRecursedType5EEnumEbj(i32 %47, %"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %WildcardCensor86, %class.CObjectVector* nonnull align 8 dereferenceable(32) %49, i32 %50, i1 zeroext %tobool87, i32 %52) | |
%parser88 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call89 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser88, i64 6) | |
%ThereIs90 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call89, i32 0, i32 0 | |
%53 = load i8, i8* %ThereIs90, align 8, !tbaa !31, !range !33 | |
%tobool91 = trunc i8 %53 to i1 | |
%54 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%YesToAll = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %54, i32 0, i32 8 | |
%frombool92 = zext i1 %tobool91 to i8 | |
store i8 %frombool92, i8* %YesToAll, align 8, !tbaa !46 | |
%parser93 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call94 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser93, i64 26) | |
%ThereIs95 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call94, i32 0, i32 0 | |
%55 = load i8, i8* %ThereIs95, align 8, !tbaa !31, !range !33 | |
%tobool96 = trunc i8 %55 to i1 | |
%lnot = xor i1 %tobool96, true | |
%conv = zext i1 %lnot to i32 | |
store i32 %conv, i32* @global_use_lstat, align 4, !tbaa !15 | |
%parser97 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call98 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser97, i64 7) | |
%ThereIs99 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call98, i32 0, i32 0 | |
%56 = load i8, i8* %ThereIs99, align 8, !tbaa !31, !range !33 | |
%tobool100 = trunc i8 %56 to i1 | |
%57 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%PasswordEnabled = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %57, i32 0, i32 13 | |
%frombool101 = zext i1 %tobool100 to i8 | |
store i8 %frombool101, i8* %PasswordEnabled, align 8, !tbaa !47 | |
%58 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%PasswordEnabled102 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %58, i32 0, i32 13 | |
%59 = load i8, i8* %PasswordEnabled102, align 8, !tbaa !47, !range !33 | |
%tobool103 = trunc i8 %59 to i1 | |
br i1 %tobool103, label %if.then104, label %if.end110 | |
if.then104: ; preds = %if.end85 | |
%parser105 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call106 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser105, i64 7) | |
%PostStrings107 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call106, i32 0, i32 3 | |
%call108 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings107, i32 0) | |
%60 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%Password = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %60, i32 0, i32 14 | |
%call109 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password, %class.CStringBase* nonnull align 8 dereferenceable(16) %call108) | |
br label %if.end110 | |
if.end110: ; preds = %if.then104, %if.end85 | |
%parser111 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call112 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser111, i64 24) | |
%ThereIs113 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call112, i32 0, i32 0 | |
%61 = load i8, i8* %ThereIs113, align 8, !tbaa !31, !range !33 | |
%tobool114 = trunc i8 %61 to i1 | |
%62 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%ShowDialog = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %62, i32 0, i32 9 | |
%frombool115 = zext i1 %tobool114 to i8 | |
store i8 %frombool115, i8* %ShowDialog, align 1, !tbaa !48 | |
%parser116 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call117 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser116, i64 5) | |
%ThereIs118 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call117, i32 0, i32 0 | |
%63 = load i8, i8* %ThereIs118, align 8, !tbaa !31, !range !33 | |
%tobool119 = trunc i8 %63 to i1 | |
br i1 %tobool119, label %if.then120, label %if.end126 | |
if.then120: ; preds = %if.end110 | |
%parser121 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call122 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser121, i64 5) | |
%PostStrings123 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call122, i32 0, i32 3 | |
%call124 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings123, i32 0) | |
%64 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%ArcType = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %64, i32 0, i32 24 | |
%call125 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArcType, %class.CStringBase* nonnull align 8 dereferenceable(16) %call124) | |
br label %if.end126 | |
if.end126: ; preds = %if.then120, %if.end110 | |
%65 = load i8, i8* %isExtractOrList, align 1, !tbaa !42, !range !33 | |
%tobool127 = trunc i8 %65 to i1 | |
br i1 %tobool127, label %if.then128, label %if.else392 | |
if.then128: ; preds = %if.end126 | |
%66 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%WildcardCensor129 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %66, i32 0, i32 10 | |
%call130 = call zeroext i1 @_ZNK9NWildcard7CCensor14AllAreRelativeEv(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %WildcardCensor129) | |
br i1 %call130, label %if.end132, label %if.then131 | |
if.then131: ; preds = %if.then128 | |
call void @_ZL14ThrowExceptionPKc(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.4, i64 0, i64 0)) | |
br label %if.end132 | |
if.end132: ; preds = %if.then131, %if.then128 | |
%67 = bitcast %"class.NWildcard::CCensor"* %archiveWildcardCensor to i8* | |
call void @llvm.lifetime.start.p0i8(i64 32, i8* %67) #3 | |
call void @_ZN9NWildcard7CCensorC2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %archiveWildcardCensor) | |
%parser133 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call134 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser133, i64 13) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %if.end132 | |
%ThereIs135 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call134, i32 0, i32 0 | |
%68 = load i8, i8* %ThereIs135, align 8, !tbaa !31, !range !33 | |
%tobool136 = trunc i8 %68 to i1 | |
br i1 %tobool136, label %if.then137, label %if.end143 | |
if.then137: ; preds = %invoke.cont | |
%parser138 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call140 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser138, i64 13) | |
to label %invoke.cont139 unwind label %lpad | |
invoke.cont139: ; preds = %if.then137 | |
%PostStrings141 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call140, i32 0, i32 3 | |
%69 = load i32, i32* %codePage, align 4, !tbaa !15 | |
invoke void @_ZL26AddSwitchWildCardsToCensorRN9NWildcard7CCensorERK13CObjectVectorI11CStringBaseIwEEbN13NRecursedType5EEnumEj(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %archiveWildcardCensor, %class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings141, i1 zeroext true, i32 2, i32 %69) | |
to label %invoke.cont142 unwind label %lpad | |
invoke.cont142: ; preds = %invoke.cont139 | |
br label %if.end143 | |
lpad: ; preds = %invoke.cont151, %if.then149, %if.end143, %invoke.cont139, %if.then137, %if.end132 | |
%70 = landingpad { i8*, i32 } | |
cleanup | |
%71 = extractvalue { i8*, i32 } %70, 0 | |
store i8* %71, i8** %exn.slot, align 8 | |
%72 = extractvalue { i8*, i32 } %70, 1 | |
store i32 %72, i32* %ehselector.slot, align 4 | |
br label %ehcleanup390 | |
if.end143: ; preds = %invoke.cont142, %invoke.cont | |
%parser144 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call146 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser144, i64 14) | |
to label %invoke.cont145 unwind label %lpad | |
invoke.cont145: ; preds = %if.end143 | |
%ThereIs147 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call146, i32 0, i32 0 | |
%73 = load i8, i8* %ThereIs147, align 8, !tbaa !31, !range !33 | |
%tobool148 = trunc i8 %73 to i1 | |
br i1 %tobool148, label %if.then149, label %if.end155 | |
if.then149: ; preds = %invoke.cont145 | |
%parser150 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call152 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser150, i64 14) | |
to label %invoke.cont151 unwind label %lpad | |
invoke.cont151: ; preds = %if.then149 | |
%PostStrings153 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call152, i32 0, i32 3 | |
%74 = load i32, i32* %codePage, align 4, !tbaa !15 | |
invoke void @_ZL26AddSwitchWildCardsToCensorRN9NWildcard7CCensorERK13CObjectVectorI11CStringBaseIwEEbN13NRecursedType5EEnumEj(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %archiveWildcardCensor, %class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings153, i1 zeroext false, i32 2, i32 %74) | |
to label %invoke.cont154 unwind label %lpad | |
invoke.cont154: ; preds = %invoke.cont151 | |
br label %if.end155 | |
if.end155: ; preds = %invoke.cont154, %invoke.cont145 | |
call void @llvm.lifetime.start.p0i8(i64 1, i8* %directlyAddArchiveName) #3 | |
store i8 0, i8* %directlyAddArchiveName, align 1, !tbaa !42 | |
%75 = load i8, i8* %thereIsArchiveName, align 1, !tbaa !42, !range !33 | |
%tobool156 = trunc i8 %75 to i1 | |
br i1 %tobool156, label %if.then157, label %if.end193 | |
if.then157: ; preds = %if.end155 | |
%76 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%ArchiveName158 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %76, i32 0, i32 12 | |
%77 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %77) #3 | |
%78 = load i32*, i32** @_ZL18kUniversalWildcard, align 8, !tbaa !3 | |
store i1 false, i1* %cleanup.cond, align 1 | |
store i1 false, i1* %cleanup.cond170, align 1 | |
invoke void @_ZN11CStringBaseIwEC2EPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp, i32* %78) | |
to label %invoke.cont160 unwind label %lpad159 | |
invoke.cont160: ; preds = %if.then157 | |
%call163 = invoke i32 @_ZNK11CStringBaseIwE4FindERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName158, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) | |
to label %invoke.cont162 unwind label %lpad161 | |
invoke.cont162: ; preds = %invoke.cont160 | |
%cmp164 = icmp eq i32 %call163, -1 | |
br i1 %cmp164, label %land.rhs165, label %land.end175 | |
land.rhs165: ; preds = %invoke.cont162 | |
%79 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%ArchiveName166 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %79, i32 0, i32 12 | |
%80 = bitcast %class.CStringBase* %ref.tmp167 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %80) #3 | |
store i1 true, i1* %cleanup.cond, align 1 | |
invoke void @_ZN11CStringBaseIwEC2EPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp167, i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.5, i64 0, i64 0)) | |
to label %invoke.cont169 unwind label %lpad168 | |
invoke.cont169: ; preds = %land.rhs165 | |
store i1 true, i1* %cleanup.cond170, align 1 | |
%call173 = invoke i32 @_ZNK11CStringBaseIwE4FindERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName166, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp167) | |
to label %invoke.cont172 unwind label %lpad171 | |
invoke.cont172: ; preds = %invoke.cont169 | |
%cmp174 = icmp eq i32 %call173, -1 | |
br label %land.end175 | |
land.end175: ; preds = %invoke.cont172, %invoke.cont162 | |
%81 = phi i1 [ false, %invoke.cont162 ], [ %cmp174, %invoke.cont172 ] | |
%cleanup.is_active = load i1, i1* %cleanup.cond170, align 1 | |
br i1 %cleanup.is_active, label %cleanup.action, label %cleanup.done | |
cleanup.action: ; preds = %land.end175 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp167) #3 | |
br label %cleanup.done | |
cleanup.done: ; preds = %cleanup.action, %land.end175 | |
%cleanup.is_active179 = load i1, i1* %cleanup.cond, align 1 | |
br i1 %cleanup.is_active179, label %cleanup.action180, label %cleanup.done181 | |
cleanup.action180: ; preds = %cleanup.done | |
%82 = bitcast %class.CStringBase* %ref.tmp167 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %82) #3 | |
br label %cleanup.done181 | |
cleanup.done181: ; preds = %cleanup.action180, %cleanup.done | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3 | |
%83 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %83) #3 | |
br i1 %81, label %if.then187, label %if.else188 | |
if.then187: ; preds = %cleanup.done181 | |
store i8 1, i8* %directlyAddArchiveName, align 1, !tbaa !42 | |
br label %if.end192 | |
lpad159: ; preds = %if.then157 | |
%84 = landingpad { i8*, i32 } | |
cleanup | |
%85 = extractvalue { i8*, i32 } %84, 0 | |
store i8* %85, i8** %exn.slot, align 8 | |
%86 = extractvalue { i8*, i32 } %84, 1 | |
store i32 %86, i32* %ehselector.slot, align 4 | |
br label %ehcleanup186 | |
lpad161: ; preds = %invoke.cont160 | |
%87 = landingpad { i8*, i32 } | |
cleanup | |
%88 = extractvalue { i8*, i32 } %87, 0 | |
store i8* %88, i8** %exn.slot, align 8 | |
%89 = extractvalue { i8*, i32 } %87, 1 | |
store i32 %89, i32* %ehselector.slot, align 4 | |
br label %ehcleanup185 | |
lpad168: ; preds = %land.rhs165 | |
%90 = landingpad { i8*, i32 } | |
cleanup | |
%91 = extractvalue { i8*, i32 } %90, 0 | |
store i8* %91, i8** %exn.slot, align 8 | |
%92 = extractvalue { i8*, i32 } %90, 1 | |
store i32 %92, i32* %ehselector.slot, align 4 | |
br label %ehcleanup | |
lpad171: ; preds = %invoke.cont169 | |
%93 = landingpad { i8*, i32 } | |
cleanup | |
%94 = extractvalue { i8*, i32 } %93, 0 | |
store i8* %94, i8** %exn.slot, align 8 | |
%95 = extractvalue { i8*, i32 } %93, 1 | |
store i32 %95, i32* %ehselector.slot, align 4 | |
%cleanup.is_active176 = load i1, i1* %cleanup.cond170, align 1 | |
br i1 %cleanup.is_active176, label %cleanup.action177, label %cleanup.done178 | |
cleanup.action177: ; preds = %lpad171 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp167) #3 | |
br label %cleanup.done178 | |
cleanup.done178: ; preds = %cleanup.action177, %lpad171 | |
br label %ehcleanup | |
ehcleanup: ; preds = %cleanup.done178, %lpad168 | |
%cleanup.is_active182 = load i1, i1* %cleanup.cond, align 1 | |
br i1 %cleanup.is_active182, label %cleanup.action183, label %cleanup.done184 | |
cleanup.action183: ; preds = %ehcleanup | |
%96 = bitcast %class.CStringBase* %ref.tmp167 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %96) #3 | |
br label %cleanup.done184 | |
cleanup.done184: ; preds = %cleanup.action183, %ehcleanup | |
br label %ehcleanup185 | |
ehcleanup185: ; preds = %cleanup.done184, %lpad161 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3 | |
br label %ehcleanup186 | |
ehcleanup186: ; preds = %ehcleanup185, %lpad159 | |
%97 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %97) #3 | |
br label %ehcleanup389 | |
if.else188: ; preds = %cleanup.done181 | |
%98 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%ArchiveName189 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %98, i32 0, i32 12 | |
invoke void @_ZL15AddNameToCensorRN9NWildcard7CCensorERK11CStringBaseIwEbN13NRecursedType5EEnumE(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %archiveWildcardCensor, %class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName189, i1 zeroext true, i32 2) | |
to label %invoke.cont191 unwind label %lpad190 | |
invoke.cont191: ; preds = %if.else188 | |
br label %if.end192 | |
lpad190: ; preds = %if.then375, %if.end369, %invoke.cont365, %invoke.cont363, %invoke.cont360, %if.then358, %if.end352, %if.then350, %if.then342, %if.end193, %if.else188 | |
%99 = landingpad { i8*, i32 } | |
cleanup | |
%100 = extractvalue { i8*, i32 } %99, 0 | |
store i8* %100, i8** %exn.slot, align 8 | |
%101 = extractvalue { i8*, i32 } %99, 1 | |
store i32 %101, i32* %ehselector.slot, align 4 | |
br label %ehcleanup389 | |
if.end192: ; preds = %invoke.cont191, %if.then187 | |
br label %if.end193 | |
if.end193: ; preds = %if.end192, %if.end155 | |
invoke void @_ZN9NWildcard7CCensor13ExtendExcludeEv(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %archiveWildcardCensor) | |
to label %invoke.cont194 unwind label %lpad190 | |
invoke.cont194: ; preds = %if.end193 | |
%102 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%StdInMode195 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %102, i32 0, i32 5 | |
%103 = load i8, i8* %StdInMode195, align 1, !tbaa !34, !range !33 | |
%tobool196 = trunc i8 %103 to i1 | |
br i1 %tobool196, label %if.then197, label %if.else213 | |
if.then197: ; preds = %invoke.cont194 | |
%104 = bitcast %class.CStringBase* %arcName to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %104) #3 | |
%parser198 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call201 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser198, i64 20) | |
to label %invoke.cont200 unwind label %lpad199 | |
invoke.cont200: ; preds = %if.then197 | |
%PostStrings202 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call201, i32 0, i32 3 | |
%call204 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEE5FrontEv(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings202) | |
to label %invoke.cont203 unwind label %lpad199 | |
invoke.cont203: ; preds = %invoke.cont200 | |
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %arcName, %class.CStringBase* nonnull align 8 dereferenceable(16) %call204) | |
to label %invoke.cont205 unwind label %lpad199 | |
invoke.cont205: ; preds = %invoke.cont203 | |
%105 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%ArchivePathsSorted = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %105, i32 0, i32 20 | |
%call208 = invoke i32 @_ZN13CObjectVectorI11CStringBaseIwEE3AddERKS1_(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsSorted, %class.CStringBase* nonnull align 8 dereferenceable(16) %arcName) | |
to label %invoke.cont207 unwind label %lpad206 | |
invoke.cont207: ; preds = %invoke.cont205 | |
%106 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%ArchivePathsFullSorted = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %106, i32 0, i32 21 | |
%call210 = invoke i32 @_ZN13CObjectVectorI11CStringBaseIwEE3AddERKS1_(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsFullSorted, %class.CStringBase* nonnull align 8 dereferenceable(16) %arcName) | |
to label %invoke.cont209 unwind label %lpad206 | |
invoke.cont209: ; preds = %invoke.cont207 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %arcName) #3 | |
%107 = bitcast %class.CStringBase* %arcName to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %107) #3 | |
br label %if.end340 | |
lpad199: ; preds = %invoke.cont203, %invoke.cont200, %if.then197 | |
%108 = landingpad { i8*, i32 } | |
cleanup | |
%109 = extractvalue { i8*, i32 } %108, 0 | |
store i8* %109, i8** %exn.slot, align 8 | |
%110 = extractvalue { i8*, i32 } %108, 1 | |
store i32 %110, i32* %ehselector.slot, align 4 | |
br label %ehcleanup212 | |
lpad206: ; preds = %invoke.cont207, %invoke.cont205 | |
%111 = landingpad { i8*, i32 } | |
cleanup | |
%112 = extractvalue { i8*, i32 } %111, 0 | |
store i8* %112, i8** %exn.slot, align 8 | |
%113 = extractvalue { i8*, i32 } %111, 1 | |
store i32 %113, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %arcName) #3 | |
br label %ehcleanup212 | |
ehcleanup212: ; preds = %lpad206, %lpad199 | |
%114 = bitcast %class.CStringBase* %arcName to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %114) #3 | |
br label %ehcleanup389 | |
if.else213: ; preds = %invoke.cont194 | |
%115 = bitcast %class.CObjectVector* %archivePaths to i8* | |
call void @llvm.lifetime.start.p0i8(i64 32, i8* %115) #3 | |
invoke void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePaths) | |
to label %invoke.cont215 unwind label %lpad214 | |
invoke.cont215: ; preds = %if.else213 | |
%116 = bitcast %class.CDirItems* %dirItems to i8* | |
call void @llvm.lifetime.start.p0i8(i64 128, i8* %116) #3 | |
invoke void @_ZN9CDirItemsC2Ev(%class.CDirItems* nonnull align 8 dereferenceable(128) %dirItems) | |
to label %invoke.cont217 unwind label %lpad216 | |
invoke.cont217: ; preds = %invoke.cont215 | |
%117 = bitcast %class.CObjectVector* %errorPaths to i8* | |
call void @llvm.lifetime.start.p0i8(i64 32, i8* %117) #3 | |
invoke void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %errorPaths) | |
to label %invoke.cont219 unwind label %lpad218 | |
invoke.cont219: ; preds = %invoke.cont217 | |
%118 = bitcast %class.CRecordVector.6* %errorCodes to i8* | |
call void @llvm.lifetime.start.p0i8(i64 32, i8* %118) #3 | |
invoke void @_ZN13CRecordVectorIjEC2Ev(%class.CRecordVector.6* nonnull align 8 dereferenceable(32) %errorCodes) | |
to label %invoke.cont221 unwind label %lpad220 | |
invoke.cont221: ; preds = %invoke.cont219 | |
%119 = bitcast i32* %res to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %119) #3 | |
%call224 = invoke i32 @_Z14EnumerateItemsRKN9NWildcard7CCensorER9CDirItemsP20IEnumDirItemCallbackR13CObjectVectorI11CStringBaseIwEER13CRecordVectorIjE(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %archiveWildcardCensor, %class.CDirItems* nonnull align 8 dereferenceable(128) %dirItems, %struct.IEnumDirItemCallback* null, %class.CObjectVector* nonnull align 8 dereferenceable(32) %errorPaths, %class.CRecordVector.6* nonnull align 8 dereferenceable(32) %errorCodes) | |
to label %invoke.cont223 unwind label %lpad222 | |
invoke.cont223: ; preds = %invoke.cont221 | |
store i32 %call224, i32* %res, align 4, !tbaa !15 | |
%120 = load i32, i32* %res, align 4, !tbaa !15 | |
%cmp225 = icmp ne i32 %120, 0 | |
br i1 %cmp225, label %if.then229, label %lor.lhs.false | |
lor.lhs.false: ; preds = %invoke.cont223 | |
%121 = bitcast %class.CObjectVector* %errorPaths to %class.CBaseRecordVector* | |
%call227 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %121) | |
to label %invoke.cont226 unwind label %lpad222 | |
invoke.cont226: ; preds = %lor.lhs.false | |
%cmp228 = icmp sgt i32 %call227, 0 | |
br i1 %cmp228, label %if.then229, label %if.end230 | |
if.then229: ; preds = %invoke.cont226, %invoke.cont223 | |
%exception = call i8* @__cxa_allocate_exception(i64 8) #3 | |
%122 = bitcast i8* %exception to i8** | |
store i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.6, i64 0, i64 0), i8** %122, align 16, !tbaa !3 | |
invoke void @__cxa_throw(i8* %exception, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18 | |
to label %unreachable unwind label %lpad222 | |
lpad214: ; preds = %if.else213 | |
%123 = landingpad { i8*, i32 } | |
cleanup | |
%124 = extractvalue { i8*, i32 } %123, 0 | |
store i8* %124, i8** %exn.slot, align 8 | |
%125 = extractvalue { i8*, i32 } %123, 1 | |
store i32 %125, i32* %ehselector.slot, align 4 | |
br label %ehcleanup339 | |
lpad216: ; preds = %invoke.cont215 | |
%126 = landingpad { i8*, i32 } | |
cleanup | |
%127 = extractvalue { i8*, i32 } %126, 0 | |
store i8* %127, i8** %exn.slot, align 8 | |
%128 = extractvalue { i8*, i32 } %126, 1 | |
store i32 %128, i32* %ehselector.slot, align 4 | |
br label %ehcleanup260 | |
lpad218: ; preds = %invoke.cont217 | |
%129 = landingpad { i8*, i32 } | |
cleanup | |
%130 = extractvalue { i8*, i32 } %129, 0 | |
store i8* %130, i8** %exn.slot, align 8 | |
%131 = extractvalue { i8*, i32 } %129, 1 | |
store i32 %131, i32* %ehselector.slot, align 4 | |
br label %ehcleanup235 | |
lpad220: ; preds = %invoke.cont219 | |
%132 = landingpad { i8*, i32 } | |
cleanup | |
%133 = extractvalue { i8*, i32 } %132, 0 | |
store i8* %133, i8** %exn.slot, align 8 | |
%134 = extractvalue { i8*, i32 } %132, 1 | |
store i32 %134, i32* %ehselector.slot, align 4 | |
br label %ehcleanup233 | |
lpad222: ; preds = %if.then229, %lor.lhs.false, %invoke.cont221 | |
%135 = landingpad { i8*, i32 } | |
cleanup | |
%136 = extractvalue { i8*, i32 } %135, 0 | |
store i8* %136, i8** %exn.slot, align 8 | |
%137 = extractvalue { i8*, i32 } %135, 1 | |
store i32 %137, i32* %ehselector.slot, align 4 | |
%138 = bitcast i32* %res to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %138) #3 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.6*)*)(%class.CRecordVector.6* nonnull align 8 dereferenceable(32) %errorCodes) #3 | |
br label %ehcleanup233 | |
if.end230: ; preds = %invoke.cont226 | |
%139 = bitcast i32* %res to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %139) #3 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.6*)*)(%class.CRecordVector.6* nonnull align 8 dereferenceable(32) %errorCodes) #3 | |
%140 = bitcast %class.CRecordVector.6* %errorCodes to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %140) #3 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %errorPaths) #3 | |
%141 = bitcast %class.CObjectVector* %errorPaths to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %141) #3 | |
%142 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %142) #3 | |
store i32 0, i32* %i, align 4, !tbaa !15 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %if.end230 | |
%143 = load i32, i32* %i, align 4, !tbaa !15 | |
%Items = getelementptr inbounds %class.CDirItems, %class.CDirItems* %dirItems, i32 0, i32 3 | |
%144 = bitcast %class.CObjectVector.5* %Items to %class.CBaseRecordVector* | |
%call238 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %144) | |
to label %invoke.cont237 unwind label %lpad236 | |
invoke.cont237: ; preds = %for.cond | |
%cmp239 = icmp slt i32 %143, %call238 | |
br i1 %cmp239, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %invoke.cont237 | |
%145 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %145) #3 | |
br label %for.end | |
ehcleanup233: ; preds = %lpad222, %lpad220 | |
%146 = bitcast %class.CRecordVector.6* %errorCodes to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %146) #3 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %errorPaths) #3 | |
br label %ehcleanup235 | |
ehcleanup235: ; preds = %ehcleanup233, %lpad218 | |
%147 = bitcast %class.CObjectVector* %errorPaths to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %147) #3 | |
br label %ehcleanup259 | |
lpad236: ; preds = %for.cond | |
%148 = landingpad { i8*, i32 } | |
cleanup | |
%149 = extractvalue { i8*, i32 } %148, 0 | |
store i8* %149, i8** %exn.slot, align 8 | |
%150 = extractvalue { i8*, i32 } %148, 1 | |
store i32 %150, i32* %ehselector.slot, align 4 | |
br label %ehcleanup258 | |
for.body: ; preds = %invoke.cont237 | |
%151 = bitcast %struct.CDirItem** %dirItem to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %151) #3 | |
%Items240 = getelementptr inbounds %class.CDirItems, %class.CDirItems* %dirItems, i32 0, i32 3 | |
%152 = load i32, i32* %i, align 4, !tbaa !15 | |
%call243 = invoke nonnull align 8 dereferenceable(60) %struct.CDirItem* @_ZN13CObjectVectorI8CDirItemEixEi(%class.CObjectVector.5* nonnull align 8 dereferenceable(32) %Items240, i32 %152) | |
to label %invoke.cont242 unwind label %lpad241 | |
invoke.cont242: ; preds = %for.body | |
store %struct.CDirItem* %call243, %struct.CDirItem** %dirItem, align 8, !tbaa !3 | |
%153 = load %struct.CDirItem*, %struct.CDirItem** %dirItem, align 8, !tbaa !3 | |
%call245 = invoke zeroext i1 @_ZNK8CDirItem5IsDirEv(%struct.CDirItem* nonnull align 8 dereferenceable(60) %153) | |
to label %invoke.cont244 unwind label %lpad241 | |
invoke.cont244: ; preds = %invoke.cont242 | |
br i1 %call245, label %if.end255, label %if.then246 | |
if.then246: ; preds = %invoke.cont244 | |
%154 = bitcast %class.CStringBase* %ref.tmp247 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %154) #3 | |
%155 = load i32, i32* %i, align 4, !tbaa !15 | |
invoke void @_ZNK9CDirItems10GetPhyPathEi(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp247, %class.CDirItems* nonnull align 8 dereferenceable(128) %dirItems, i32 %155) | |
to label %invoke.cont249 unwind label %lpad248 | |
invoke.cont249: ; preds = %if.then246 | |
%call252 = invoke i32 @_ZN13CObjectVectorI11CStringBaseIwEE3AddERKS1_(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePaths, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp247) | |
to label %invoke.cont251 unwind label %lpad250 | |
invoke.cont251: ; preds = %invoke.cont249 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp247) #3 | |
%156 = bitcast %class.CStringBase* %ref.tmp247 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %156) #3 | |
br label %if.end255 | |
lpad241: ; preds = %invoke.cont242, %for.body | |
%157 = landingpad { i8*, i32 } | |
cleanup | |
%158 = extractvalue { i8*, i32 } %157, 0 | |
store i8* %158, i8** %exn.slot, align 8 | |
%159 = extractvalue { i8*, i32 } %157, 1 | |
store i32 %159, i32* %ehselector.slot, align 4 | |
br label %ehcleanup256 | |
lpad248: ; preds = %if.then246 | |
%160 = landingpad { i8*, i32 } | |
cleanup | |
%161 = extractvalue { i8*, i32 } %160, 0 | |
store i8* %161, i8** %exn.slot, align 8 | |
%162 = extractvalue { i8*, i32 } %160, 1 | |
store i32 %162, i32* %ehselector.slot, align 4 | |
br label %ehcleanup254 | |
lpad250: ; preds = %invoke.cont249 | |
%163 = landingpad { i8*, i32 } | |
cleanup | |
%164 = extractvalue { i8*, i32 } %163, 0 | |
store i8* %164, i8** %exn.slot, align 8 | |
%165 = extractvalue { i8*, i32 } %163, 1 | |
store i32 %165, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp247) #3 | |
br label %ehcleanup254 | |
ehcleanup254: ; preds = %lpad250, %lpad248 | |
%166 = bitcast %class.CStringBase* %ref.tmp247 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %166) #3 | |
br label %ehcleanup256 | |
if.end255: ; preds = %invoke.cont251, %invoke.cont244 | |
%167 = bitcast %struct.CDirItem** %dirItem to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %167) #3 | |
br label %for.inc | |
for.inc: ; preds = %if.end255 | |
%168 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc257 = add nsw i32 %168, 1 | |
store i32 %inc257, i32* %i, align 4, !tbaa !15 | |
br label %for.cond, !llvm.loop !49 | |
ehcleanup256: ; preds = %ehcleanup254, %lpad241 | |
%169 = bitcast %struct.CDirItem** %dirItem to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %169) #3 | |
br label %ehcleanup258 | |
ehcleanup258: ; preds = %ehcleanup256, %lpad236 | |
%170 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %170) #3 | |
br label %ehcleanup259 | |
for.end: ; preds = %for.cond.cleanup | |
call void @_ZN9CDirItemsD2Ev(%class.CDirItems* nonnull align 8 dereferenceable(128) %dirItems) #3 | |
%171 = bitcast %class.CDirItems* %dirItems to i8* | |
call void @llvm.lifetime.end.p0i8(i64 128, i8* %171) #3 | |
%172 = load i8, i8* %directlyAddArchiveName, align 1, !tbaa !42, !range !33 | |
%tobool261 = trunc i8 %172 to i1 | |
br i1 %tobool261, label %if.then262, label %if.end267 | |
if.then262: ; preds = %for.end | |
%173 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%ArchiveName263 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %173, i32 0, i32 12 | |
%call266 = invoke i32 @_ZN13CObjectVectorI11CStringBaseIwEE3AddERKS1_(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePaths, %class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName263) | |
to label %invoke.cont265 unwind label %lpad264 | |
invoke.cont265: ; preds = %if.then262 | |
br label %if.end267 | |
ehcleanup259: ; preds = %ehcleanup258, %ehcleanup235 | |
call void @_ZN9CDirItemsD2Ev(%class.CDirItems* nonnull align 8 dereferenceable(128) %dirItems) #3 | |
br label %ehcleanup260 | |
ehcleanup260: ; preds = %ehcleanup259, %lpad216 | |
%174 = bitcast %class.CDirItems* %dirItems to i8* | |
call void @llvm.lifetime.end.p0i8(i64 128, i8* %174) #3 | |
br label %ehcleanup338 | |
lpad264: ; preds = %if.then271, %if.end267, %if.then262 | |
%175 = landingpad { i8*, i32 } | |
cleanup | |
%176 = extractvalue { i8*, i32 } %175, 0 | |
store i8* %176, i8** %exn.slot, align 8 | |
%177 = extractvalue { i8*, i32 } %175, 1 | |
store i32 %177, i32* %ehselector.slot, align 4 | |
br label %ehcleanup338 | |
if.end267: ; preds = %invoke.cont265, %for.end | |
%178 = bitcast %class.CObjectVector* %archivePaths to %class.CBaseRecordVector* | |
%call269 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %178) | |
to label %invoke.cont268 unwind label %lpad264 | |
invoke.cont268: ; preds = %if.end267 | |
%cmp270 = icmp eq i32 %call269, 0 | |
br i1 %cmp270, label %if.then271, label %if.end273 | |
if.then271: ; preds = %invoke.cont268 | |
%exception272 = call i8* @__cxa_allocate_exception(i64 8) #3 | |
%179 = bitcast i8* %exception272 to i8** | |
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.7, i64 0, i64 0), i8** %179, align 16, !tbaa !3 | |
invoke void @__cxa_throw(i8* %exception272, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18 | |
to label %unreachable unwind label %lpad264 | |
if.end273: ; preds = %invoke.cont268 | |
%180 = bitcast %class.CObjectVector* %archivePathsFull to i8* | |
call void @llvm.lifetime.start.p0i8(i64 32, i8* %180) #3 | |
invoke void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePathsFull) | |
to label %invoke.cont275 unwind label %lpad274 | |
invoke.cont275: ; preds = %if.end273 | |
%181 = bitcast i32* %i276 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %181) #3 | |
store i32 0, i32* %i276, align 4, !tbaa !15 | |
br label %for.cond277 | |
for.cond277: ; preds = %for.inc296, %invoke.cont275 | |
%182 = load i32, i32* %i276, align 4, !tbaa !15 | |
%183 = bitcast %class.CObjectVector* %archivePaths to %class.CBaseRecordVector* | |
%call280 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %183) | |
to label %invoke.cont279 unwind label %lpad278 | |
invoke.cont279: ; preds = %for.cond277 | |
%cmp281 = icmp slt i32 %182, %call280 | |
br i1 %cmp281, label %for.body282, label %for.end298 | |
for.body282: ; preds = %invoke.cont279 | |
%184 = bitcast %class.CStringBase* %fullPath to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %184) #3 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %fullPath) | |
to label %invoke.cont284 unwind label %lpad283 | |
invoke.cont284: ; preds = %for.body282 | |
%185 = load i32, i32* %i276, align 4, !tbaa !15 | |
%call287 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePaths, i32 %185) | |
to label %invoke.cont286 unwind label %lpad285 | |
invoke.cont286: ; preds = %invoke.cont284 | |
%call289 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %call287) | |
to label %invoke.cont288 unwind label %lpad285 | |
invoke.cont288: ; preds = %invoke.cont286 | |
%call291 = invoke zeroext i1 @_ZN8NWindows5NFile10NDirectory17MyGetFullPathNameEPKwR11CStringBaseIwE(i32* %call289, %class.CStringBase* nonnull align 8 dereferenceable(16) %fullPath) | |
to label %invoke.cont290 unwind label %lpad285 | |
invoke.cont290: ; preds = %invoke.cont288 | |
%call293 = invoke i32 @_ZN13CObjectVectorI11CStringBaseIwEE3AddERKS1_(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePathsFull, %class.CStringBase* nonnull align 8 dereferenceable(16) %fullPath) | |
to label %invoke.cont292 unwind label %lpad285 | |
invoke.cont292: ; preds = %invoke.cont290 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %fullPath) #3 | |
%186 = bitcast %class.CStringBase* %fullPath to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %186) #3 | |
br label %for.inc296 | |
for.inc296: ; preds = %invoke.cont292 | |
%187 = load i32, i32* %i276, align 4, !tbaa !15 | |
%inc297 = add nsw i32 %187, 1 | |
store i32 %inc297, i32* %i276, align 4, !tbaa !15 | |
br label %for.cond277, !llvm.loop !51 | |
lpad274: ; preds = %if.end273 | |
%188 = landingpad { i8*, i32 } | |
cleanup | |
%189 = extractvalue { i8*, i32 } %188, 0 | |
store i8* %189, i8** %exn.slot, align 8 | |
%190 = extractvalue { i8*, i32 } %188, 1 | |
store i32 %190, i32* %ehselector.slot, align 4 | |
br label %ehcleanup337 | |
lpad278: ; preds = %for.cond277 | |
%191 = landingpad { i8*, i32 } | |
cleanup | |
%192 = extractvalue { i8*, i32 } %191, 0 | |
store i8* %192, i8** %exn.slot, align 8 | |
%193 = extractvalue { i8*, i32 } %191, 1 | |
store i32 %193, i32* %ehselector.slot, align 4 | |
br label %ehcleanup335 | |
lpad283: ; preds = %for.body282 | |
%194 = landingpad { i8*, i32 } | |
cleanup | |
%195 = extractvalue { i8*, i32 } %194, 0 | |
store i8* %195, i8** %exn.slot, align 8 | |
%196 = extractvalue { i8*, i32 } %194, 1 | |
store i32 %196, i32* %ehselector.slot, align 4 | |
br label %ehcleanup295 | |
lpad285: ; preds = %invoke.cont290, %invoke.cont288, %invoke.cont286, %invoke.cont284 | |
%197 = landingpad { i8*, i32 } | |
cleanup | |
%198 = extractvalue { i8*, i32 } %197, 0 | |
store i8* %198, i8** %exn.slot, align 8 | |
%199 = extractvalue { i8*, i32 } %197, 1 | |
store i32 %199, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %fullPath) #3 | |
br label %ehcleanup295 | |
ehcleanup295: ; preds = %lpad285, %lpad283 | |
%200 = bitcast %class.CStringBase* %fullPath to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %200) #3 | |
br label %ehcleanup335 | |
for.end298: ; preds = %invoke.cont279 | |
%201 = bitcast %class.CRecordVector.4* %indices to i8* | |
call void @llvm.lifetime.start.p0i8(i64 32, i8* %201) #3 | |
invoke void @_ZN13CRecordVectorIiEC2Ev(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %indices) | |
to label %invoke.cont300 unwind label %lpad299 | |
invoke.cont300: ; preds = %for.end298 | |
invoke void @_Z13SortFileNamesRK13CObjectVectorI11CStringBaseIwEER13CRecordVectorIiE(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePathsFull, %class.CRecordVector.4* nonnull align 8 dereferenceable(32) %indices) | |
to label %invoke.cont302 unwind label %lpad301 | |
invoke.cont302: ; preds = %invoke.cont300 | |
%202 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%ArchivePathsSorted303 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %202, i32 0, i32 20 | |
%203 = bitcast %class.CObjectVector* %ArchivePathsSorted303 to %class.CBaseRecordVector* | |
%204 = bitcast %class.CRecordVector.4* %indices to %class.CBaseRecordVector* | |
%call305 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %204) | |
to label %invoke.cont304 unwind label %lpad301 | |
invoke.cont304: ; preds = %invoke.cont302 | |
invoke void @_ZN17CBaseRecordVector7ReserveEi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %203, i32 %call305) | |
to label %invoke.cont306 unwind label %lpad301 | |
invoke.cont306: ; preds = %invoke.cont304 | |
%205 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%ArchivePathsFullSorted307 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %205, i32 0, i32 21 | |
%206 = bitcast %class.CObjectVector* %ArchivePathsFullSorted307 to %class.CBaseRecordVector* | |
%207 = bitcast %class.CRecordVector.4* %indices to %class.CBaseRecordVector* | |
%call309 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %207) | |
to label %invoke.cont308 unwind label %lpad301 | |
invoke.cont308: ; preds = %invoke.cont306 | |
invoke void @_ZN17CBaseRecordVector7ReserveEi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %206, i32 %call309) | |
to label %invoke.cont310 unwind label %lpad301 | |
invoke.cont310: ; preds = %invoke.cont308 | |
store i32 0, i32* %i276, align 4, !tbaa !15 | |
br label %for.cond311 | |
for.cond311: ; preds = %for.inc330, %invoke.cont310 | |
%208 = load i32, i32* %i276, align 4, !tbaa !15 | |
%209 = bitcast %class.CRecordVector.4* %indices to %class.CBaseRecordVector* | |
%call313 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %209) | |
to label %invoke.cont312 unwind label %lpad301 | |
invoke.cont312: ; preds = %for.cond311 | |
%cmp314 = icmp slt i32 %208, %call313 | |
br i1 %cmp314, label %for.body315, label %for.end332 | |
for.body315: ; preds = %invoke.cont312 | |
%210 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%ArchivePathsSorted316 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %210, i32 0, i32 20 | |
%211 = load i32, i32* %i276, align 4, !tbaa !15 | |
%call318 = invoke nonnull align 4 dereferenceable(4) i32* @_ZN13CRecordVectorIiEixEi(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %indices, i32 %211) | |
to label %invoke.cont317 unwind label %lpad301 | |
invoke.cont317: ; preds = %for.body315 | |
%212 = load i32, i32* %call318, align 4, !tbaa !15 | |
%call320 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePaths, i32 %212) | |
to label %invoke.cont319 unwind label %lpad301 | |
invoke.cont319: ; preds = %invoke.cont317 | |
%call322 = invoke i32 @_ZN13CObjectVectorI11CStringBaseIwEE3AddERKS1_(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsSorted316, %class.CStringBase* nonnull align 8 dereferenceable(16) %call320) | |
to label %invoke.cont321 unwind label %lpad301 | |
invoke.cont321: ; preds = %invoke.cont319 | |
%213 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%ArchivePathsFullSorted323 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %213, i32 0, i32 21 | |
%214 = load i32, i32* %i276, align 4, !tbaa !15 | |
%call325 = invoke nonnull align 4 dereferenceable(4) i32* @_ZN13CRecordVectorIiEixEi(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %indices, i32 %214) | |
to label %invoke.cont324 unwind label %lpad301 | |
invoke.cont324: ; preds = %invoke.cont321 | |
%215 = load i32, i32* %call325, align 4, !tbaa !15 | |
%call327 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePathsFull, i32 %215) | |
to label %invoke.cont326 unwind label %lpad301 | |
invoke.cont326: ; preds = %invoke.cont324 | |
%call329 = invoke i32 @_ZN13CObjectVectorI11CStringBaseIwEE3AddERKS1_(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsFullSorted323, %class.CStringBase* nonnull align 8 dereferenceable(16) %call327) | |
to label %invoke.cont328 unwind label %lpad301 | |
invoke.cont328: ; preds = %invoke.cont326 | |
br label %for.inc330 | |
for.inc330: ; preds = %invoke.cont328 | |
%216 = load i32, i32* %i276, align 4, !tbaa !15 | |
%inc331 = add nsw i32 %216, 1 | |
store i32 %inc331, i32* %i276, align 4, !tbaa !15 | |
br label %for.cond311, !llvm.loop !52 | |
lpad299: ; preds = %for.end298 | |
%217 = landingpad { i8*, i32 } | |
cleanup | |
%218 = extractvalue { i8*, i32 } %217, 0 | |
store i8* %218, i8** %exn.slot, align 8 | |
%219 = extractvalue { i8*, i32 } %217, 1 | |
store i32 %219, i32* %ehselector.slot, align 4 | |
br label %ehcleanup334 | |
lpad301: ; preds = %invoke.cont326, %invoke.cont324, %invoke.cont321, %invoke.cont319, %invoke.cont317, %for.body315, %for.cond311, %invoke.cont308, %invoke.cont306, %invoke.cont304, %invoke.cont302, %invoke.cont300 | |
%220 = landingpad { i8*, i32 } | |
cleanup | |
%221 = extractvalue { i8*, i32 } %220, 0 | |
store i8* %221, i8** %exn.slot, align 8 | |
%222 = extractvalue { i8*, i32 } %220, 1 | |
store i32 %222, i32* %ehselector.slot, align 4 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.4*)*)(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %indices) #3 | |
br label %ehcleanup334 | |
for.end332: ; preds = %invoke.cont312 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.4*)*)(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %indices) #3 | |
%223 = bitcast %class.CRecordVector.4* %indices to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %223) #3 | |
%224 = bitcast i32* %i276 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %224) #3 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePathsFull) #3 | |
%225 = bitcast %class.CObjectVector* %archivePathsFull to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %225) #3 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePaths) #3 | |
%226 = bitcast %class.CObjectVector* %archivePaths to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %226) #3 | |
br label %if.end340 | |
ehcleanup334: ; preds = %lpad301, %lpad299 | |
%227 = bitcast %class.CRecordVector.4* %indices to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %227) #3 | |
br label %ehcleanup335 | |
ehcleanup335: ; preds = %ehcleanup334, %ehcleanup295, %lpad278 | |
%228 = bitcast i32* %i276 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %228) #3 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePathsFull) #3 | |
br label %ehcleanup337 | |
ehcleanup337: ; preds = %ehcleanup335, %lpad274 | |
%229 = bitcast %class.CObjectVector* %archivePathsFull to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %229) #3 | |
br label %ehcleanup338 | |
ehcleanup338: ; preds = %ehcleanup337, %lpad264, %ehcleanup260 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %archivePaths) #3 | |
br label %ehcleanup339 | |
ehcleanup339: ; preds = %ehcleanup338, %lpad214 | |
%230 = bitcast %class.CObjectVector* %archivePaths to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %230) #3 | |
br label %ehcleanup389 | |
if.end340: ; preds = %for.end332, %invoke.cont209 | |
%231 = load i8, i8* %isExtractGroupCommand, align 1, !tbaa !42, !range !33 | |
%tobool341 = trunc i8 %231 to i1 | |
br i1 %tobool341, label %if.then342, label %if.end388 | |
if.then342: ; preds = %if.end340 | |
%parser343 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%232 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%ExtractProperties = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %232, i32 0, i32 22 | |
invoke void @_ZL16SetMethodOptionsRKN18NCommandLineParser7CParserER13CObjectVectorI9CPropertyE(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser343, %class.CObjectVector.1* nonnull align 8 dereferenceable(32) %ExtractProperties) | |
to label %invoke.cont344 unwind label %lpad190 | |
invoke.cont344: ; preds = %if.then342 | |
%233 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%StdOutMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %233, i32 0, i32 6 | |
%234 = load i8, i8* %StdOutMode, align 2, !tbaa !35, !range !33 | |
%tobool345 = trunc i8 %234 to i1 | |
br i1 %tobool345, label %land.lhs.true346, label %if.end352 | |
land.lhs.true346: ; preds = %invoke.cont344 | |
%235 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%IsStdOutTerminal = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %235, i32 0, i32 3 | |
%236 = load i8, i8* %IsStdOutTerminal, align 1, !tbaa !29, !range !33 | |
%tobool347 = trunc i8 %236 to i1 | |
br i1 %tobool347, label %land.lhs.true348, label %if.end352 | |
land.lhs.true348: ; preds = %land.lhs.true346 | |
%237 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%IsStdErrTerminal = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %237, i32 0, i32 4 | |
%238 = load i8, i8* %IsStdErrTerminal, align 4, !tbaa !30, !range !33 | |
%tobool349 = trunc i8 %238 to i1 | |
br i1 %tobool349, label %if.then350, label %if.end352 | |
if.then350: ; preds = %land.lhs.true348 | |
%exception351 = call i8* @__cxa_allocate_exception(i64 8) #3 | |
%239 = bitcast i8* %exception351 to i8** | |
%240 = load i8*, i8** @_ZL18kSameTerminalError, align 8, !tbaa !3 | |
store i8* %240, i8** %239, align 16, !tbaa !3 | |
invoke void @__cxa_throw(i8* %exception351, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18 | |
to label %unreachable unwind label %lpad190 | |
if.end352: ; preds = %land.lhs.true348, %land.lhs.true346, %invoke.cont344 | |
%parser353 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call355 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser353, i64 9) | |
to label %invoke.cont354 unwind label %lpad190 | |
invoke.cont354: ; preds = %if.end352 | |
%ThereIs356 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call355, i32 0, i32 0 | |
%241 = load i8, i8* %ThereIs356, align 8, !tbaa !31, !range !33 | |
%tobool357 = trunc i8 %241 to i1 | |
br i1 %tobool357, label %if.then358, label %if.end369 | |
if.then358: ; preds = %invoke.cont354 | |
%parser359 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call361 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser359, i64 9) | |
to label %invoke.cont360 unwind label %lpad190 | |
invoke.cont360: ; preds = %if.then358 | |
%PostStrings362 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call361, i32 0, i32 3 | |
%call364 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings362, i32 0) | |
to label %invoke.cont363 unwind label %lpad190 | |
invoke.cont363: ; preds = %invoke.cont360 | |
%242 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%OutputDir = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %242, i32 0, i32 18 | |
%call366 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir, %class.CStringBase* nonnull align 8 dereferenceable(16) %call364) | |
to label %invoke.cont365 unwind label %lpad190 | |
invoke.cont365: ; preds = %invoke.cont363 | |
%243 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%OutputDir367 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %243, i32 0, i32 18 | |
invoke void @_ZN8NWindows5NFile5NName22NormalizeDirPathPrefixER11CStringBaseIwE(%class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir367) | |
to label %invoke.cont368 unwind label %lpad190 | |
invoke.cont368: ; preds = %invoke.cont365 | |
br label %if.end369 | |
if.end369: ; preds = %invoke.cont368, %invoke.cont354 | |
%244 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%OverwriteMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %244, i32 0, i32 19 | |
store i32 0, i32* %OverwriteMode, align 8, !tbaa !53 | |
%parser370 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call372 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser370, i64 22) | |
to label %invoke.cont371 unwind label %lpad190 | |
invoke.cont371: ; preds = %if.end369 | |
%ThereIs373 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call372, i32 0, i32 0 | |
%245 = load i8, i8* %ThereIs373, align 8, !tbaa !31, !range !33 | |
%tobool374 = trunc i8 %245 to i1 | |
br i1 %tobool374, label %if.then375, label %if.else381 | |
if.then375: ; preds = %invoke.cont371 | |
%parser376 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call378 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser376, i64 22) | |
to label %invoke.cont377 unwind label %lpad190 | |
invoke.cont377: ; preds = %if.then375 | |
%PostCharIndex379 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call378, i32 0, i32 4 | |
%246 = load i32, i32* %PostCharIndex379, align 8, !tbaa !41 | |
%idxprom = sext i32 %246 to i64 | |
%arrayidx = getelementptr inbounds [4 x i32], [4 x i32]* @k_OverwriteModes, i64 0, i64 %idxprom | |
%247 = load i32, i32* %arrayidx, align 4, !tbaa !54 | |
%248 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%OverwriteMode380 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %248, i32 0, i32 19 | |
store i32 %247, i32* %OverwriteMode380, align 8, !tbaa !53 | |
br label %if.end387 | |
if.else381: ; preds = %invoke.cont371 | |
%249 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%YesToAll382 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %249, i32 0, i32 8 | |
%250 = load i8, i8* %YesToAll382, align 8, !tbaa !46, !range !33 | |
%tobool383 = trunc i8 %250 to i1 | |
br i1 %tobool383, label %if.then384, label %if.end386 | |
if.then384: ; preds = %if.else381 | |
%251 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%OverwriteMode385 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %251, i32 0, i32 19 | |
store i32 1, i32* %OverwriteMode385, align 8, !tbaa !53 | |
br label %if.end386 | |
if.end386: ; preds = %if.then384, %if.else381 | |
br label %if.end387 | |
if.end387: ; preds = %if.end386, %invoke.cont377 | |
br label %if.end388 | |
if.end388: ; preds = %if.end387, %if.end340 | |
call void @llvm.lifetime.end.p0i8(i64 1, i8* %directlyAddArchiveName) #3 | |
call void @_ZN9NWildcard7CCensorD2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %archiveWildcardCensor) #3 | |
%252 = bitcast %"class.NWildcard::CCensor"* %archiveWildcardCensor to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %252) #3 | |
br label %if.end637 | |
ehcleanup389: ; preds = %ehcleanup339, %ehcleanup212, %lpad190, %ehcleanup186 | |
call void @llvm.lifetime.end.p0i8(i64 1, i8* %directlyAddArchiveName) #3 | |
br label %ehcleanup390 | |
ehcleanup390: ; preds = %ehcleanup389, %lpad | |
call void @_ZN9NWildcard7CCensorD2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %archiveWildcardCensor) #3 | |
%253 = bitcast %"class.NWildcard::CCensor"* %archiveWildcardCensor to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %253) #3 | |
br label %ehcleanup639 | |
if.else392: ; preds = %if.end126 | |
%254 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%Command393 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %254, i32 0, i32 11 | |
%call394 = call zeroext i1 @_ZNK15CArchiveCommand17IsFromUpdateGroupEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %Command393) | |
br i1 %call394, label %if.then395, label %if.else484 | |
if.then395: ; preds = %if.else392 | |
%255 = bitcast %struct.CUpdateOptions** %updateOptions to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %255) #3 | |
%256 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%UpdateOptions = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %256, i32 0, i32 23 | |
store %struct.CUpdateOptions* %UpdateOptions, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3 | |
%257 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%Command396 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %257, i32 0, i32 11 | |
%CommandType397 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command396, i32 0, i32 0 | |
%258 = load i32, i32* %CommandType397, align 8, !tbaa !45 | |
%parser398 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%259 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3 | |
call void @_ZL20SetAddCommandOptionsN12NCommandType5EEnumERKN18NCommandLineParser7CParserER14CUpdateOptions(i32 %258, %"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser398, %struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %259) | |
%parser399 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%260 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3 | |
%MethodMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %260, i32 0, i32 0 | |
%Properties = getelementptr inbounds %struct.CCompressionMethodMode, %struct.CCompressionMethodMode* %MethodMode, i32 0, i32 1 | |
call void @_ZL16SetMethodOptionsRKN18NCommandLineParser7CParserER13CObjectVectorI9CPropertyE(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser399, %class.CObjectVector.1* nonnull align 8 dereferenceable(32) %Properties) | |
%parser400 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call401 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser400, i64 4) | |
%ThereIs402 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call401, i32 0, i32 0 | |
%261 = load i8, i8* %ThereIs402, align 8, !tbaa !31, !range !33 | |
%tobool403 = trunc i8 %261 to i1 | |
%lnot404 = xor i1 %tobool403, true | |
%262 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%EnablePercents = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %262, i32 0, i32 25 | |
%frombool405 = zext i1 %lnot404 to i8 | |
store i8 %frombool405, i8* %EnablePercents, align 8, !tbaa !55 | |
%263 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%EnablePercents406 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %263, i32 0, i32 25 | |
%264 = load i8, i8* %EnablePercents406, align 8, !tbaa !55, !range !33 | |
%tobool407 = trunc i8 %264 to i1 | |
br i1 %tobool407, label %if.then408, label %if.end423 | |
if.then408: ; preds = %if.then395 | |
%265 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%StdOutMode409 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %265, i32 0, i32 6 | |
%266 = load i8, i8* %StdOutMode409, align 2, !tbaa !35, !range !33 | |
%tobool410 = trunc i8 %266 to i1 | |
br i1 %tobool410, label %land.lhs.true411, label %lor.lhs.false414 | |
land.lhs.true411: ; preds = %if.then408 | |
%267 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%IsStdErrTerminal412 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %267, i32 0, i32 4 | |
%268 = load i8, i8* %IsStdErrTerminal412, align 4, !tbaa !30, !range !33 | |
%tobool413 = trunc i8 %268 to i1 | |
br i1 %tobool413, label %lor.lhs.false414, label %if.then420 | |
lor.lhs.false414: ; preds = %land.lhs.true411, %if.then408 | |
%269 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%StdOutMode415 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %269, i32 0, i32 6 | |
%270 = load i8, i8* %StdOutMode415, align 2, !tbaa !35, !range !33 | |
%tobool416 = trunc i8 %270 to i1 | |
br i1 %tobool416, label %if.end422, label %land.lhs.true417 | |
land.lhs.true417: ; preds = %lor.lhs.false414 | |
%271 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%IsStdOutTerminal418 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %271, i32 0, i32 3 | |
%272 = load i8, i8* %IsStdOutTerminal418, align 1, !tbaa !29, !range !33 | |
%tobool419 = trunc i8 %272 to i1 | |
br i1 %tobool419, label %if.end422, label %if.then420 | |
if.then420: ; preds = %land.lhs.true417, %land.lhs.true411 | |
%273 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%EnablePercents421 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %273, i32 0, i32 25 | |
store i8 0, i8* %EnablePercents421, align 8, !tbaa !55 | |
br label %if.end422 | |
if.end422: ; preds = %if.then420, %land.lhs.true417, %lor.lhs.false414 | |
br label %if.end423 | |
if.end423: ; preds = %if.end422, %if.then395 | |
%parser424 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call425 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser424, i64 23) | |
%ThereIs426 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call425, i32 0, i32 0 | |
%274 = load i8, i8* %ThereIs426, align 8, !tbaa !31, !range !33 | |
%tobool427 = trunc i8 %274 to i1 | |
%275 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3 | |
%EMailMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %275, i32 0, i32 10 | |
%frombool428 = zext i1 %tobool427 to i8 | |
store i8 %frombool428, i8* %EMailMode, align 1, !tbaa !56 | |
%276 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3 | |
%EMailMode429 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %276, i32 0, i32 10 | |
%277 = load i8, i8* %EMailMode429, align 1, !tbaa !56, !range !33 | |
%tobool430 = trunc i8 %277 to i1 | |
br i1 %tobool430, label %if.then431, label %if.end450 | |
if.then431: ; preds = %if.end423 | |
%parser432 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call433 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser432, i64 23) | |
%PostStrings434 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call433, i32 0, i32 3 | |
%call435 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEE5FrontEv(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings434) | |
%278 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3 | |
%EMailAddress = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %278, i32 0, i32 12 | |
%call436 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %EMailAddress, %class.CStringBase* nonnull align 8 dereferenceable(16) %call435) | |
%279 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3 | |
%EMailAddress437 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %279, i32 0, i32 12 | |
%call438 = call i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %EMailAddress437) | |
%cmp439 = icmp sgt i32 %call438, 0 | |
br i1 %cmp439, label %if.then440, label %if.end449 | |
if.then440: ; preds = %if.then431 | |
%280 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3 | |
%EMailAddress441 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %280, i32 0, i32 12 | |
%call442 = call i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %EMailAddress441) | |
%arrayidx443 = getelementptr inbounds i32, i32* %call442, i64 0 | |
%281 = load i32, i32* %arrayidx443, align 4, !tbaa !57 | |
%cmp444 = icmp eq i32 %281, 46 | |
br i1 %cmp444, label %if.then445, label %if.end448 | |
if.then445: ; preds = %if.then440 | |
%282 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3 | |
%EMailRemoveAfter = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %282, i32 0, i32 11 | |
store i8 1, i8* %EMailRemoveAfter, align 2, !tbaa !59 | |
%283 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3 | |
%EMailAddress446 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %283, i32 0, i32 12 | |
%call447 = call i32 @_ZN11CStringBaseIwE6DeleteEii(%class.CStringBase* nonnull align 8 dereferenceable(16) %EMailAddress446, i32 0, i32 1) | |
br label %if.end448 | |
if.end448: ; preds = %if.then445, %if.then440 | |
br label %if.end449 | |
if.end449: ; preds = %if.end448, %if.then431 | |
br label %if.end450 | |
if.end450: ; preds = %if.end449, %if.end423 | |
%284 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%StdOutMode451 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %284, i32 0, i32 6 | |
%285 = load i8, i8* %StdOutMode451, align 2, !tbaa !35, !range !33 | |
%tobool452 = trunc i8 %285 to i1 | |
%286 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3 | |
%StdOutMode453 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %286, i32 0, i32 9 | |
%frombool454 = zext i1 %tobool452 to i8 | |
store i8 %frombool454, i8* %StdOutMode453, align 8, !tbaa !60 | |
%287 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%StdInMode455 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %287, i32 0, i32 5 | |
%288 = load i8, i8* %StdInMode455, align 1, !tbaa !34, !range !33 | |
%tobool456 = trunc i8 %288 to i1 | |
%289 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3 | |
%StdInMode457 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %289, i32 0, i32 7 | |
%frombool458 = zext i1 %tobool456 to i8 | |
store i8 %frombool458, i8* %StdInMode457, align 1, !tbaa !61 | |
%290 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3 | |
%StdOutMode459 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %290, i32 0, i32 9 | |
%291 = load i8, i8* %StdOutMode459, align 8, !tbaa !60, !range !33 | |
%tobool460 = trunc i8 %291 to i1 | |
br i1 %tobool460, label %land.lhs.true461, label %if.end466 | |
land.lhs.true461: ; preds = %if.end450 | |
%292 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3 | |
%EMailMode462 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %292, i32 0, i32 10 | |
%293 = load i8, i8* %EMailMode462, align 1, !tbaa !56, !range !33 | |
%tobool463 = trunc i8 %293 to i1 | |
br i1 %tobool463, label %if.then464, label %if.end466 | |
if.then464: ; preds = %land.lhs.true461 | |
%exception465 = call i8* @__cxa_allocate_exception(i64 8) #3 | |
%294 = bitcast i8* %exception465 to i8** | |
store i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.8, i64 0, i64 0), i8** %294, align 16, !tbaa !3 | |
call void @__cxa_throw(i8* %exception465, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18 | |
unreachable | |
if.end466: ; preds = %land.lhs.true461, %if.end450 | |
%295 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3 | |
%StdOutMode467 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %295, i32 0, i32 9 | |
%296 = load i8, i8* %StdOutMode467, align 8, !tbaa !60, !range !33 | |
%tobool468 = trunc i8 %296 to i1 | |
br i1 %tobool468, label %land.lhs.true469, label %if.end474 | |
land.lhs.true469: ; preds = %if.end466 | |
%297 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%IsStdOutTerminal470 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %297, i32 0, i32 3 | |
%298 = load i8, i8* %IsStdOutTerminal470, align 1, !tbaa !29, !range !33 | |
%tobool471 = trunc i8 %298 to i1 | |
br i1 %tobool471, label %if.then472, label %if.end474 | |
if.then472: ; preds = %land.lhs.true469 | |
%exception473 = call i8* @__cxa_allocate_exception(i64 8) #3 | |
%299 = bitcast i8* %exception473 to i8** | |
%300 = load i8*, i8** @_ZL17kTerminalOutError, align 8, !tbaa !3 | |
store i8* %300, i8** %299, align 16, !tbaa !3 | |
call void @__cxa_throw(i8* %exception473, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18 | |
unreachable | |
if.end474: ; preds = %land.lhs.true469, %if.end466 | |
%301 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3 | |
%StdInMode475 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %301, i32 0, i32 7 | |
%302 = load i8, i8* %StdInMode475, align 1, !tbaa !61, !range !33 | |
%tobool476 = trunc i8 %302 to i1 | |
br i1 %tobool476, label %if.then477, label %if.end483 | |
if.then477: ; preds = %if.end474 | |
%parser478 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call479 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser478, i64 20) | |
%PostStrings480 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call479, i32 0, i32 3 | |
%call481 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEE5FrontEv(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings480) | |
%303 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %updateOptions, align 8, !tbaa !3 | |
%StdInFileName = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %303, i32 0, i32 8 | |
%call482 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %StdInFileName, %class.CStringBase* nonnull align 8 dereferenceable(16) %call481) | |
br label %if.end483 | |
if.end483: ; preds = %if.then477, %if.end474 | |
%304 = bitcast %struct.CUpdateOptions** %updateOptions to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %304) #3 | |
br label %if.end636 | |
if.else484: ; preds = %if.else392 | |
%305 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%Command485 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %305, i32 0, i32 11 | |
%CommandType486 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command485, i32 0, i32 0 | |
%306 = load i32, i32* %CommandType486, align 8, !tbaa !45 | |
%cmp487 = icmp eq i32 %306, 7 | |
br i1 %cmp487, label %if.then488, label %if.else628 | |
if.then488: ; preds = %if.else484 | |
%307 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%NumThreads = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %307, i32 0, i32 27 | |
store i32 -1, i32* %NumThreads, align 8, !tbaa !62 | |
%308 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%DictionarySize = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %308, i32 0, i32 28 | |
store i32 -1, i32* %DictionarySize, align 4, !tbaa !63 | |
%309 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%NumIterations = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %309, i32 0, i32 26 | |
store i32 1, i32* %NumIterations, align 4, !tbaa !64 | |
%310 = load i32, i32* %curCommandIndex, align 4, !tbaa !15 | |
%311 = load i32, i32* %numNonSwitchStrings, align 4, !tbaa !15 | |
%cmp489 = icmp slt i32 %310, %311 | |
br i1 %cmp489, label %if.then490, label %if.end498 | |
if.then490: ; preds = %if.then488 | |
%312 = load %class.CObjectVector*, %class.CObjectVector** %nonSwitchStrings, align 8, !tbaa !3 | |
%313 = load i32, i32* %curCommandIndex, align 4, !tbaa !15 | |
%inc491 = add nsw i32 %313, 1 | |
store i32 %inc491, i32* %curCommandIndex, align 4, !tbaa !15 | |
%call492 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %312, i32 %313) | |
%call493 = call i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %call492) | |
%314 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%NumIterations494 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %314, i32 0, i32 26 | |
%call495 = call zeroext i1 @_ZL21ConvertStringToUInt32PKwRj(i32* %call493, i32* nonnull align 4 dereferenceable(4) %NumIterations494) | |
br i1 %call495, label %if.end497, label %if.then496 | |
if.then496: ; preds = %if.then490 | |
call void @_ZL23ThrowUserErrorExceptionv() | |
br label %if.end497 | |
if.end497: ; preds = %if.then496, %if.then490 | |
br label %if.end498 | |
if.end498: ; preds = %if.end497, %if.then488 | |
%315 = bitcast i32* %i499 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %315) #3 | |
store i32 0, i32* %i499, align 4, !tbaa !15 | |
br label %for.cond500 | |
for.cond500: ; preds = %for.inc624, %if.end498 | |
%316 = load i32, i32* %i499, align 4, !tbaa !15 | |
%parser501 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call502 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser501, i64 8) | |
%PostStrings503 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call502, i32 0, i32 3 | |
%317 = bitcast %class.CObjectVector* %PostStrings503 to %class.CBaseRecordVector* | |
%call504 = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %317) | |
%cmp505 = icmp slt i32 %316, %call504 | |
br i1 %cmp505, label %for.body507, label %for.cond.cleanup506 | |
for.cond.cleanup506: ; preds = %for.cond500 | |
%318 = bitcast i32* %i499 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %318) #3 | |
br label %for.end627 | |
for.body507: ; preds = %for.cond500 | |
%319 = bitcast %class.CStringBase* %postString to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %319) #3 | |
%parser508 = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
%call509 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser508, i64 8) | |
%PostStrings510 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call509, i32 0, i32 3 | |
%320 = load i32, i32* %i499, align 4, !tbaa !15 | |
%call511 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings510, i32 %320) | |
call void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString, %class.CStringBase* nonnull align 8 dereferenceable(16) %call511) | |
invoke void @_ZN11CStringBaseIwE9MakeUpperEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) | |
to label %invoke.cont513 unwind label %lpad512 | |
invoke.cont513: ; preds = %for.body507 | |
%call515 = invoke i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) | |
to label %invoke.cont514 unwind label %lpad512 | |
invoke.cont514: ; preds = %invoke.cont513 | |
%cmp516 = icmp slt i32 %call515, 2 | |
br i1 %cmp516, label %if.then517, label %if.end519 | |
if.then517: ; preds = %invoke.cont514 | |
invoke void @_ZL23ThrowUserErrorExceptionv() | |
to label %invoke.cont518 unwind label %lpad512 | |
invoke.cont518: ; preds = %if.then517 | |
br label %if.end519 | |
lpad512: ; preds = %if.else617, %land.lhs.true593, %if.else588, %land.lhs.true554, %if.else549, %if.end519, %if.then517, %invoke.cont513, %for.body507 | |
%321 = landingpad { i8*, i32 } | |
cleanup | |
%322 = extractvalue { i8*, i32 } %321, 0 | |
store i8* %322, i8** %exn.slot, align 8 | |
%323 = extractvalue { i8*, i32 } %321, 1 | |
store i32 %323, i32* %ehselector.slot, align 4 | |
br label %ehcleanup622 | |
if.end519: ; preds = %invoke.cont518, %invoke.cont514 | |
%call521 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) | |
to label %invoke.cont520 unwind label %lpad512 | |
invoke.cont520: ; preds = %if.end519 | |
%arrayidx522 = getelementptr inbounds i32, i32* %call521, i64 0 | |
%324 = load i32, i32* %arrayidx522, align 4, !tbaa !57 | |
%cmp523 = icmp eq i32 %324, 68 | |
br i1 %cmp523, label %if.then524, label %if.else549 | |
if.then524: ; preds = %invoke.cont520 | |
%325 = bitcast i32* %pos to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %325) #3 | |
store i32 1, i32* %pos, align 4, !tbaa !15 | |
%call527 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) | |
to label %invoke.cont526 unwind label %lpad525 | |
invoke.cont526: ; preds = %if.then524 | |
%326 = load i32, i32* %pos, align 4, !tbaa !15 | |
%idxprom528 = sext i32 %326 to i64 | |
%arrayidx529 = getelementptr inbounds i32, i32* %call527, i64 %idxprom528 | |
%327 = load i32, i32* %arrayidx529, align 4, !tbaa !57 | |
%cmp530 = icmp eq i32 %327, 61 | |
br i1 %cmp530, label %if.then531, label %if.end533 | |
if.then531: ; preds = %invoke.cont526 | |
%328 = load i32, i32* %pos, align 4, !tbaa !15 | |
%inc532 = add nsw i32 %328, 1 | |
store i32 %inc532, i32* %pos, align 4, !tbaa !15 | |
br label %if.end533 | |
lpad525: ; preds = %if.then524 | |
%329 = landingpad { i8*, i32 } | |
cleanup | |
%330 = extractvalue { i8*, i32 } %329, 0 | |
store i8* %330, i8** %exn.slot, align 8 | |
%331 = extractvalue { i8*, i32 } %329, 1 | |
store i32 %331, i32* %ehselector.slot, align 4 | |
br label %ehcleanup548 | |
if.end533: ; preds = %if.then531, %invoke.cont526 | |
%332 = bitcast i32* %logSize to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %332) #3 | |
%call536 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) | |
to label %invoke.cont535 unwind label %lpad534 | |
invoke.cont535: ; preds = %if.end533 | |
%333 = load i32, i32* %pos, align 4, !tbaa !15 | |
%idx.ext = sext i32 %333 to i64 | |
%add.ptr = getelementptr inbounds i32, i32* %call536, i64 %idx.ext | |
%call538 = invoke zeroext i1 @_ZL21ConvertStringToUInt32PKwRj(i32* %add.ptr, i32* nonnull align 4 dereferenceable(4) %logSize) | |
to label %invoke.cont537 unwind label %lpad534 | |
invoke.cont537: ; preds = %invoke.cont535 | |
br i1 %call538, label %if.end541, label %if.then539 | |
if.then539: ; preds = %invoke.cont537 | |
invoke void @_ZL23ThrowUserErrorExceptionv() | |
to label %invoke.cont540 unwind label %lpad534 | |
invoke.cont540: ; preds = %if.then539 | |
br label %if.end541 | |
lpad534: ; preds = %if.then543, %if.then539, %invoke.cont535, %if.end533 | |
%334 = landingpad { i8*, i32 } | |
cleanup | |
%335 = extractvalue { i8*, i32 } %334, 0 | |
store i8* %335, i8** %exn.slot, align 8 | |
%336 = extractvalue { i8*, i32 } %334, 1 | |
store i32 %336, i32* %ehselector.slot, align 4 | |
%337 = bitcast i32* %logSize to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %337) #3 | |
br label %ehcleanup548 | |
if.end541: ; preds = %invoke.cont540, %invoke.cont537 | |
%338 = load i32, i32* %logSize, align 4, !tbaa !15 | |
%cmp542 = icmp ugt i32 %338, 31 | |
br i1 %cmp542, label %if.then543, label %if.end545 | |
if.then543: ; preds = %if.end541 | |
invoke void @_ZL23ThrowUserErrorExceptionv() | |
to label %invoke.cont544 unwind label %lpad534 | |
invoke.cont544: ; preds = %if.then543 | |
br label %if.end545 | |
if.end545: ; preds = %invoke.cont544, %if.end541 | |
%339 = load i32, i32* %logSize, align 4, !tbaa !15 | |
%shl = shl i32 1, %339 | |
%340 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%DictionarySize546 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %340, i32 0, i32 28 | |
store i32 %shl, i32* %DictionarySize546, align 4, !tbaa !63 | |
%341 = bitcast i32* %logSize to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %341) #3 | |
%342 = bitcast i32* %pos to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %342) #3 | |
br label %if.end621 | |
ehcleanup548: ; preds = %lpad534, %lpad525 | |
%343 = bitcast i32* %pos to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %343) #3 | |
br label %ehcleanup622 | |
if.else549: ; preds = %invoke.cont520 | |
%call551 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) | |
to label %invoke.cont550 unwind label %lpad512 | |
invoke.cont550: ; preds = %if.else549 | |
%arrayidx552 = getelementptr inbounds i32, i32* %call551, i64 0 | |
%344 = load i32, i32* %arrayidx552, align 4, !tbaa !57 | |
%cmp553 = icmp eq i32 %344, 77 | |
br i1 %cmp553, label %land.lhs.true554, label %if.else588 | |
land.lhs.true554: ; preds = %invoke.cont550 | |
%call556 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) | |
to label %invoke.cont555 unwind label %lpad512 | |
invoke.cont555: ; preds = %land.lhs.true554 | |
%arrayidx557 = getelementptr inbounds i32, i32* %call556, i64 1 | |
%345 = load i32, i32* %arrayidx557, align 4, !tbaa !57 | |
%cmp558 = icmp eq i32 %345, 84 | |
br i1 %cmp558, label %if.then559, label %if.else588 | |
if.then559: ; preds = %invoke.cont555 | |
%346 = bitcast i32* %pos560 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %346) #3 | |
store i32 2, i32* %pos560, align 4, !tbaa !15 | |
%call563 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) | |
to label %invoke.cont562 unwind label %lpad561 | |
invoke.cont562: ; preds = %if.then559 | |
%347 = load i32, i32* %pos560, align 4, !tbaa !15 | |
%idxprom564 = sext i32 %347 to i64 | |
%arrayidx565 = getelementptr inbounds i32, i32* %call563, i64 %idxprom564 | |
%348 = load i32, i32* %arrayidx565, align 4, !tbaa !57 | |
%cmp566 = icmp eq i32 %348, 61 | |
br i1 %cmp566, label %if.then567, label %if.end569 | |
if.then567: ; preds = %invoke.cont562 | |
%349 = load i32, i32* %pos560, align 4, !tbaa !15 | |
%inc568 = add nsw i32 %349, 1 | |
store i32 %inc568, i32* %pos560, align 4, !tbaa !15 | |
br label %if.end569 | |
lpad561: ; preds = %if.then583, %invoke.cont576, %if.then575, %if.end569, %if.then559 | |
%350 = landingpad { i8*, i32 } | |
cleanup | |
%351 = extractvalue { i8*, i32 } %350, 0 | |
store i8* %351, i8** %exn.slot, align 8 | |
%352 = extractvalue { i8*, i32 } %350, 1 | |
store i32 %352, i32* %ehselector.slot, align 4 | |
%353 = bitcast i32* %pos560 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %353) #3 | |
br label %ehcleanup622 | |
if.end569: ; preds = %if.then567, %invoke.cont562 | |
%call571 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) | |
to label %invoke.cont570 unwind label %lpad561 | |
invoke.cont570: ; preds = %if.end569 | |
%354 = load i32, i32* %pos560, align 4, !tbaa !15 | |
%idxprom572 = sext i32 %354 to i64 | |
%arrayidx573 = getelementptr inbounds i32, i32* %call571, i64 %idxprom572 | |
%355 = load i32, i32* %arrayidx573, align 4, !tbaa !57 | |
%cmp574 = icmp ne i32 %355, 0 | |
br i1 %cmp574, label %if.then575, label %if.end586 | |
if.then575: ; preds = %invoke.cont570 | |
%call577 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) | |
to label %invoke.cont576 unwind label %lpad561 | |
invoke.cont576: ; preds = %if.then575 | |
%356 = load i32, i32* %pos560, align 4, !tbaa !15 | |
%idx.ext578 = sext i32 %356 to i64 | |
%add.ptr579 = getelementptr inbounds i32, i32* %call577, i64 %idx.ext578 | |
%357 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%NumThreads580 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %357, i32 0, i32 27 | |
%call582 = invoke zeroext i1 @_ZL21ConvertStringToUInt32PKwRj(i32* %add.ptr579, i32* nonnull align 4 dereferenceable(4) %NumThreads580) | |
to label %invoke.cont581 unwind label %lpad561 | |
invoke.cont581: ; preds = %invoke.cont576 | |
br i1 %call582, label %if.end585, label %if.then583 | |
if.then583: ; preds = %invoke.cont581 | |
invoke void @_ZL23ThrowUserErrorExceptionv() | |
to label %invoke.cont584 unwind label %lpad561 | |
invoke.cont584: ; preds = %if.then583 | |
br label %if.end585 | |
if.end585: ; preds = %invoke.cont584, %invoke.cont581 | |
br label %if.end586 | |
if.end586: ; preds = %if.end585, %invoke.cont570 | |
%358 = bitcast i32* %pos560 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %358) #3 | |
br label %if.end620 | |
if.else588: ; preds = %invoke.cont555, %invoke.cont550 | |
%call590 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) | |
to label %invoke.cont589 unwind label %lpad512 | |
invoke.cont589: ; preds = %if.else588 | |
%arrayidx591 = getelementptr inbounds i32, i32* %call590, i64 0 | |
%359 = load i32, i32* %arrayidx591, align 4, !tbaa !57 | |
%cmp592 = icmp eq i32 %359, 77 | |
br i1 %cmp592, label %land.lhs.true593, label %if.else617 | |
land.lhs.true593: ; preds = %invoke.cont589 | |
%call595 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) | |
to label %invoke.cont594 unwind label %lpad512 | |
invoke.cont594: ; preds = %land.lhs.true593 | |
%arrayidx596 = getelementptr inbounds i32, i32* %call595, i64 1 | |
%360 = load i32, i32* %arrayidx596, align 4, !tbaa !57 | |
%cmp597 = icmp eq i32 %360, 61 | |
br i1 %cmp597, label %if.then598, label %if.else617 | |
if.then598: ; preds = %invoke.cont594 | |
%361 = bitcast i32* %pos599 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %361) #3 | |
store i32 2, i32* %pos599, align 4, !tbaa !15 | |
%call602 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) | |
to label %invoke.cont601 unwind label %lpad600 | |
invoke.cont601: ; preds = %if.then598 | |
%362 = load i32, i32* %pos599, align 4, !tbaa !15 | |
%idxprom603 = sext i32 %362 to i64 | |
%arrayidx604 = getelementptr inbounds i32, i32* %call602, i64 %idxprom603 | |
%363 = load i32, i32* %arrayidx604, align 4, !tbaa !57 | |
%cmp605 = icmp ne i32 %363, 0 | |
br i1 %cmp605, label %if.then606, label %if.end615 | |
if.then606: ; preds = %invoke.cont601 | |
%364 = bitcast %class.CStringBase* %ref.tmp607 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %364) #3 | |
invoke void @_ZNK11CStringBaseIwE3MidEi(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp607, %class.CStringBase* nonnull align 8 dereferenceable(16) %postString, i32 2) | |
to label %invoke.cont609 unwind label %lpad608 | |
invoke.cont609: ; preds = %if.then606 | |
%365 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%Method = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %365, i32 0, i32 29 | |
%call612 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Method, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp607) | |
to label %invoke.cont611 unwind label %lpad610 | |
invoke.cont611: ; preds = %invoke.cont609 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp607) #3 | |
%366 = bitcast %class.CStringBase* %ref.tmp607 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %366) #3 | |
br label %if.end615 | |
lpad600: ; preds = %if.then598 | |
%367 = landingpad { i8*, i32 } | |
cleanup | |
%368 = extractvalue { i8*, i32 } %367, 0 | |
store i8* %368, i8** %exn.slot, align 8 | |
%369 = extractvalue { i8*, i32 } %367, 1 | |
store i32 %369, i32* %ehselector.slot, align 4 | |
br label %ehcleanup616 | |
lpad608: ; preds = %if.then606 | |
%370 = landingpad { i8*, i32 } | |
cleanup | |
%371 = extractvalue { i8*, i32 } %370, 0 | |
store i8* %371, i8** %exn.slot, align 8 | |
%372 = extractvalue { i8*, i32 } %370, 1 | |
store i32 %372, i32* %ehselector.slot, align 4 | |
br label %ehcleanup614 | |
lpad610: ; preds = %invoke.cont609 | |
%373 = landingpad { i8*, i32 } | |
cleanup | |
%374 = extractvalue { i8*, i32 } %373, 0 | |
store i8* %374, i8** %exn.slot, align 8 | |
%375 = extractvalue { i8*, i32 } %373, 1 | |
store i32 %375, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp607) #3 | |
br label %ehcleanup614 | |
ehcleanup614: ; preds = %lpad610, %lpad608 | |
%376 = bitcast %class.CStringBase* %ref.tmp607 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %376) #3 | |
br label %ehcleanup616 | |
if.end615: ; preds = %invoke.cont611, %invoke.cont601 | |
%377 = bitcast i32* %pos599 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %377) #3 | |
br label %if.end619 | |
ehcleanup616: ; preds = %ehcleanup614, %lpad600 | |
%378 = bitcast i32* %pos599 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %378) #3 | |
br label %ehcleanup622 | |
if.else617: ; preds = %invoke.cont594, %invoke.cont589 | |
invoke void @_ZL23ThrowUserErrorExceptionv() | |
to label %invoke.cont618 unwind label %lpad512 | |
invoke.cont618: ; preds = %if.else617 | |
br label %if.end619 | |
if.end619: ; preds = %invoke.cont618, %if.end615 | |
br label %if.end620 | |
if.end620: ; preds = %if.end619, %if.end586 | |
br label %if.end621 | |
if.end621: ; preds = %if.end620, %if.end545 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) #3 | |
%379 = bitcast %class.CStringBase* %postString to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %379) #3 | |
br label %for.inc624 | |
for.inc624: ; preds = %if.end621 | |
%380 = load i32, i32* %i499, align 4, !tbaa !15 | |
%inc625 = add nsw i32 %380, 1 | |
store i32 %inc625, i32* %i499, align 4, !tbaa !15 | |
br label %for.cond500, !llvm.loop !65 | |
ehcleanup622: ; preds = %ehcleanup616, %lpad561, %ehcleanup548, %lpad512 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) #3 | |
%381 = bitcast %class.CStringBase* %postString to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %381) #3 | |
%382 = bitcast i32* %i499 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %382) #3 | |
br label %ehcleanup639 | |
for.end627: ; preds = %for.cond.cleanup506 | |
br label %if.end635 | |
if.else628: ; preds = %if.else484 | |
%383 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%Command629 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %383, i32 0, i32 11 | |
%CommandType630 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command629, i32 0, i32 0 | |
%384 = load i32, i32* %CommandType630, align 8, !tbaa !45 | |
%cmp631 = icmp eq i32 %384, 8 | |
br i1 %cmp631, label %if.then632, label %if.else633 | |
if.then632: ; preds = %if.else628 | |
br label %if.end634 | |
if.else633: ; preds = %if.else628 | |
call void @_ZL23ThrowUserErrorExceptionv() | |
br label %if.end634 | |
if.end634: ; preds = %if.else633, %if.then632 | |
br label %if.end635 | |
if.end635: ; preds = %if.end634, %for.end627 | |
br label %if.end636 | |
if.end636: ; preds = %if.end635, %if.end483 | |
br label %if.end637 | |
if.end637: ; preds = %if.end636, %if.end388 | |
%385 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %options.addr, align 8, !tbaa !3 | |
%WildcardCensor638 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %385, i32 0, i32 10 | |
call void @_ZN9NWildcard7CCensor13ExtendExcludeEv(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %WildcardCensor638) | |
call void @llvm.lifetime.end.p0i8(i64 1, i8* %isExtractOrList) #3 | |
call void @llvm.lifetime.end.p0i8(i64 1, i8* %isExtractGroupCommand) #3 | |
call void @llvm.lifetime.end.p0i8(i64 1, i8* %thereIsArchiveName) #3 | |
%386 = bitcast i32* %curCommandIndex to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %386) #3 | |
call void @llvm.lifetime.end.p0i8(i64 1, i8* %thereAreSwitchIncludes) #3 | |
%387 = bitcast i32* %codePage to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %387) #3 | |
%388 = bitcast i32* %recursedType to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %388) #3 | |
%389 = bitcast i32* %numNonSwitchStrings to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %389) #3 | |
%390 = bitcast %class.CObjectVector** %nonSwitchStrings to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %390) #3 | |
ret void | |
ehcleanup639: ; preds = %ehcleanup622, %ehcleanup390 | |
call void @llvm.lifetime.end.p0i8(i64 1, i8* %isExtractOrList) #3 | |
call void @llvm.lifetime.end.p0i8(i64 1, i8* %isExtractGroupCommand) #3 | |
call void @llvm.lifetime.end.p0i8(i64 1, i8* %thereIsArchiveName) #3 | |
%391 = bitcast i32* %curCommandIndex to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %391) #3 | |
call void @llvm.lifetime.end.p0i8(i64 1, i8* %thereAreSwitchIncludes) #3 | |
%392 = bitcast i32* %codePage to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %392) #3 | |
%393 = bitcast i32* %recursedType to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %393) #3 | |
%394 = bitcast i32* %numNonSwitchStrings to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %394) #3 | |
%395 = bitcast %class.CObjectVector** %nonSwitchStrings to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %395) #3 | |
br label %eh.resume | |
eh.resume: ; preds = %ehcleanup639 | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val648 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val648 | |
unreachable: ; preds = %if.then350, %if.then271, %if.then229 | |
unreachable | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %this) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CBaseRecordVector*, align 8 | |
store %class.CBaseRecordVector* %this, %class.CBaseRecordVector** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CBaseRecordVector*, %class.CBaseRecordVector** %this.addr, align 8 | |
%_size = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 2 | |
%0 = load i32, i32* %_size, align 4, !tbaa !66 | |
ret i32 %0 | |
} | |
; Function Attrs: mustprogress uwtable | |
define internal zeroext i1 @_ZL19ParseArchiveCommandRK11CStringBaseIwER15CArchiveCommand(%class.CStringBase* nonnull align 8 dereferenceable(16) %commandString, %struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %command) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%retval = alloca i1, align 1 | |
%commandString.addr = alloca %class.CStringBase*, align 8 | |
%command.addr = alloca %struct.CArchiveCommand*, align 8 | |
%commandStringUpper = alloca %class.CStringBase, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
%postString = alloca %class.CStringBase, align 8 | |
%commandIndex = alloca i32, align 4 | |
%cleanup.dest.slot = alloca i32, align 4 | |
store %class.CStringBase* %commandString, %class.CStringBase** %commandString.addr, align 8, !tbaa !3 | |
store %struct.CArchiveCommand* %command, %struct.CArchiveCommand** %command.addr, align 8, !tbaa !3 | |
%0 = bitcast %class.CStringBase* %commandStringUpper to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %0) #3 | |
%1 = load %class.CStringBase*, %class.CStringBase** %commandString.addr, align 8, !tbaa !3 | |
call void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %commandStringUpper, %class.CStringBase* nonnull align 8 dereferenceable(16) %1) | |
invoke void @_ZN11CStringBaseIwE9MakeUpperEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %commandStringUpper) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%2 = bitcast %class.CStringBase* %postString to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %2) #3 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) | |
to label %invoke.cont2 unwind label %lpad1 | |
invoke.cont2: ; preds = %invoke.cont | |
%3 = bitcast i32* %commandIndex to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %3) #3 | |
%call = invoke i32 @_ZN18NCommandLineParser12ParseCommandEiPKNS_12CCommandFormERK11CStringBaseIwERS4_(i32 9, %"struct.NCommandLineParser::CCommandForm"* getelementptr inbounds ([9 x %"struct.NCommandLineParser::CCommandForm"], [9 x %"struct.NCommandLineParser::CCommandForm"]* @_ZL14g_CommandForms, i64 0, i64 0), %class.CStringBase* nonnull align 8 dereferenceable(16) %commandStringUpper, %class.CStringBase* nonnull align 8 dereferenceable(16) %postString) | |
to label %invoke.cont4 unwind label %lpad3 | |
invoke.cont4: ; preds = %invoke.cont2 | |
store i32 %call, i32* %commandIndex, align 4, !tbaa !15 | |
%4 = load i32, i32* %commandIndex, align 4, !tbaa !15 | |
%cmp = icmp slt i32 %4, 0 | |
br i1 %cmp, label %if.then, label %if.end | |
if.then: ; preds = %invoke.cont4 | |
store i1 false, i1* %retval, align 1 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
lpad: ; preds = %entry | |
%5 = landingpad { i8*, i32 } | |
cleanup | |
%6 = extractvalue { i8*, i32 } %5, 0 | |
store i8* %6, i8** %exn.slot, align 8 | |
%7 = extractvalue { i8*, i32 } %5, 1 | |
store i32 %7, i32* %ehselector.slot, align 4 | |
br label %ehcleanup8 | |
lpad1: ; preds = %invoke.cont | |
%8 = landingpad { i8*, i32 } | |
cleanup | |
%9 = extractvalue { i8*, i32 } %8, 0 | |
store i8* %9, i8** %exn.slot, align 8 | |
%10 = extractvalue { i8*, i32 } %8, 1 | |
store i32 %10, i32* %ehselector.slot, align 4 | |
br label %ehcleanup | |
lpad3: ; preds = %invoke.cont2 | |
%11 = landingpad { i8*, i32 } | |
cleanup | |
%12 = extractvalue { i8*, i32 } %11, 0 | |
store i8* %12, i8** %exn.slot, align 8 | |
%13 = extractvalue { i8*, i32 } %11, 1 | |
store i32 %13, i32* %ehselector.slot, align 4 | |
%14 = bitcast i32* %commandIndex to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %14) #3 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) #3 | |
br label %ehcleanup | |
if.end: ; preds = %invoke.cont4 | |
%15 = load i32, i32* %commandIndex, align 4, !tbaa !15 | |
%16 = load %struct.CArchiveCommand*, %struct.CArchiveCommand** %command.addr, align 8, !tbaa !3 | |
%CommandType = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %16, i32 0, i32 0 | |
store i32 %15, i32* %CommandType, align 4, !tbaa !7 | |
store i1 true, i1* %retval, align 1 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
cleanup: ; preds = %if.end, %if.then | |
%17 = bitcast i32* %commandIndex to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %17) #3 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) #3 | |
%18 = bitcast %class.CStringBase* %postString to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %18) #3 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %commandStringUpper) #3 | |
%19 = bitcast %class.CStringBase* %commandStringUpper to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %19) #3 | |
%20 = load i1, i1* %retval, align 1 | |
ret i1 %20 | |
ehcleanup: ; preds = %lpad3, %lpad1 | |
%21 = bitcast %class.CStringBase* %postString to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %21) #3 | |
br label %ehcleanup8 | |
ehcleanup8: ; preds = %ehcleanup, %lpad | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %commandStringUpper) #3 | |
%22 = bitcast %class.CStringBase* %commandStringUpper to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %22) #3 | |
br label %eh.resume | |
eh.resume: ; preds = %ehcleanup8 | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val11 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val11 | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this, i32 %index) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector*, align 8 | |
%index.addr = alloca i32, align 4 | |
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !3 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !15 | |
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%call = call nonnull align 8 dereferenceable(8) i8** @_ZNK13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1) | |
%2 = load i8*, i8** %call, align 8, !tbaa !3 | |
%3 = bitcast i8* %2 to %class.CStringBase* | |
ret %class.CStringBase* %3 | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define internal i32 @_ZL24GetRecursedTypeFromIndexi(i32 %index) #0 { | |
entry: | |
%retval = alloca i32, align 4 | |
%index.addr = alloca i32, align 4 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !15 | |
%0 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
switch i32 %0, label %sw.default [ | |
i32 0, label %sw.bb | |
i32 1, label %sw.bb1 | |
] | |
sw.bb: ; preds = %entry | |
store i32 1, i32* %retval, align 4 | |
br label %return | |
sw.bb1: ; preds = %entry | |
store i32 2, i32* %retval, align 4 | |
br label %return | |
sw.default: ; preds = %entry | |
store i32 0, i32* %retval, align 4 | |
br label %return | |
return: ; preds = %sw.default, %sw.bb1, %sw.bb | |
%1 = load i32, i32* %retval, align 4 | |
ret i32 %1 | |
} | |
; Function Attrs: mustprogress uwtable | |
define internal void @_ZL26AddSwitchWildCardsToCensorRN9NWildcard7CCensorERK13CObjectVectorI11CStringBaseIwEEbN13NRecursedType5EEnumEj(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %wildcardCensor, %class.CObjectVector* nonnull align 8 dereferenceable(32) %strings, i1 zeroext %include, i32 %commonRecursedType, i32 %codePage) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%wildcardCensor.addr = alloca %"class.NWildcard::CCensor"*, align 8 | |
%strings.addr = alloca %class.CObjectVector*, align 8 | |
%include.addr = alloca i8, align 1 | |
%commonRecursedType.addr = alloca i32, align 4 | |
%codePage.addr = alloca i32, align 4 | |
%i = alloca i32, align 4 | |
%name = alloca %class.CStringBase*, align 8 | |
%recursedType = alloca i32, align 4 | |
%pos = alloca i32, align 4 | |
%index = alloca i32, align 4 | |
%ref.tmp = alloca %class.CStringBase, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
%tail = alloca %class.CStringBase, align 8 | |
store %"class.NWildcard::CCensor"* %wildcardCensor, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3 | |
store %class.CObjectVector* %strings, %class.CObjectVector** %strings.addr, align 8, !tbaa !3 | |
%frombool = zext i1 %include to i8 | |
store i8 %frombool, i8* %include.addr, align 1, !tbaa !42 | |
store i32 %commonRecursedType, i32* %commonRecursedType.addr, align 4, !tbaa !43 | |
store i32 %codePage, i32* %codePage.addr, align 4, !tbaa !15 | |
%0 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3 | |
store i32 0, i32* %i, align 4, !tbaa !15 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %entry | |
%1 = load i32, i32* %i, align 4, !tbaa !15 | |
%2 = load %class.CObjectVector*, %class.CObjectVector** %strings.addr, align 8, !tbaa !3 | |
%3 = bitcast %class.CObjectVector* %2 to %class.CBaseRecordVector* | |
%call = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %3) | |
%cmp = icmp slt i32 %1, %call | |
br i1 %cmp, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
%4 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %4) #3 | |
br label %for.end | |
for.body: ; preds = %for.cond | |
%5 = bitcast %class.CStringBase** %name to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %5) #3 | |
%6 = load %class.CObjectVector*, %class.CObjectVector** %strings.addr, align 8, !tbaa !3 | |
%7 = load i32, i32* %i, align 4, !tbaa !15 | |
%call1 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %6, i32 %7) | |
store %class.CStringBase* %call1, %class.CStringBase** %name, align 8, !tbaa !3 | |
%8 = bitcast i32* %recursedType to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %8) #3 | |
%9 = bitcast i32* %pos to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %9) #3 | |
store i32 0, i32* %pos, align 4, !tbaa !15 | |
%10 = load %class.CStringBase*, %class.CStringBase** %name, align 8, !tbaa !3 | |
%call2 = call i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %10) | |
%cmp3 = icmp slt i32 %call2, 2 | |
br i1 %cmp3, label %if.then, label %if.end | |
if.then: ; preds = %for.body | |
call void @_ZL23ThrowUserErrorExceptionv() | |
br label %if.end | |
if.end: ; preds = %if.then, %for.body | |
%11 = load %class.CStringBase*, %class.CStringBase** %name, align 8, !tbaa !3 | |
%call4 = call i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %11) | |
%12 = load i32, i32* %pos, align 4, !tbaa !15 | |
%idxprom = sext i32 %12 to i64 | |
%arrayidx = getelementptr inbounds i32, i32* %call4, i64 %idxprom | |
%13 = load i32, i32* %arrayidx, align 4, !tbaa !57 | |
%call5 = call signext i32 @_Z11MyCharUpperw(i32 signext %13) | |
%cmp6 = icmp eq i32 %call5, 82 | |
br i1 %cmp6, label %if.then7, label %if.else | |
if.then7: ; preds = %if.end | |
%14 = load i32, i32* %pos, align 4, !tbaa !15 | |
%inc = add nsw i32 %14, 1 | |
store i32 %inc, i32* %pos, align 4, !tbaa !15 | |
%15 = bitcast i32* %index to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %15) #3 | |
%16 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %16) #3 | |
%17 = load i32*, i32** @_ZL20kRecursedPostCharSet, align 8, !tbaa !3 | |
call void @_ZN11CStringBaseIwEC2EPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp, i32* %17) | |
%18 = load %class.CStringBase*, %class.CStringBase** %name, align 8, !tbaa !3 | |
%call8 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %18) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %if.then7 | |
%19 = load i32, i32* %pos, align 4, !tbaa !15 | |
%idxprom9 = sext i32 %19 to i64 | |
%arrayidx10 = getelementptr inbounds i32, i32* %call8, i64 %idxprom9 | |
%20 = load i32, i32* %arrayidx10, align 4, !tbaa !57 | |
%call12 = invoke i32 @_ZNK11CStringBaseIwE4FindEw(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp, i32 signext %20) | |
to label %invoke.cont11 unwind label %lpad | |
invoke.cont11: ; preds = %invoke.cont | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3 | |
%21 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %21) #3 | |
store i32 %call12, i32* %index, align 4, !tbaa !15 | |
%22 = load i32, i32* %index, align 4, !tbaa !15 | |
%call13 = call i32 @_ZL24GetRecursedTypeFromIndexi(i32 %22) | |
store i32 %call13, i32* %recursedType, align 4, !tbaa !43 | |
%23 = load i32, i32* %index, align 4, !tbaa !15 | |
%cmp14 = icmp sge i32 %23, 0 | |
br i1 %cmp14, label %if.then15, label %if.end17 | |
if.then15: ; preds = %invoke.cont11 | |
%24 = load i32, i32* %pos, align 4, !tbaa !15 | |
%inc16 = add nsw i32 %24, 1 | |
store i32 %inc16, i32* %pos, align 4, !tbaa !15 | |
br label %if.end17 | |
lpad: ; preds = %invoke.cont, %if.then7 | |
%25 = landingpad { i8*, i32 } | |
cleanup | |
%26 = extractvalue { i8*, i32 } %25, 0 | |
store i8* %26, i8** %exn.slot, align 8 | |
%27 = extractvalue { i8*, i32 } %25, 1 | |
store i32 %27, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3 | |
%28 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %28) #3 | |
%29 = bitcast i32* %index to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %29) #3 | |
br label %ehcleanup | |
if.end17: ; preds = %if.then15, %invoke.cont11 | |
%30 = bitcast i32* %index to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %30) #3 | |
br label %if.end18 | |
if.else: ; preds = %if.end | |
%31 = load i32, i32* %commonRecursedType.addr, align 4, !tbaa !43 | |
store i32 %31, i32* %recursedType, align 4, !tbaa !43 | |
br label %if.end18 | |
if.end18: ; preds = %if.else, %if.end17 | |
%32 = load %class.CStringBase*, %class.CStringBase** %name, align 8, !tbaa !3 | |
%call19 = call i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %32) | |
%33 = load i32, i32* %pos, align 4, !tbaa !15 | |
%add = add nsw i32 %33, 2 | |
%cmp20 = icmp slt i32 %call19, %add | |
br i1 %cmp20, label %if.then21, label %if.end22 | |
if.then21: ; preds = %if.end18 | |
call void @_ZL23ThrowUserErrorExceptionv() | |
br label %if.end22 | |
if.end22: ; preds = %if.then21, %if.end18 | |
%34 = bitcast %class.CStringBase* %tail to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %34) #3 | |
%35 = load %class.CStringBase*, %class.CStringBase** %name, align 8, !tbaa !3 | |
%36 = load i32, i32* %pos, align 4, !tbaa !15 | |
%add23 = add nsw i32 %36, 1 | |
call void @_ZNK11CStringBaseIwE3MidEi(%class.CStringBase* sret(%class.CStringBase) align 8 %tail, %class.CStringBase* nonnull align 8 dereferenceable(16) %35, i32 %add23) | |
%37 = load %class.CStringBase*, %class.CStringBase** %name, align 8, !tbaa !3 | |
%call26 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %37) | |
to label %invoke.cont25 unwind label %lpad24 | |
invoke.cont25: ; preds = %if.end22 | |
%38 = load i32, i32* %pos, align 4, !tbaa !15 | |
%idxprom27 = sext i32 %38 to i64 | |
%arrayidx28 = getelementptr inbounds i32, i32* %call26, i64 %idxprom27 | |
%39 = load i32, i32* %arrayidx28, align 4, !tbaa !57 | |
%cmp29 = icmp eq i32 %39, 33 | |
br i1 %cmp29, label %if.then30, label %if.else32 | |
if.then30: ; preds = %invoke.cont25 | |
%40 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3 | |
%41 = load i8, i8* %include.addr, align 1, !tbaa !42, !range !33 | |
%tobool = trunc i8 %41 to i1 | |
%42 = load i32, i32* %recursedType, align 4, !tbaa !43 | |
invoke void @_ZL15AddNameToCensorRN9NWildcard7CCensorERK11CStringBaseIwEbN13NRecursedType5EEnumE(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %40, %class.CStringBase* nonnull align 8 dereferenceable(16) %tail, i1 zeroext %tobool, i32 %42) | |
to label %invoke.cont31 unwind label %lpad24 | |
invoke.cont31: ; preds = %if.then30 | |
br label %if.end46 | |
lpad24: ; preds = %if.else43, %invoke.cont39, %if.then38, %if.else32, %if.then30, %if.end22 | |
%43 = landingpad { i8*, i32 } | |
cleanup | |
%44 = extractvalue { i8*, i32 } %43, 0 | |
store i8* %44, i8** %exn.slot, align 8 | |
%45 = extractvalue { i8*, i32 } %43, 1 | |
store i32 %45, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %tail) #3 | |
%46 = bitcast %class.CStringBase* %tail to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %46) #3 | |
br label %ehcleanup | |
if.else32: ; preds = %invoke.cont25 | |
%47 = load %class.CStringBase*, %class.CStringBase** %name, align 8, !tbaa !3 | |
%call34 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %47) | |
to label %invoke.cont33 unwind label %lpad24 | |
invoke.cont33: ; preds = %if.else32 | |
%48 = load i32, i32* %pos, align 4, !tbaa !15 | |
%idxprom35 = sext i32 %48 to i64 | |
%arrayidx36 = getelementptr inbounds i32, i32* %call34, i64 %idxprom35 | |
%49 = load i32, i32* %arrayidx36, align 4, !tbaa !57 | |
%cmp37 = icmp eq i32 %49, 64 | |
br i1 %cmp37, label %if.then38, label %if.else43 | |
if.then38: ; preds = %invoke.cont33 | |
%50 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3 | |
%call40 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %tail) | |
to label %invoke.cont39 unwind label %lpad24 | |
invoke.cont39: ; preds = %if.then38 | |
%51 = load i8, i8* %include.addr, align 1, !tbaa !42, !range !33 | |
%tobool41 = trunc i8 %51 to i1 | |
%52 = load i32, i32* %recursedType, align 4, !tbaa !43 | |
%53 = load i32, i32* %codePage.addr, align 4, !tbaa !15 | |
invoke void @_ZL23AddToCensorFromListFileRN9NWildcard7CCensorEPKwbN13NRecursedType5EEnumEj(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %50, i32* %call40, i1 zeroext %tobool41, i32 %52, i32 %53) | |
to label %invoke.cont42 unwind label %lpad24 | |
invoke.cont42: ; preds = %invoke.cont39 | |
br label %if.end45 | |
if.else43: ; preds = %invoke.cont33 | |
invoke void @_ZL23ThrowUserErrorExceptionv() | |
to label %invoke.cont44 unwind label %lpad24 | |
invoke.cont44: ; preds = %if.else43 | |
br label %if.end45 | |
if.end45: ; preds = %invoke.cont44, %invoke.cont42 | |
br label %if.end46 | |
if.end46: ; preds = %if.end45, %invoke.cont31 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %tail) #3 | |
%54 = bitcast %class.CStringBase* %tail to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %54) #3 | |
%55 = bitcast i32* %pos to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %55) #3 | |
%56 = bitcast i32* %recursedType to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %56) #3 | |
%57 = bitcast %class.CStringBase** %name to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %57) #3 | |
br label %for.inc | |
for.inc: ; preds = %if.end46 | |
%58 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc49 = add nsw i32 %58, 1 | |
store i32 %inc49, i32* %i, align 4, !tbaa !15 | |
br label %for.cond, !llvm.loop !69 | |
ehcleanup: ; preds = %lpad24, %lpad | |
%59 = bitcast i32* %pos to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %59) #3 | |
%60 = bitcast i32* %recursedType to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %60) #3 | |
%61 = bitcast %class.CStringBase** %name to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %61) #3 | |
%62 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %62) #3 | |
br label %eh.resume | |
for.end: ; preds = %for.cond.cleanup | |
ret void | |
eh.resume: ; preds = %ehcleanup | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val51 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val51 | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, %class.CStringBase* nonnull align 8 dereferenceable(16) %s) #5 comdat align 2 { | |
entry: | |
%retval = alloca %class.CStringBase*, align 8 | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%s.addr = alloca %class.CStringBase*, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
store %class.CStringBase* %s, %class.CStringBase** %s.addr, align 8, !tbaa !3 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%0 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3 | |
%cmp = icmp eq %class.CStringBase* %0, %this1 | |
br i1 %cmp, label %if.then, label %if.end | |
if.then: ; preds = %entry | |
store %class.CStringBase* %this1, %class.CStringBase** %retval, align 8 | |
br label %return | |
if.end: ; preds = %entry | |
call void @_ZN11CStringBaseIwE5EmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1) | |
%1 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3 | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %1, i32 0, i32 1 | |
%2 = load i32, i32* %_length, align 8, !tbaa !13 | |
call void @_ZN11CStringBaseIwE11SetCapacityEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 %2) | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%3 = load i32*, i32** %_chars, align 8, !tbaa !10 | |
%4 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3 | |
%_chars2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %4, i32 0, i32 0 | |
%5 = load i32*, i32** %_chars2, align 8, !tbaa !10 | |
%call = call i32* @_Z12MyStringCopyIwEPT_S1_PKS0_(i32* %3, i32* %5) | |
%6 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3 | |
%_length3 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %6, i32 0, i32 1 | |
%7 = load i32, i32* %_length3, align 8, !tbaa !13 | |
%_length4 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
store i32 %7, i32* %_length4, align 8, !tbaa !13 | |
store %class.CStringBase* %this1, %class.CStringBase** %retval, align 8 | |
br label %return | |
return: ; preds = %if.end, %if.then | |
%8 = load %class.CStringBase*, %class.CStringBase** %retval, align 8 | |
ret %class.CStringBase* %8 | |
} | |
; Function Attrs: mustprogress uwtable | |
define internal void @_ZL33AddToCensorFromNonSwitchesStringsiRN9NWildcard7CCensorERK13CObjectVectorI11CStringBaseIwEEN13NRecursedType5EEnumEbj(i32 %startIndex, %"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %wildcardCensor, %class.CObjectVector* nonnull align 8 dereferenceable(32) %nonSwitchStrings, i32 %type, i1 zeroext %thereAreSwitchIncludes, i32 %codePage) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%startIndex.addr = alloca i32, align 4 | |
%wildcardCensor.addr = alloca %"class.NWildcard::CCensor"*, align 8 | |
%nonSwitchStrings.addr = alloca %class.CObjectVector*, align 8 | |
%type.addr = alloca i32, align 4 | |
%thereAreSwitchIncludes.addr = alloca i8, align 1 | |
%codePage.addr = alloca i32, align 4 | |
%ref.tmp = alloca %class.CStringBase, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
%i = alloca i32, align 4 | |
%s = alloca %class.CStringBase*, align 8 | |
%ref.tmp10 = alloca %class.CStringBase, align 8 | |
store i32 %startIndex, i32* %startIndex.addr, align 4, !tbaa !15 | |
store %"class.NWildcard::CCensor"* %wildcardCensor, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3 | |
store %class.CObjectVector* %nonSwitchStrings, %class.CObjectVector** %nonSwitchStrings.addr, align 8, !tbaa !3 | |
store i32 %type, i32* %type.addr, align 4, !tbaa !43 | |
%frombool = zext i1 %thereAreSwitchIncludes to i8 | |
store i8 %frombool, i8* %thereAreSwitchIncludes.addr, align 1, !tbaa !42 | |
store i32 %codePage, i32* %codePage.addr, align 4, !tbaa !15 | |
%0 = load %class.CObjectVector*, %class.CObjectVector** %nonSwitchStrings.addr, align 8, !tbaa !3 | |
%1 = bitcast %class.CObjectVector* %0 to %class.CBaseRecordVector* | |
%call = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1) | |
%2 = load i32, i32* %startIndex.addr, align 4, !tbaa !15 | |
%cmp = icmp eq i32 %call, %2 | |
br i1 %cmp, label %land.lhs.true, label %if.end | |
land.lhs.true: ; preds = %entry | |
%3 = load i8, i8* %thereAreSwitchIncludes.addr, align 1, !tbaa !42, !range !33 | |
%tobool = trunc i8 %3 to i1 | |
br i1 %tobool, label %if.end, label %if.then | |
if.then: ; preds = %land.lhs.true | |
%4 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3 | |
%5 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %5) #3 | |
%6 = load i32*, i32** @_ZL18kUniversalWildcard, align 8, !tbaa !3 | |
call void @_ZN11CStringBaseIwEC2EPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp, i32* %6) | |
%7 = load i32, i32* %type.addr, align 4, !tbaa !43 | |
invoke void @_ZL15AddNameToCensorRN9NWildcard7CCensorERK11CStringBaseIwEbN13NRecursedType5EEnumE(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %4, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp, i1 zeroext true, i32 %7) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %if.then | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3 | |
%8 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %8) #3 | |
br label %if.end | |
lpad: ; preds = %if.then | |
%9 = landingpad { i8*, i32 } | |
cleanup | |
%10 = extractvalue { i8*, i32 } %9, 0 | |
store i8* %10, i8** %exn.slot, align 8 | |
%11 = extractvalue { i8*, i32 } %9, 1 | |
store i32 %11, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3 | |
%12 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %12) #3 | |
br label %eh.resume | |
if.end: ; preds = %invoke.cont, %land.lhs.true, %entry | |
%13 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %13) #3 | |
%14 = load i32, i32* %startIndex.addr, align 4, !tbaa !15 | |
store i32 %14, i32* %i, align 4, !tbaa !15 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %if.end | |
%15 = load i32, i32* %i, align 4, !tbaa !15 | |
%16 = load %class.CObjectVector*, %class.CObjectVector** %nonSwitchStrings.addr, align 8, !tbaa !3 | |
%17 = bitcast %class.CObjectVector* %16 to %class.CBaseRecordVector* | |
%call1 = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %17) | |
%cmp2 = icmp slt i32 %15, %call1 | |
br i1 %cmp2, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
%18 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %18) #3 | |
br label %for.end | |
for.body: ; preds = %for.cond | |
%19 = bitcast %class.CStringBase** %s to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %19) #3 | |
%20 = load %class.CObjectVector*, %class.CObjectVector** %nonSwitchStrings.addr, align 8, !tbaa !3 | |
%21 = load i32, i32* %i, align 4, !tbaa !15 | |
%call3 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %20, i32 %21) | |
store %class.CStringBase* %call3, %class.CStringBase** %s, align 8, !tbaa !3 | |
%22 = load %class.CStringBase*, %class.CStringBase** %s, align 8, !tbaa !3 | |
%call4 = call zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %22) | |
br i1 %call4, label %if.then5, label %if.end6 | |
if.then5: ; preds = %for.body | |
%exception = call i8* @__cxa_allocate_exception(i64 8) #3 | |
%23 = bitcast i8* %exception to i8** | |
%24 = load i8*, i8** @_ZL14kEmptyFilePath, align 8, !tbaa !3 | |
store i8* %24, i8** %23, align 16, !tbaa !3 | |
call void @__cxa_throw(i8* %exception, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18 | |
unreachable | |
if.end6: ; preds = %for.body | |
%25 = load %class.CStringBase*, %class.CStringBase** %s, align 8, !tbaa !3 | |
%call7 = call i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %25) | |
%arrayidx = getelementptr inbounds i32, i32* %call7, i64 0 | |
%26 = load i32, i32* %arrayidx, align 4, !tbaa !57 | |
%cmp8 = icmp eq i32 %26, 64 | |
br i1 %cmp8, label %if.then9, label %if.else | |
if.then9: ; preds = %if.end6 | |
%27 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3 | |
%28 = bitcast %class.CStringBase* %ref.tmp10 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %28) #3 | |
%29 = load %class.CStringBase*, %class.CStringBase** %s, align 8, !tbaa !3 | |
call void @_ZNK11CStringBaseIwE3MidEi(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp10, %class.CStringBase* nonnull align 8 dereferenceable(16) %29, i32 1) | |
%call13 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp10) | |
to label %invoke.cont12 unwind label %lpad11 | |
invoke.cont12: ; preds = %if.then9 | |
%30 = load i32, i32* %type.addr, align 4, !tbaa !43 | |
%31 = load i32, i32* %codePage.addr, align 4, !tbaa !15 | |
invoke void @_ZL23AddToCensorFromListFileRN9NWildcard7CCensorEPKwbN13NRecursedType5EEnumEj(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %27, i32* %call13, i1 zeroext true, i32 %30, i32 %31) | |
to label %invoke.cont14 unwind label %lpad11 | |
invoke.cont14: ; preds = %invoke.cont12 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp10) #3 | |
%32 = bitcast %class.CStringBase* %ref.tmp10 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %32) #3 | |
br label %if.end15 | |
lpad11: ; preds = %invoke.cont12, %if.then9 | |
%33 = landingpad { i8*, i32 } | |
cleanup | |
%34 = extractvalue { i8*, i32 } %33, 0 | |
store i8* %34, i8** %exn.slot, align 8 | |
%35 = extractvalue { i8*, i32 } %33, 1 | |
store i32 %35, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp10) #3 | |
%36 = bitcast %class.CStringBase* %ref.tmp10 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %36) #3 | |
%37 = bitcast %class.CStringBase** %s to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %37) #3 | |
%38 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %38) #3 | |
br label %eh.resume | |
if.else: ; preds = %if.end6 | |
%39 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3 | |
%40 = load %class.CStringBase*, %class.CStringBase** %s, align 8, !tbaa !3 | |
%41 = load i32, i32* %type.addr, align 4, !tbaa !43 | |
call void @_ZL15AddNameToCensorRN9NWildcard7CCensorERK11CStringBaseIwEbN13NRecursedType5EEnumE(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %39, %class.CStringBase* nonnull align 8 dereferenceable(16) %40, i1 zeroext true, i32 %41) | |
br label %if.end15 | |
if.end15: ; preds = %if.else, %invoke.cont14 | |
%42 = bitcast %class.CStringBase** %s to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %42) #3 | |
br label %for.inc | |
for.inc: ; preds = %if.end15 | |
%43 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc = add nsw i32 %43, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !15 | |
br label %for.cond, !llvm.loop !70 | |
for.end: ; preds = %for.cond.cleanup | |
ret void | |
eh.resume: ; preds = %lpad11, %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val16 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val16 | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local zeroext i1 @_ZNK9NWildcard7CCensor14AllAreRelativeEv(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %this) #5 comdat align 2 { | |
entry: | |
%this.addr = alloca %"class.NWildcard::CCensor"*, align 8 | |
store %"class.NWildcard::CCensor"* %this, %"class.NWildcard::CCensor"** %this.addr, align 8, !tbaa !3 | |
%this1 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %this.addr, align 8 | |
%Pairs = getelementptr inbounds %"class.NWildcard::CCensor", %"class.NWildcard::CCensor"* %this1, i32 0, i32 0 | |
%0 = bitcast %class.CObjectVector.0* %Pairs to %class.CBaseRecordVector* | |
%call = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0) | |
%cmp = icmp eq i32 %call, 1 | |
br i1 %cmp, label %land.rhs, label %land.end | |
land.rhs: ; preds = %entry | |
%Pairs2 = getelementptr inbounds %"class.NWildcard::CCensor", %"class.NWildcard::CCensor"* %this1, i32 0, i32 0 | |
%call3 = call nonnull align 8 dereferenceable(136) %"struct.NWildcard::CPair"* @_ZNK13CObjectVectorIN9NWildcard5CPairEE5FrontEv(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %Pairs2) | |
%Prefix = getelementptr inbounds %"struct.NWildcard::CPair", %"struct.NWildcard::CPair"* %call3, i32 0, i32 0 | |
%call4 = call zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix) | |
br label %land.end | |
land.end: ; preds = %land.rhs, %entry | |
%1 = phi i1 [ false, %entry ], [ %call4, %land.rhs ] | |
ret i1 %1 | |
} | |
; Function Attrs: mustprogress uwtable | |
define internal void @_ZL14ThrowExceptionPKc(i8* %errorMessage) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%errorMessage.addr = alloca i8*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store i8* %errorMessage, i8** %errorMessage.addr, align 8, !tbaa !3 | |
%exception = call i8* @__cxa_allocate_exception(i64 16) #3 | |
%0 = bitcast i8* %exception to %struct.CArchiveCommandLineException* | |
%1 = load i8*, i8** %errorMessage.addr, align 8, !tbaa !3 | |
invoke void @_ZN28CArchiveCommandLineExceptionC2EPKc(%struct.CArchiveCommandLineException* nonnull align 8 dereferenceable(16) %0, i8* %1) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
call void @__cxa_throw(i8* %exception, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI28CArchiveCommandLineException to i8*), i8* bitcast (void (%class.CStringBase.9*)* @_ZN11CStringBaseIcED2Ev to i8*)) #18 | |
unreachable | |
lpad: ; preds = %entry | |
%2 = landingpad { i8*, i32 } | |
cleanup | |
%3 = extractvalue { i8*, i32 } %2, 0 | |
store i8* %3, i8** %exn.slot, align 8 | |
%4 = extractvalue { i8*, i32 } %2, 1 | |
store i32 %4, i32* %ehselector.slot, align 4 | |
call void @__cxa_free_exception(i8* %exception) #3 | |
br label %eh.resume | |
eh.resume: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val1 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val1 | |
} | |
; Function Attrs: inlinehint uwtable | |
define linkonce_odr dso_local void @_ZN9NWildcard7CCensorC2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %this) unnamed_addr #9 comdat align 2 { | |
entry: | |
%this.addr = alloca %"class.NWildcard::CCensor"*, align 8 | |
store %"class.NWildcard::CCensor"* %this, %"class.NWildcard::CCensor"** %this.addr, align 8, !tbaa !3 | |
%this1 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %this.addr, align 8 | |
%Pairs = getelementptr inbounds %"class.NWildcard::CCensor", %"class.NWildcard::CCensor"* %this1, i32 0, i32 0 | |
call void @_ZN13CObjectVectorIN9NWildcard5CPairEEC2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %Pairs) | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local i32 @_ZNK11CStringBaseIwE4FindERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, %class.CStringBase* nonnull align 8 dereferenceable(16) %s) #5 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%s.addr = alloca %class.CStringBase*, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
store %class.CStringBase* %s, %class.CStringBase** %s.addr, align 8, !tbaa !3 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%0 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3 | |
%call = call i32 @_ZNK11CStringBaseIwE4FindERKS0_i(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, %class.CStringBase* nonnull align 8 dereferenceable(16) %0, i32 0) | |
ret i32 %call | |
} | |
; Function Attrs: mustprogress uwtable | |
define internal void @_ZL15AddNameToCensorRN9NWildcard7CCensorERK11CStringBaseIwEbN13NRecursedType5EEnumE(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %wildcardCensor, %class.CStringBase* nonnull align 8 dereferenceable(16) %name, i1 zeroext %include, i32 %type) #5 { | |
entry: | |
%wildcardCensor.addr = alloca %"class.NWildcard::CCensor"*, align 8 | |
%name.addr = alloca %class.CStringBase*, align 8 | |
%include.addr = alloca i8, align 1 | |
%type.addr = alloca i32, align 4 | |
%recursed = alloca i8, align 1 | |
store %"class.NWildcard::CCensor"* %wildcardCensor, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3 | |
store %class.CStringBase* %name, %class.CStringBase** %name.addr, align 8, !tbaa !3 | |
%frombool = zext i1 %include to i8 | |
store i8 %frombool, i8* %include.addr, align 1, !tbaa !42 | |
store i32 %type, i32* %type.addr, align 4, !tbaa !43 | |
call void @llvm.lifetime.start.p0i8(i64 1, i8* %recursed) #3 | |
store i8 0, i8* %recursed, align 1, !tbaa !42 | |
%0 = load i32, i32* %type.addr, align 4, !tbaa !43 | |
switch i32 %0, label %sw.epilog [ | |
i32 1, label %sw.bb | |
i32 0, label %sw.bb2 | |
] | |
sw.bb: ; preds = %entry | |
%1 = load %class.CStringBase*, %class.CStringBase** %name.addr, align 8, !tbaa !3 | |
%call = call zeroext i1 @_Z23DoesNameContainWildCardRK11CStringBaseIwE(%class.CStringBase* nonnull align 8 dereferenceable(16) %1) | |
%frombool1 = zext i1 %call to i8 | |
store i8 %frombool1, i8* %recursed, align 1, !tbaa !42 | |
br label %sw.epilog | |
sw.bb2: ; preds = %entry | |
store i8 1, i8* %recursed, align 1, !tbaa !42 | |
br label %sw.epilog | |
sw.epilog: ; preds = %entry, %sw.bb2, %sw.bb | |
%2 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3 | |
%3 = load i8, i8* %include.addr, align 1, !tbaa !42, !range !33 | |
%tobool = trunc i8 %3 to i1 | |
%4 = load %class.CStringBase*, %class.CStringBase** %name.addr, align 8, !tbaa !3 | |
%5 = load i8, i8* %recursed, align 1, !tbaa !42, !range !33 | |
%tobool3 = trunc i8 %5 to i1 | |
call void @_ZN9NWildcard7CCensor7AddItemEbRK11CStringBaseIwEb(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %2, i1 zeroext %tobool, %class.CStringBase* nonnull align 8 dereferenceable(16) %4, i1 zeroext %tobool3) | |
call void @llvm.lifetime.end.p0i8(i64 1, i8* %recursed) #3 | |
ret void | |
} | |
declare dso_local void @_ZN9NWildcard7CCensor13ExtendExcludeEv(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32)) #4 | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, %class.CStringBase* nonnull align 8 dereferenceable(16) %s) unnamed_addr #1 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%s.addr = alloca %class.CStringBase*, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
store %class.CStringBase* %s, %class.CStringBase** %s.addr, align 8, !tbaa !3 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
store i32* null, i32** %_chars, align 8, !tbaa !10 | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
store i32 0, i32* %_length, align 8, !tbaa !13 | |
%_capacity = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 2 | |
store i32 0, i32* %_capacity, align 4, !tbaa !14 | |
%0 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3 | |
%_length2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %0, i32 0, i32 1 | |
%1 = load i32, i32* %_length2, align 8, !tbaa !13 | |
call void @_ZN11CStringBaseIwE11SetCapacityEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 %1) | |
%_chars3 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%2 = load i32*, i32** %_chars3, align 8, !tbaa !10 | |
%3 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3 | |
%_chars4 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %3, i32 0, i32 0 | |
%4 = load i32*, i32** %_chars4, align 8, !tbaa !10 | |
%call = call i32* @_Z12MyStringCopyIwEPT_S1_PKS0_(i32* %2, i32* %4) | |
%5 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3 | |
%_length5 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %5, i32 0, i32 1 | |
%6 = load i32, i32* %_length5, align 8, !tbaa !13 | |
%_length6 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
store i32 %6, i32* %_length6, align 8, !tbaa !13 | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local i32 @_ZN13CObjectVectorI11CStringBaseIwEE3AddERKS1_(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this, %class.CStringBase* nonnull align 8 dereferenceable(16) %item) #5 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CObjectVector*, align 8 | |
%item.addr = alloca %class.CStringBase*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !3 | |
store %class.CStringBase* %item, %class.CStringBase** %item.addr, align 8, !tbaa !3 | |
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector* | |
%call = call noalias nonnull i8* @_Znwm(i64 16) #19 | |
%1 = bitcast i8* %call to %class.CStringBase* | |
%2 = load %class.CStringBase*, %class.CStringBase** %item.addr, align 8, !tbaa !3 | |
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %1, %class.CStringBase* nonnull align 8 dereferenceable(16) %2) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%3 = bitcast %class.CStringBase* %1 to i8* | |
%call2 = call i32 @_ZN13CRecordVectorIPvE3AddES0_(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i8* %3) | |
ret i32 %call2 | |
lpad: ; preds = %entry | |
%4 = landingpad { i8*, i32 } | |
cleanup | |
%5 = extractvalue { i8*, i32 } %4, 0 | |
store i8* %5, i8** %exn.slot, align 8 | |
%6 = extractvalue { i8*, i32 } %4, 1 | |
store i32 %6, i32* %ehselector.slot, align 4 | |
call void @_ZdlPv(i8* %call) #16 | |
br label %eh.resume | |
eh.resume: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val3 | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this) unnamed_addr #1 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector*, align 8 | |
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector* | |
call void @_ZN13CRecordVectorIPvEC2Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0) | |
%1 = bitcast %class.CObjectVector* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorI11CStringBaseIwEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !71 | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define linkonce_odr dso_local void @_ZN9CDirItemsC2Ev(%class.CDirItems* nonnull align 8 dereferenceable(128) %this) unnamed_addr #9 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CDirItems*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %class.CDirItems* %this, %class.CDirItems** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CDirItems*, %class.CDirItems** %this.addr, align 8 | |
%Prefixes = getelementptr inbounds %class.CDirItems, %class.CDirItems* %this1, i32 0, i32 0 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %Prefixes) | |
%PhyParents = getelementptr inbounds %class.CDirItems, %class.CDirItems* %this1, i32 0, i32 1 | |
invoke void @_ZN13CRecordVectorIiEC2Ev(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %PhyParents) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%LogParents = getelementptr inbounds %class.CDirItems, %class.CDirItems* %this1, i32 0, i32 2 | |
invoke void @_ZN13CRecordVectorIiEC2Ev(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %LogParents) | |
to label %invoke.cont3 unwind label %lpad2 | |
invoke.cont3: ; preds = %invoke.cont | |
%Items = getelementptr inbounds %class.CDirItems, %class.CDirItems* %this1, i32 0, i32 3 | |
invoke void @_ZN13CObjectVectorI8CDirItemEC2Ev(%class.CObjectVector.5* nonnull align 8 dereferenceable(32) %Items) | |
to label %invoke.cont5 unwind label %lpad4 | |
invoke.cont5: ; preds = %invoke.cont3 | |
ret void | |
lpad: ; preds = %entry | |
%0 = landingpad { i8*, i32 } | |
cleanup | |
%1 = extractvalue { i8*, i32 } %0, 0 | |
store i8* %1, i8** %exn.slot, align 8 | |
%2 = extractvalue { i8*, i32 } %0, 1 | |
store i32 %2, i32* %ehselector.slot, align 4 | |
br label %ehcleanup6 | |
lpad2: ; preds = %invoke.cont | |
%3 = landingpad { i8*, i32 } | |
cleanup | |
%4 = extractvalue { i8*, i32 } %3, 0 | |
store i8* %4, i8** %exn.slot, align 8 | |
%5 = extractvalue { i8*, i32 } %3, 1 | |
store i32 %5, i32* %ehselector.slot, align 4 | |
br label %ehcleanup | |
lpad4: ; preds = %invoke.cont3 | |
%6 = landingpad { i8*, i32 } | |
cleanup | |
%7 = extractvalue { i8*, i32 } %6, 0 | |
store i8* %7, i8** %exn.slot, align 8 | |
%8 = extractvalue { i8*, i32 } %6, 1 | |
store i32 %8, i32* %ehselector.slot, align 4 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.4*)*)(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %LogParents) #3 | |
br label %ehcleanup | |
ehcleanup: ; preds = %lpad4, %lpad2 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.4*)*)(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %PhyParents) #3 | |
br label %ehcleanup6 | |
ehcleanup6: ; preds = %ehcleanup, %lpad | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %Prefixes) #3 | |
br label %eh.resume | |
eh.resume: ; preds = %ehcleanup6 | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val7 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val7 | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CRecordVectorIjEC2Ev(%class.CRecordVector.6* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CRecordVector.6*, align 8 | |
store %class.CRecordVector.6* %this, %class.CRecordVector.6** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CRecordVector.6*, %class.CRecordVector.6** %this.addr, align 8 | |
%0 = bitcast %class.CRecordVector.6* %this1 to %class.CBaseRecordVector* | |
call void @_ZN17CBaseRecordVectorC2Em(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i64 4) | |
%1 = bitcast %class.CRecordVector.6* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CRecordVectorIjE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !71 | |
ret void | |
} | |
declare dso_local i32 @_Z14EnumerateItemsRKN9NWildcard7CCensorER9CDirItemsP20IEnumDirItemCallbackR13CObjectVectorI11CStringBaseIwEER13CRecordVectorIjE(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32), %class.CDirItems* nonnull align 8 dereferenceable(128), %struct.IEnumDirItemCallback*, %class.CObjectVector* nonnull align 8 dereferenceable(32), %class.CRecordVector.6* nonnull align 8 dereferenceable(32)) #4 | |
declare dso_local i8* @__cxa_allocate_exception(i64) | |
declare dso_local void @__cxa_throw(i8*, i8*, i8*) | |
; Function Attrs: nounwind | |
declare dso_local void @_ZN17CBaseRecordVectorD2Ev(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32)) unnamed_addr #7 | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CObjectVector*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorI11CStringBaseIwEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !71 | |
%1 = bitcast %class.CObjectVector* %this1 to %class.CBaseRecordVector* | |
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%2 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #3 | |
ret void | |
lpad: ; preds = %entry | |
%3 = landingpad { i8*, i32 } | |
catch i8* null | |
%4 = extractvalue { i8*, i32 } %3, 0 | |
store i8* %4, i8** %exn.slot, align 8 | |
%5 = extractvalue { i8*, i32 } %3, 1 | |
store i32 %5, i32* %ehselector.slot, align 4 | |
%6 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #3 | |
br label %terminate.handler | |
terminate.handler: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
call void @__clang_call_terminate(i8* %exn) #17 | |
unreachable | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(60) %struct.CDirItem* @_ZN13CObjectVectorI8CDirItemEixEi(%class.CObjectVector.5* nonnull align 8 dereferenceable(32) %this, i32 %index) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.5*, align 8 | |
%index.addr = alloca i32, align 4 | |
store %class.CObjectVector.5* %this, %class.CObjectVector.5** %this.addr, align 8, !tbaa !3 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !15 | |
%this1 = load %class.CObjectVector.5*, %class.CObjectVector.5** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.5* %this1 to %class.CRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%call = call nonnull align 8 dereferenceable(8) i8** @_ZN13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1) | |
%2 = load i8*, i8** %call, align 8, !tbaa !3 | |
%3 = bitcast i8* %2 to %struct.CDirItem* | |
ret %struct.CDirItem* %3 | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local zeroext i1 @_ZNK8CDirItem5IsDirEv(%struct.CDirItem* nonnull align 8 dereferenceable(60) %this) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %struct.CDirItem*, align 8 | |
store %struct.CDirItem* %this, %struct.CDirItem** %this.addr, align 8, !tbaa !3 | |
%this1 = load %struct.CDirItem*, %struct.CDirItem** %this.addr, align 8 | |
%Attrib = getelementptr inbounds %struct.CDirItem, %struct.CDirItem* %this1, i32 0, i32 5 | |
%0 = load i32, i32* %Attrib, align 8, !tbaa !73 | |
%and = and i32 %0, 16 | |
%cmp = icmp ne i32 %and, 0 | |
ret i1 %cmp | |
} | |
declare dso_local void @_ZNK9CDirItems10GetPhyPathEi(%class.CStringBase* sret(%class.CStringBase) align 8, %class.CDirItems* nonnull align 8 dereferenceable(128), i32) #4 | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN9CDirItemsD2Ev(%class.CDirItems* nonnull align 8 dereferenceable(128) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CDirItems*, align 8 | |
store %class.CDirItems* %this, %class.CDirItems** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CDirItems*, %class.CDirItems** %this.addr, align 8 | |
%Items = getelementptr inbounds %class.CDirItems, %class.CDirItems* %this1, i32 0, i32 3 | |
call void @_ZN13CObjectVectorI8CDirItemED2Ev(%class.CObjectVector.5* nonnull align 8 dereferenceable(32) %Items) #3 | |
%LogParents = getelementptr inbounds %class.CDirItems, %class.CDirItems* %this1, i32 0, i32 2 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.4*)*)(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %LogParents) #3 | |
%PhyParents = getelementptr inbounds %class.CDirItems, %class.CDirItems* %this1, i32 0, i32 1 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.4*)*)(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %PhyParents) #3 | |
%Prefixes = getelementptr inbounds %class.CDirItems, %class.CDirItems* %this1, i32 0, i32 0 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %Prefixes) #3 | |
ret void | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) unnamed_addr #1 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
store i32* null, i32** %_chars, align 8, !tbaa !10 | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
store i32 0, i32* %_length, align 8, !tbaa !13 | |
%_capacity = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 2 | |
store i32 0, i32* %_capacity, align 4, !tbaa !14 | |
call void @_ZN11CStringBaseIwE11SetCapacityEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 3) | |
ret void | |
} | |
declare dso_local zeroext i1 @_ZN8NWindows5NFile10NDirectory17MyGetFullPathNameEPKwR11CStringBaseIwE(i32*, %class.CStringBase* nonnull align 8 dereferenceable(16)) #4 | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this, i32 %index) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector*, align 8 | |
%index.addr = alloca i32, align 4 | |
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !3 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !15 | |
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%call = call nonnull align 8 dereferenceable(8) i8** @_ZN13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1) | |
%2 = load i8*, i8** %call, align 8, !tbaa !3 | |
%3 = bitcast i8* %2 to %class.CStringBase* | |
ret %class.CStringBase* %3 | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%0 = load i32*, i32** %_chars, align 8, !tbaa !10 | |
ret i32* %0 | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CRecordVectorIiEC2Ev(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CRecordVector.4*, align 8 | |
store %class.CRecordVector.4* %this, %class.CRecordVector.4** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CRecordVector.4*, %class.CRecordVector.4** %this.addr, align 8 | |
%0 = bitcast %class.CRecordVector.4* %this1 to %class.CBaseRecordVector* | |
call void @_ZN17CBaseRecordVectorC2Em(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i64 4) | |
%1 = bitcast %class.CRecordVector.4* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CRecordVectorIiE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !71 | |
ret void | |
} | |
declare dso_local void @_Z13SortFileNamesRK13CObjectVectorI11CStringBaseIwEER13CRecordVectorIiE(%class.CObjectVector* nonnull align 8 dereferenceable(32), %class.CRecordVector.4* nonnull align 8 dereferenceable(32)) #4 | |
declare dso_local void @_ZN17CBaseRecordVector7ReserveEi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32), i32) #4 | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local nonnull align 4 dereferenceable(4) i32* @_ZN13CRecordVectorIiEixEi(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %this, i32 %index) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CRecordVector.4*, align 8 | |
%index.addr = alloca i32, align 4 | |
store %class.CRecordVector.4* %this, %class.CRecordVector.4** %this.addr, align 8, !tbaa !3 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !15 | |
%this1 = load %class.CRecordVector.4*, %class.CRecordVector.4** %this.addr, align 8 | |
%0 = bitcast %class.CRecordVector.4* %this1 to %class.CBaseRecordVector* | |
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %0, i32 0, i32 3 | |
%1 = load i8*, i8** %_items, align 8, !tbaa !77 | |
%2 = bitcast i8* %1 to i32* | |
%3 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%idxprom = sext i32 %3 to i64 | |
%arrayidx = getelementptr inbounds i32, i32* %2, i64 %idxprom | |
ret i32* %arrayidx | |
} | |
; Function Attrs: mustprogress uwtable | |
define internal void @_ZL16SetMethodOptionsRKN18NCommandLineParser7CParserER13CObjectVectorI9CPropertyE(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser, %class.CObjectVector.1* nonnull align 8 dereferenceable(32) %properties) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%parser.addr = alloca %"class.NCommandLineParser::CParser"*, align 8 | |
%properties.addr = alloca %class.CObjectVector.1*, align 8 | |
%i = alloca i32, align 4 | |
%property = alloca %struct.CProperty, align 8 | |
%postString = alloca %class.CStringBase*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
%index = alloca i32, align 4 | |
%ref.tmp = alloca %class.CStringBase, align 8 | |
%ref.tmp20 = alloca %class.CStringBase, align 8 | |
store %"class.NCommandLineParser::CParser"* %parser, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3 | |
store %class.CObjectVector.1* %properties, %class.CObjectVector.1** %properties.addr, align 8, !tbaa !3 | |
%0 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3 | |
%call = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %0, i64 8) | |
%ThereIs = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call, i32 0, i32 0 | |
%1 = load i8, i8* %ThereIs, align 8, !tbaa !31, !range !33 | |
%tobool = trunc i8 %1 to i1 | |
br i1 %tobool, label %if.then, label %if.end35 | |
if.then: ; preds = %entry | |
%2 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #3 | |
store i32 0, i32* %i, align 4, !tbaa !15 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %if.then | |
%3 = load i32, i32* %i, align 4, !tbaa !15 | |
%4 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3 | |
%call1 = call nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %4, i64 8) | |
%PostStrings = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call1, i32 0, i32 3 | |
%5 = bitcast %class.CObjectVector* %PostStrings to %class.CBaseRecordVector* | |
%call2 = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %5) | |
%cmp = icmp slt i32 %3, %call2 | |
br i1 %cmp, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
%6 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %6) #3 | |
br label %for.end | |
for.body: ; preds = %for.cond | |
%7 = bitcast %struct.CProperty* %property to i8* | |
call void @llvm.lifetime.start.p0i8(i64 32, i8* %7) #3 | |
call void @_ZN9CPropertyC2Ev(%struct.CProperty* nonnull align 8 dereferenceable(32) %property) | |
%8 = bitcast %class.CStringBase** %postString to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %8) #3 | |
%9 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3 | |
%call3 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %9, i64 8) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %for.body | |
%PostStrings4 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call3, i32 0, i32 3 | |
%10 = load i32, i32* %i, align 4, !tbaa !15 | |
%call6 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings4, i32 %10) | |
to label %invoke.cont5 unwind label %lpad | |
invoke.cont5: ; preds = %invoke.cont | |
store %class.CStringBase* %call6, %class.CStringBase** %postString, align 8, !tbaa !3 | |
%11 = bitcast i32* %index to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %11) #3 | |
%12 = load %class.CStringBase*, %class.CStringBase** %postString, align 8, !tbaa !3 | |
%call9 = invoke i32 @_ZNK11CStringBaseIwE4FindEw(%class.CStringBase* nonnull align 8 dereferenceable(16) %12, i32 signext 61) | |
to label %invoke.cont8 unwind label %lpad7 | |
invoke.cont8: ; preds = %invoke.cont5 | |
store i32 %call9, i32* %index, align 4, !tbaa !15 | |
%13 = load i32, i32* %index, align 4, !tbaa !15 | |
%cmp10 = icmp slt i32 %13, 0 | |
br i1 %cmp10, label %if.then11, label %if.else | |
if.then11: ; preds = %invoke.cont8 | |
%14 = load %class.CStringBase*, %class.CStringBase** %postString, align 8, !tbaa !3 | |
%Name = getelementptr inbounds %struct.CProperty, %struct.CProperty* %property, i32 0, i32 0 | |
%call13 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name, %class.CStringBase* nonnull align 8 dereferenceable(16) %14) | |
to label %invoke.cont12 unwind label %lpad7 | |
invoke.cont12: ; preds = %if.then11 | |
br label %if.end | |
lpad: ; preds = %invoke.cont, %for.body | |
%15 = landingpad { i8*, i32 } | |
cleanup | |
%16 = extractvalue { i8*, i32 } %15, 0 | |
store i8* %16, i8** %exn.slot, align 8 | |
%17 = extractvalue { i8*, i32 } %15, 1 | |
store i32 %17, i32* %ehselector.slot, align 4 | |
br label %ehcleanup31 | |
lpad7: ; preds = %if.end, %if.then11, %invoke.cont5 | |
%18 = landingpad { i8*, i32 } | |
cleanup | |
%19 = extractvalue { i8*, i32 } %18, 0 | |
store i8* %19, i8** %exn.slot, align 8 | |
%20 = extractvalue { i8*, i32 } %18, 1 | |
store i32 %20, i32* %ehselector.slot, align 4 | |
br label %ehcleanup30 | |
if.else: ; preds = %invoke.cont8 | |
%21 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %21) #3 | |
%22 = load %class.CStringBase*, %class.CStringBase** %postString, align 8, !tbaa !3 | |
%23 = load i32, i32* %index, align 4, !tbaa !15 | |
invoke void @_ZNK11CStringBaseIwE4LeftEi(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp, %class.CStringBase* nonnull align 8 dereferenceable(16) %22, i32 %23) | |
to label %invoke.cont15 unwind label %lpad14 | |
invoke.cont15: ; preds = %if.else | |
%Name16 = getelementptr inbounds %struct.CProperty, %struct.CProperty* %property, i32 0, i32 0 | |
%call19 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name16, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) | |
to label %invoke.cont18 unwind label %lpad17 | |
invoke.cont18: ; preds = %invoke.cont15 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3 | |
%24 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %24) #3 | |
%25 = bitcast %class.CStringBase* %ref.tmp20 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %25) #3 | |
%26 = load %class.CStringBase*, %class.CStringBase** %postString, align 8, !tbaa !3 | |
%27 = load i32, i32* %index, align 4, !tbaa !15 | |
%add = add nsw i32 %27, 1 | |
invoke void @_ZNK11CStringBaseIwE3MidEi(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp20, %class.CStringBase* nonnull align 8 dereferenceable(16) %26, i32 %add) | |
to label %invoke.cont22 unwind label %lpad21 | |
invoke.cont22: ; preds = %invoke.cont18 | |
%Value = getelementptr inbounds %struct.CProperty, %struct.CProperty* %property, i32 0, i32 1 | |
%call25 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Value, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp20) | |
to label %invoke.cont24 unwind label %lpad23 | |
invoke.cont24: ; preds = %invoke.cont22 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp20) #3 | |
%28 = bitcast %class.CStringBase* %ref.tmp20 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %28) #3 | |
br label %if.end | |
lpad14: ; preds = %if.else | |
%29 = landingpad { i8*, i32 } | |
cleanup | |
%30 = extractvalue { i8*, i32 } %29, 0 | |
store i8* %30, i8** %exn.slot, align 8 | |
%31 = extractvalue { i8*, i32 } %29, 1 | |
store i32 %31, i32* %ehselector.slot, align 4 | |
br label %ehcleanup | |
lpad17: ; preds = %invoke.cont15 | |
%32 = landingpad { i8*, i32 } | |
cleanup | |
%33 = extractvalue { i8*, i32 } %32, 0 | |
store i8* %33, i8** %exn.slot, align 8 | |
%34 = extractvalue { i8*, i32 } %32, 1 | |
store i32 %34, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3 | |
br label %ehcleanup | |
ehcleanup: ; preds = %lpad17, %lpad14 | |
%35 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %35) #3 | |
br label %ehcleanup30 | |
lpad21: ; preds = %invoke.cont18 | |
%36 = landingpad { i8*, i32 } | |
cleanup | |
%37 = extractvalue { i8*, i32 } %36, 0 | |
store i8* %37, i8** %exn.slot, align 8 | |
%38 = extractvalue { i8*, i32 } %36, 1 | |
store i32 %38, i32* %ehselector.slot, align 4 | |
br label %ehcleanup27 | |
lpad23: ; preds = %invoke.cont22 | |
%39 = landingpad { i8*, i32 } | |
cleanup | |
%40 = extractvalue { i8*, i32 } %39, 0 | |
store i8* %40, i8** %exn.slot, align 8 | |
%41 = extractvalue { i8*, i32 } %39, 1 | |
store i32 %41, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp20) #3 | |
br label %ehcleanup27 | |
ehcleanup27: ; preds = %lpad23, %lpad21 | |
%42 = bitcast %class.CStringBase* %ref.tmp20 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %42) #3 | |
br label %ehcleanup30 | |
if.end: ; preds = %invoke.cont24, %invoke.cont12 | |
%43 = load %class.CObjectVector.1*, %class.CObjectVector.1** %properties.addr, align 8, !tbaa !3 | |
%call29 = invoke i32 @_ZN13CObjectVectorI9CPropertyE3AddERKS0_(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %43, %struct.CProperty* nonnull align 8 dereferenceable(32) %property) | |
to label %invoke.cont28 unwind label %lpad7 | |
invoke.cont28: ; preds = %if.end | |
%44 = bitcast i32* %index to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %44) #3 | |
%45 = bitcast %class.CStringBase** %postString to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %45) #3 | |
call void @_ZN9CPropertyD2Ev(%struct.CProperty* nonnull align 8 dereferenceable(32) %property) #3 | |
%46 = bitcast %struct.CProperty* %property to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %46) #3 | |
br label %for.inc | |
for.inc: ; preds = %invoke.cont28 | |
%47 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc = add nsw i32 %47, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !15 | |
br label %for.cond, !llvm.loop !78 | |
ehcleanup30: ; preds = %ehcleanup27, %ehcleanup, %lpad7 | |
%48 = bitcast i32* %index to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %48) #3 | |
br label %ehcleanup31 | |
ehcleanup31: ; preds = %ehcleanup30, %lpad | |
%49 = bitcast %class.CStringBase** %postString to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %49) #3 | |
call void @_ZN9CPropertyD2Ev(%struct.CProperty* nonnull align 8 dereferenceable(32) %property) #3 | |
%50 = bitcast %struct.CProperty* %property to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %50) #3 | |
%51 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %51) #3 | |
br label %eh.resume | |
for.end: ; preds = %for.cond.cleanup | |
br label %if.end35 | |
if.end35: ; preds = %for.end, %entry | |
ret void | |
eh.resume: ; preds = %ehcleanup31 | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val36 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val36 | |
} | |
declare dso_local void @_ZN8NWindows5NFile5NName22NormalizeDirPathPrefixER11CStringBaseIwE(%class.CStringBase* nonnull align 8 dereferenceable(16)) #4 | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN9NWildcard7CCensorD2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %"class.NWildcard::CCensor"*, align 8 | |
store %"class.NWildcard::CCensor"* %this, %"class.NWildcard::CCensor"** %this.addr, align 8, !tbaa !3 | |
%this1 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %this.addr, align 8 | |
%Pairs = getelementptr inbounds %"class.NWildcard::CCensor", %"class.NWildcard::CCensor"* %this1, i32 0, i32 0 | |
call void @_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %Pairs) #3 | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define internal void @_ZL20SetAddCommandOptionsN12NCommandType5EEnumERKN18NCommandLineParser7CParserER14CUpdateOptions(i32 %commandType, %"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser, %struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %options) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%commandType.addr = alloca i32, align 4 | |
%parser.addr = alloca %"class.NCommandLineParser::CParser"*, align 8 | |
%options.addr = alloca %struct.CUpdateOptions*, align 8 | |
%defaultActionSet = alloca %"struct.NUpdateArchive::CActionSet", align 4 | |
%updateMainCommand = alloca %struct.CUpdateArchiveCommand, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
%postString = alloca %class.CStringBase*, align 8 | |
%sv = alloca %class.CObjectVector*, align 8 | |
%i = alloca i32, align 4 | |
%size = alloca i64, align 8 | |
store i32 %commandType, i32* %commandType.addr, align 4, !tbaa !79 | |
store %"class.NCommandLineParser::CParser"* %parser, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3 | |
store %struct.CUpdateOptions* %options, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3 | |
%0 = bitcast %"struct.NUpdateArchive::CActionSet"* %defaultActionSet to i8* | |
call void @llvm.lifetime.start.p0i8(i64 28, i8* %0) #3 | |
%1 = load i32, i32* %commandType.addr, align 4, !tbaa !79 | |
switch i32 %1, label %sw.default [ | |
i32 0, label %sw.bb | |
i32 2, label %sw.bb1 | |
] | |
sw.bb: ; preds = %entry | |
%2 = bitcast %"struct.NUpdateArchive::CActionSet"* %defaultActionSet to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %2, i8* align 4 bitcast (%"struct.NUpdateArchive::CActionSet"* @_ZN14NUpdateArchive13kAddActionSetE to i8*), i64 28, i1 false), !tbaa.struct !80 | |
br label %sw.epilog | |
sw.bb1: ; preds = %entry | |
%3 = bitcast %"struct.NUpdateArchive::CActionSet"* %defaultActionSet to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %3, i8* align 4 bitcast (%"struct.NUpdateArchive::CActionSet"* @_ZN14NUpdateArchive16kDeleteActionSetE to i8*), i64 28, i1 false), !tbaa.struct !80 | |
br label %sw.epilog | |
sw.default: ; preds = %entry | |
%4 = bitcast %"struct.NUpdateArchive::CActionSet"* %defaultActionSet to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %4, i8* align 4 bitcast (%"struct.NUpdateArchive::CActionSet"* @_ZN14NUpdateArchive16kUpdateActionSetE to i8*), i64 28, i1 false), !tbaa.struct !80 | |
br label %sw.epilog | |
sw.epilog: ; preds = %sw.default, %sw.bb1, %sw.bb | |
%5 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3 | |
%UpdateArchiveItself = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %5, i32 0, i32 2 | |
store i8 1, i8* %UpdateArchiveItself, align 8, !tbaa !82 | |
%6 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3 | |
%Commands = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %6, i32 0, i32 1 | |
%7 = bitcast %class.CObjectVector.2* %Commands to %class.CBaseRecordVector* | |
call void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %7) | |
%8 = bitcast %struct.CUpdateArchiveCommand* %updateMainCommand to i8* | |
call void @llvm.lifetime.start.p0i8(i64 168, i8* %8) #3 | |
call void @_ZN21CUpdateArchiveCommandC2Ev(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %updateMainCommand) | |
%ActionSet = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %updateMainCommand, i32 0, i32 2 | |
%9 = bitcast %"struct.NUpdateArchive::CActionSet"* %ActionSet to i8* | |
%10 = bitcast %"struct.NUpdateArchive::CActionSet"* %defaultActionSet to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %9, i8* align 4 %10, i64 28, i1 false), !tbaa.struct !80 | |
%11 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3 | |
%Commands2 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %11, i32 0, i32 1 | |
%call = invoke i32 @_ZN13CObjectVectorI21CUpdateArchiveCommandE3AddERKS0_(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %Commands2, %struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %updateMainCommand) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %sw.epilog | |
%12 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3 | |
%call4 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %12, i64 16) | |
to label %invoke.cont3 unwind label %lpad | |
invoke.cont3: ; preds = %invoke.cont | |
%ThereIs = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call4, i32 0, i32 0 | |
%13 = load i8, i8* %ThereIs, align 8, !tbaa !31, !range !33 | |
%tobool = trunc i8 %13 to i1 | |
br i1 %tobool, label %if.then, label %if.end | |
if.then: ; preds = %invoke.cont3 | |
%14 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3 | |
%15 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3 | |
%call6 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %15, i64 16) | |
to label %invoke.cont5 unwind label %lpad | |
invoke.cont5: ; preds = %if.then | |
%PostStrings = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call6, i32 0, i32 3 | |
invoke void @_ZL24ParseUpdateCommandStringR14CUpdateOptionsRK13CObjectVectorI11CStringBaseIwEERKN14NUpdateArchive10CActionSetE(%struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %14, %class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings, %"struct.NUpdateArchive::CActionSet"* nonnull align 4 dereferenceable(28) %defaultActionSet) | |
to label %invoke.cont7 unwind label %lpad | |
invoke.cont7: ; preds = %invoke.cont5 | |
br label %if.end | |
lpad: ; preds = %if.end43, %invoke.cont39, %invoke.cont36, %if.then35, %if.end28, %if.end, %invoke.cont5, %if.then, %invoke.cont, %sw.epilog | |
%16 = landingpad { i8*, i32 } | |
cleanup | |
%17 = extractvalue { i8*, i32 } %16, 0 | |
store i8* %17, i8** %exn.slot, align 8 | |
%18 = extractvalue { i8*, i32 } %16, 1 | |
store i32 %18, i32* %ehselector.slot, align 4 | |
br label %ehcleanup65 | |
if.end: ; preds = %invoke.cont7, %invoke.cont3 | |
%19 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3 | |
%call9 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %19, i64 10) | |
to label %invoke.cont8 unwind label %lpad | |
invoke.cont8: ; preds = %if.end | |
%ThereIs10 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call9, i32 0, i32 0 | |
%20 = load i8, i8* %ThereIs10, align 8, !tbaa !31, !range !33 | |
%tobool11 = trunc i8 %20 to i1 | |
br i1 %tobool11, label %if.then12, label %if.end28 | |
if.then12: ; preds = %invoke.cont8 | |
%21 = bitcast %class.CStringBase** %postString to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %21) #3 | |
%22 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3 | |
%call15 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %22, i64 10) | |
to label %invoke.cont14 unwind label %lpad13 | |
invoke.cont14: ; preds = %if.then12 | |
%PostStrings16 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call15, i32 0, i32 3 | |
%call18 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings16, i32 0) | |
to label %invoke.cont17 unwind label %lpad13 | |
invoke.cont17: ; preds = %invoke.cont14 | |
store %class.CStringBase* %call18, %class.CStringBase** %postString, align 8, !tbaa !3 | |
%23 = load %class.CStringBase*, %class.CStringBase** %postString, align 8, !tbaa !3 | |
%call20 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %23) | |
to label %invoke.cont19 unwind label %lpad13 | |
invoke.cont19: ; preds = %invoke.cont17 | |
br i1 %call20, label %if.then21, label %if.else | |
if.then21: ; preds = %invoke.cont19 | |
%24 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3 | |
%WorkingDir = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %24, i32 0, i32 13 | |
%call23 = invoke zeroext i1 @_ZN8NWindows5NFile10NDirectory13MyGetTempPathER11CStringBaseIwE(%class.CStringBase* nonnull align 8 dereferenceable(16) %WorkingDir) | |
to label %invoke.cont22 unwind label %lpad13 | |
invoke.cont22: ; preds = %if.then21 | |
br label %if.end27 | |
lpad13: ; preds = %if.else, %if.then21, %invoke.cont17, %invoke.cont14, %if.then12 | |
%25 = landingpad { i8*, i32 } | |
cleanup | |
%26 = extractvalue { i8*, i32 } %25, 0 | |
store i8* %26, i8** %exn.slot, align 8 | |
%27 = extractvalue { i8*, i32 } %25, 1 | |
store i32 %27, i32* %ehselector.slot, align 4 | |
%28 = bitcast %class.CStringBase** %postString to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %28) #3 | |
br label %ehcleanup65 | |
if.else: ; preds = %invoke.cont19 | |
%29 = load %class.CStringBase*, %class.CStringBase** %postString, align 8, !tbaa !3 | |
%30 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3 | |
%WorkingDir24 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %30, i32 0, i32 13 | |
%call26 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %WorkingDir24, %class.CStringBase* nonnull align 8 dereferenceable(16) %29) | |
to label %invoke.cont25 unwind label %lpad13 | |
invoke.cont25: ; preds = %if.else | |
br label %if.end27 | |
if.end27: ; preds = %invoke.cont25, %invoke.cont22 | |
%31 = bitcast %class.CStringBase** %postString to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %31) #3 | |
br label %if.end28 | |
if.end28: ; preds = %if.end27, %invoke.cont8 | |
%32 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3 | |
%call30 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %32, i64 19) | |
to label %invoke.cont29 unwind label %lpad | |
invoke.cont29: ; preds = %if.end28 | |
%ThereIs31 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call30, i32 0, i32 0 | |
%33 = load i8, i8* %ThereIs31, align 8, !tbaa !31, !range !33 | |
%tobool32 = trunc i8 %33 to i1 | |
%34 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3 | |
%SfxMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %34, i32 0, i32 4 | |
%frombool = zext i1 %tobool32 to i8 | |
store i8 %frombool, i8* %SfxMode, align 8, !tbaa !83 | |
%35 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3 | |
%SfxMode33 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %35, i32 0, i32 4 | |
%36 = load i8, i8* %SfxMode33, align 8, !tbaa !83, !range !33 | |
%tobool34 = trunc i8 %36 to i1 | |
br i1 %tobool34, label %if.then35, label %if.end43 | |
if.then35: ; preds = %invoke.cont29 | |
%37 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3 | |
%call37 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %37, i64 19) | |
to label %invoke.cont36 unwind label %lpad | |
invoke.cont36: ; preds = %if.then35 | |
%PostStrings38 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call37, i32 0, i32 3 | |
%call40 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PostStrings38, i32 0) | |
to label %invoke.cont39 unwind label %lpad | |
invoke.cont39: ; preds = %invoke.cont36 | |
%38 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3 | |
%SfxModule = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %38, i32 0, i32 5 | |
%call42 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %SfxModule, %class.CStringBase* nonnull align 8 dereferenceable(16) %call40) | |
to label %invoke.cont41 unwind label %lpad | |
invoke.cont41: ; preds = %invoke.cont39 | |
br label %if.end43 | |
if.end43: ; preds = %invoke.cont41, %invoke.cont29 | |
%39 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3 | |
%call45 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %39, i64 17) | |
to label %invoke.cont44 unwind label %lpad | |
invoke.cont44: ; preds = %if.end43 | |
%ThereIs46 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call45, i32 0, i32 0 | |
%40 = load i8, i8* %ThereIs46, align 8, !tbaa !31, !range !33 | |
%tobool47 = trunc i8 %40 to i1 | |
br i1 %tobool47, label %if.then48, label %if.end64 | |
if.then48: ; preds = %invoke.cont44 | |
%41 = bitcast %class.CObjectVector** %sv to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %41) #3 | |
%42 = load %"class.NCommandLineParser::CParser"*, %"class.NCommandLineParser::CParser"** %parser.addr, align 8, !tbaa !3 | |
%call51 = invoke nonnull align 8 dereferenceable(44) %"struct.NCommandLineParser::CSwitchResult"* @_ZNK18NCommandLineParser7CParserixEm(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %42, i64 17) | |
to label %invoke.cont50 unwind label %lpad49 | |
invoke.cont50: ; preds = %if.then48 | |
%PostStrings52 = getelementptr inbounds %"struct.NCommandLineParser::CSwitchResult", %"struct.NCommandLineParser::CSwitchResult"* %call51, i32 0, i32 3 | |
store %class.CObjectVector* %PostStrings52, %class.CObjectVector** %sv, align 8, !tbaa !3 | |
%43 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %43) #3 | |
store i32 0, i32* %i, align 4, !tbaa !15 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %invoke.cont50 | |
%44 = load i32, i32* %i, align 4, !tbaa !15 | |
%45 = load %class.CObjectVector*, %class.CObjectVector** %sv, align 8, !tbaa !3 | |
%46 = bitcast %class.CObjectVector* %45 to %class.CBaseRecordVector* | |
%call53 = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %46) | |
%cmp = icmp slt i32 %44, %call53 | |
br i1 %cmp, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
%47 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %47) #3 | |
br label %for.end | |
lpad49: ; preds = %if.then48 | |
%48 = landingpad { i8*, i32 } | |
cleanup | |
%49 = extractvalue { i8*, i32 } %48, 0 | |
store i8* %49, i8** %exn.slot, align 8 | |
%50 = extractvalue { i8*, i32 } %48, 1 | |
store i32 %50, i32* %ehselector.slot, align 4 | |
br label %ehcleanup | |
for.body: ; preds = %for.cond | |
%51 = bitcast i64* %size to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %51) #3 | |
%52 = load %class.CObjectVector*, %class.CObjectVector** %sv, align 8, !tbaa !3 | |
%53 = load i32, i32* %i, align 4, !tbaa !15 | |
%call56 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %52, i32 %53) | |
to label %invoke.cont55 unwind label %lpad54 | |
invoke.cont55: ; preds = %for.body | |
%call58 = invoke zeroext i1 @_ZL16ParseComplexSizeRK11CStringBaseIwERy(%class.CStringBase* nonnull align 8 dereferenceable(16) %call56, i64* nonnull align 8 dereferenceable(8) %size) | |
to label %invoke.cont57 unwind label %lpad54 | |
invoke.cont57: ; preds = %invoke.cont55 | |
br i1 %call58, label %if.end61, label %if.then59 | |
if.then59: ; preds = %invoke.cont57 | |
invoke void @_ZL14ThrowExceptionPKc(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.51, i64 0, i64 0)) | |
to label %invoke.cont60 unwind label %lpad54 | |
invoke.cont60: ; preds = %if.then59 | |
br label %if.end61 | |
lpad54: ; preds = %if.end61, %if.then59, %invoke.cont55, %for.body | |
%54 = landingpad { i8*, i32 } | |
cleanup | |
%55 = extractvalue { i8*, i32 } %54, 0 | |
store i8* %55, i8** %exn.slot, align 8 | |
%56 = extractvalue { i8*, i32 } %54, 1 | |
store i32 %56, i32* %ehselector.slot, align 4 | |
%57 = bitcast i64* %size to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %57) #3 | |
%58 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %58) #3 | |
br label %ehcleanup | |
if.end61: ; preds = %invoke.cont60, %invoke.cont57 | |
%59 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3 | |
%VolumesSizes = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %59, i32 0, i32 14 | |
%60 = load i64, i64* %size, align 8, !tbaa !84 | |
%call63 = invoke i32 @_ZN13CRecordVectorIyE3AddEy(%class.CRecordVector.3* nonnull align 8 dereferenceable(32) %VolumesSizes, i64 %60) | |
to label %invoke.cont62 unwind label %lpad54 | |
invoke.cont62: ; preds = %if.end61 | |
%61 = bitcast i64* %size to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %61) #3 | |
br label %for.inc | |
for.inc: ; preds = %invoke.cont62 | |
%62 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc = add nsw i32 %62, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !15 | |
br label %for.cond, !llvm.loop !85 | |
for.end: ; preds = %for.cond.cleanup | |
%63 = bitcast %class.CObjectVector** %sv to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %63) #3 | |
br label %if.end64 | |
ehcleanup: ; preds = %lpad54, %lpad49 | |
%64 = bitcast %class.CObjectVector** %sv to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %64) #3 | |
br label %ehcleanup65 | |
if.end64: ; preds = %for.end, %invoke.cont44 | |
call void @_ZN21CUpdateArchiveCommandD2Ev(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %updateMainCommand) #3 | |
%65 = bitcast %struct.CUpdateArchiveCommand* %updateMainCommand to i8* | |
call void @llvm.lifetime.end.p0i8(i64 168, i8* %65) #3 | |
%66 = bitcast %"struct.NUpdateArchive::CActionSet"* %defaultActionSet to i8* | |
call void @llvm.lifetime.end.p0i8(i64 28, i8* %66) #3 | |
ret void | |
ehcleanup65: ; preds = %ehcleanup, %lpad13, %lpad | |
call void @_ZN21CUpdateArchiveCommandD2Ev(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %updateMainCommand) #3 | |
%67 = bitcast %struct.CUpdateArchiveCommand* %updateMainCommand to i8* | |
call void @llvm.lifetime.end.p0i8(i64 168, i8* %67) #3 | |
%68 = bitcast %"struct.NUpdateArchive::CActionSet"* %defaultActionSet to i8* | |
call void @llvm.lifetime.end.p0i8(i64 28, i8* %68) #3 | |
br label %eh.resume | |
eh.resume: ; preds = %ehcleanup65 | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val68 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val68 | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%0 = load i32, i32* %_length, align 8, !tbaa !13 | |
ret i32 %0 | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local i32 @_ZN11CStringBaseIwE6DeleteEii(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32 %index, i32 %count) #5 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%index.addr = alloca i32, align 4 | |
%count.addr = alloca i32, align 4 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !15 | |
store i32 %count, i32* %count.addr, align 4, !tbaa !15 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%0 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%1 = load i32, i32* %count.addr, align 4, !tbaa !15 | |
%add = add nsw i32 %0, %1 | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%2 = load i32, i32* %_length, align 8, !tbaa !13 | |
%cmp = icmp sgt i32 %add, %2 | |
br i1 %cmp, label %if.then, label %if.end | |
if.then: ; preds = %entry | |
%_length2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%3 = load i32, i32* %_length2, align 8, !tbaa !13 | |
%4 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%sub = sub nsw i32 %3, %4 | |
store i32 %sub, i32* %count.addr, align 4, !tbaa !15 | |
br label %if.end | |
if.end: ; preds = %if.then, %entry | |
%5 = load i32, i32* %count.addr, align 4, !tbaa !15 | |
%cmp3 = icmp sgt i32 %5, 0 | |
br i1 %cmp3, label %if.then4, label %if.end8 | |
if.then4: ; preds = %if.end | |
%6 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%7 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%8 = load i32, i32* %count.addr, align 4, !tbaa !15 | |
%add5 = add nsw i32 %7, %8 | |
call void @_ZN11CStringBaseIwE9MoveItemsEii(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 %6, i32 %add5) | |
%9 = load i32, i32* %count.addr, align 4, !tbaa !15 | |
%_length6 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%10 = load i32, i32* %_length6, align 8, !tbaa !13 | |
%sub7 = sub nsw i32 %10, %9 | |
store i32 %sub7, i32* %_length6, align 8, !tbaa !13 | |
br label %if.end8 | |
if.end8: ; preds = %if.then4, %if.end | |
%_length9 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%11 = load i32, i32* %_length9, align 8, !tbaa !13 | |
ret i32 %11 | |
} | |
; Function Attrs: mustprogress uwtable | |
define internal zeroext i1 @_ZL21ConvertStringToUInt32PKwRj(i32* %s, i32* nonnull align 4 dereferenceable(4) %v) #5 { | |
entry: | |
%retval = alloca i1, align 1 | |
%s.addr = alloca i32*, align 8 | |
%v.addr = alloca i32*, align 8 | |
%end = alloca i32*, align 8 | |
%number = alloca i64, align 8 | |
%cleanup.dest.slot = alloca i32, align 4 | |
store i32* %s, i32** %s.addr, align 8, !tbaa !3 | |
store i32* %v, i32** %v.addr, align 8, !tbaa !3 | |
%0 = bitcast i32** %end to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %0) #3 | |
%1 = bitcast i64* %number to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %1) #3 | |
%2 = load i32*, i32** %s.addr, align 8, !tbaa !3 | |
%call = call i64 @_Z21ConvertStringToUInt64PKwPS0_(i32* %2, i32** %end) | |
store i64 %call, i64* %number, align 8, !tbaa !84 | |
%3 = load i32*, i32** %end, align 8, !tbaa !3 | |
%4 = load i32, i32* %3, align 4, !tbaa !57 | |
%cmp = icmp ne i32 %4, 0 | |
br i1 %cmp, label %if.then, label %if.end | |
if.then: ; preds = %entry | |
store i1 false, i1* %retval, align 1 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
if.end: ; preds = %entry | |
%5 = load i64, i64* %number, align 8, !tbaa !84 | |
%cmp1 = icmp ugt i64 %5, 4294967295 | |
br i1 %cmp1, label %if.then2, label %if.end3 | |
if.then2: ; preds = %if.end | |
store i1 false, i1* %retval, align 1 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
if.end3: ; preds = %if.end | |
%6 = load i64, i64* %number, align 8, !tbaa !84 | |
%conv = trunc i64 %6 to i32 | |
%7 = load i32*, i32** %v.addr, align 8, !tbaa !3 | |
store i32 %conv, i32* %7, align 4, !tbaa !15 | |
store i1 true, i1* %retval, align 1 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
cleanup: ; preds = %if.end3, %if.then2, %if.then | |
%8 = bitcast i64* %number to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %8) #3 | |
%9 = bitcast i32** %end to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %9) #3 | |
%10 = load i1, i1* %retval, align 1 | |
ret i1 %10 | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local void @_ZN11CStringBaseIwE9MakeUpperEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) #5 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%0 = load i32*, i32** %_chars, align 8, !tbaa !10 | |
%call = call i32* @_Z13MyStringUpperPw(i32* %0) | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local void @_ZNK11CStringBaseIwE3MidEi(%class.CStringBase* noalias sret(%class.CStringBase) align 8 %agg.result, %class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32 %startIndex) #5 comdat align 2 { | |
entry: | |
%result.ptr = alloca i8*, align 8 | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%startIndex.addr = alloca i32, align 4 | |
%0 = bitcast %class.CStringBase* %agg.result to i8* | |
store i8* %0, i8** %result.ptr, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
store i32 %startIndex, i32* %startIndex.addr, align 4, !tbaa !15 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%1 = load i32, i32* %startIndex.addr, align 4, !tbaa !15 | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%2 = load i32, i32* %_length, align 8, !tbaa !13 | |
%3 = load i32, i32* %startIndex.addr, align 4, !tbaa !15 | |
%sub = sub nsw i32 %2, %3 | |
call void @_ZNK11CStringBaseIwE3MidEii(%class.CStringBase* sret(%class.CStringBase) align 8 %agg.result, %class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 %1, i32 %sub) | |
ret void | |
} | |
; Function Attrs: uwtable | |
define internal void @__cxx_global_var_init.27() #1 section ".text.startup" { | |
entry: | |
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.5, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 0, i32 0), align 16, !tbaa !86 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 0, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 0, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 0, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 0, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 0, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.9, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 1, i32 0), align 16, !tbaa !86 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 1, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 1, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 1, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 1, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 1, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([6 x i32], [6 x i32]* @.str.10, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 2, i32 0), align 16, !tbaa !86 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 2, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 2, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 2, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 2, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 2, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.11, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 3, i32 0), align 16, !tbaa !86 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 3, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 3, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 3, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 3, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 3, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.12, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 4, i32 0), align 16, !tbaa !86 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 4, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 4, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 4, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 4, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 4, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.13, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 5, i32 0), align 16, !tbaa !86 | |
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 5, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 5, i32 2), align 4, !tbaa !90 | |
store i32 1, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 5, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 5, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 5, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.14, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 6, i32 0), align 16, !tbaa !86 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 6, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 6, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 6, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 6, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 6, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.15, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 7, i32 0), align 16, !tbaa !86 | |
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 7, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 7, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 7, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 7, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 7, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.16, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 8, i32 0), align 16, !tbaa !86 | |
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 8, i32 1), align 8, !tbaa !89 | |
store i8 1, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 8, i32 2), align 4, !tbaa !90 | |
store i32 1, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 8, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 8, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 8, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.17, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 9, i32 0), align 16, !tbaa !86 | |
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 9, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 9, i32 2), align 4, !tbaa !90 | |
store i32 1, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 9, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 9, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 9, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.18, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 10, i32 0), align 16, !tbaa !86 | |
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 10, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 10, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 10, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 10, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 10, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.19, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 11, i32 0), align 16, !tbaa !86 | |
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 11, i32 1), align 8, !tbaa !89 | |
store i8 1, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 11, i32 2), align 4, !tbaa !90 | |
store i32 2, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 11, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 11, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 11, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.20, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 12, i32 0), align 16, !tbaa !86 | |
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 12, i32 1), align 8, !tbaa !89 | |
store i8 1, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 12, i32 2), align 4, !tbaa !90 | |
store i32 2, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 12, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 12, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 12, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.21, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 13, i32 0), align 16, !tbaa !86 | |
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 13, i32 1), align 8, !tbaa !89 | |
store i8 1, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 13, i32 2), align 4, !tbaa !90 | |
store i32 2, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 13, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 13, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 13, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.22, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 14, i32 0), align 16, !tbaa !86 | |
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 14, i32 1), align 8, !tbaa !89 | |
store i8 1, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 14, i32 2), align 4, !tbaa !90 | |
store i32 2, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 14, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 14, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 14, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.23, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 15, i32 0), align 16, !tbaa !86 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 15, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 15, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 15, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 15, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 15, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.24, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 16, i32 0), align 16, !tbaa !86 | |
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 16, i32 1), align 8, !tbaa !89 | |
store i8 1, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 16, i32 2), align 4, !tbaa !90 | |
store i32 1, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 16, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 16, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 16, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.25, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 17, i32 0), align 16, !tbaa !86 | |
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 17, i32 1), align 8, !tbaa !89 | |
store i8 1, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 17, i32 2), align 4, !tbaa !90 | |
store i32 1, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 17, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 17, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 17, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.26, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 18, i32 0), align 16, !tbaa !86 | |
store i32 4, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 18, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 18, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 18, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 18, i32 4), align 4, !tbaa !92 | |
%0 = load i32*, i32** @_ZL20kRecursedPostCharSet, align 8, !tbaa !3 | |
store i32* %0, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 18, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([4 x i32], [4 x i32]* @.str.28, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 19, i32 0), align 16, !tbaa !86 | |
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 19, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 19, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 19, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 19, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 19, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.29, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 20, i32 0), align 16, !tbaa !86 | |
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 20, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 20, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 20, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 20, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 20, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.30, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 21, i32 0), align 16, !tbaa !86 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 21, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 21, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 21, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 21, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 21, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.31, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 22, i32 0), align 16, !tbaa !86 | |
store i32 4, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 22, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 22, i32 2), align 4, !tbaa !90 | |
store i32 1, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 22, i32 3), align 16, !tbaa !91 | |
store i32 1, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 22, i32 4), align 4, !tbaa !92 | |
%1 = load i32*, i32** @_ZL21kOverwritePostCharSet, align 8, !tbaa !3 | |
store i32* %1, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 22, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([5 x i32], [5 x i32]* @.str.32, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 23, i32 0), align 16, !tbaa !86 | |
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 23, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 23, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 23, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 23, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 23, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.33, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 24, i32 0), align 16, !tbaa !86 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 24, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 24, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 24, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 24, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 24, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([4 x i32], [4 x i32]* @.str.34, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 25, i32 0), align 16, !tbaa !86 | |
store i32 3, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 25, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 25, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 25, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 25, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 25, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.35, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 26, i32 0), align 16, !tbaa !86 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 26, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 26, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 26, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 26, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 26, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([4 x i32], [4 x i32]* @.str.36, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 27, i32 0), align 16, !tbaa !86 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 27, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 27, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 27, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 27, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 27, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([4 x i32], [4 x i32]* @.str.37, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 28, i32 0), align 16, !tbaa !86 | |
store i32 4, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 28, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 28, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 28, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 28, i32 4), align 4, !tbaa !92 | |
store i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.3, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 28, i32 5), align 8, !tbaa !93 | |
store i32* getelementptr inbounds ([5 x i32], [5 x i32]* @.str.38, i64 0, i64 0), i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 29, i32 0), align 16, !tbaa !86 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 29, i32 1), align 8, !tbaa !89 | |
store i8 0, i8* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 29, i32 2), align 4, !tbaa !90 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 29, i32 3), align 16, !tbaa !91 | |
store i32 0, i32* getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 29, i32 4), align 4, !tbaa !92 | |
store i32* null, i32** getelementptr inbounds ([30 x %"struct.NCommandLineParser::CSwitchForm"], [30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms, i64 0, i64 29, i32 5), align 8, !tbaa !93 | |
%2 = call {}* @llvm.invariant.start.p0i8(i64 960, i8* bitcast ([30 x %"struct.NCommandLineParser::CSwitchForm"]* @_ZL12kSwitchForms to i8*)) | |
ret void | |
} | |
; Function Attrs: argmemonly nofree nosync nounwind willreturn | |
declare {}* @llvm.invariant.start.p0i8(i64 immarg, i8* nocapture) #8 | |
declare dso_local i32 @_ZN18NCommandLineParser12ParseCommandEiPKNS_12CCommandFormERK11CStringBaseIwERS4_(i32, %"struct.NCommandLineParser::CCommandForm"*, %class.CStringBase* nonnull align 8 dereferenceable(16), %class.CStringBase* nonnull align 8 dereferenceable(16)) #4 | |
declare dso_local signext i32 @_Z11MyCharUpperw(i32 signext) #4 | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local i32 @_ZNK11CStringBaseIwE4FindEw(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32 signext %c) #5 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%c.addr = alloca i32, align 4 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
store i32 %c, i32* %c.addr, align 4, !tbaa !57 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%0 = load i32, i32* %c.addr, align 4, !tbaa !57 | |
%call = call i32 @_ZNK11CStringBaseIwE4FindEwi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 signext %0, i32 0) | |
ret i32 %call | |
} | |
; Function Attrs: mustprogress uwtable | |
define internal void @_ZL23AddToCensorFromListFileRN9NWildcard7CCensorEPKwbN13NRecursedType5EEnumEj(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %wildcardCensor, i32* %fileName, i1 zeroext %include, i32 %type, i32 %codePage) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%wildcardCensor.addr = alloca %"class.NWildcard::CCensor"*, align 8 | |
%fileName.addr = alloca i32*, align 8 | |
%include.addr = alloca i8, align 1 | |
%type.addr = alloca i32, align 4 | |
%codePage.addr = alloca i32, align 4 | |
%names = alloca %class.CObjectVector, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
%i = alloca i32, align 4 | |
store %"class.NWildcard::CCensor"* %wildcardCensor, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3 | |
store i32* %fileName, i32** %fileName.addr, align 8, !tbaa !3 | |
%frombool = zext i1 %include to i8 | |
store i8 %frombool, i8* %include.addr, align 1, !tbaa !42 | |
store i32 %type, i32* %type.addr, align 4, !tbaa !43 | |
store i32 %codePage, i32* %codePage.addr, align 4, !tbaa !15 | |
%0 = bitcast %class.CObjectVector* %names to i8* | |
call void @llvm.lifetime.start.p0i8(i64 32, i8* %0) #3 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %names) | |
%1 = load i32*, i32** %fileName.addr, align 8, !tbaa !3 | |
%call = invoke zeroext i1 @_ZN8NWindows5NFile5NFind13DoesFileExistEPKw(i32* %1) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
br i1 %call, label %if.end, label %if.then | |
if.then: ; preds = %invoke.cont | |
%exception = call i8* @__cxa_allocate_exception(i64 8) #3 | |
%2 = bitcast i8* %exception to i8** | |
%3 = load i8*, i8** @_ZL19kCannotFindListFile, align 8, !tbaa !3 | |
store i8* %3, i8** %2, align 16, !tbaa !3 | |
invoke void @__cxa_throw(i8* %exception, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18 | |
to label %unreachable unwind label %lpad | |
lpad: ; preds = %if.then3, %if.end, %if.then, %entry | |
%4 = landingpad { i8*, i32 } | |
cleanup | |
%5 = extractvalue { i8*, i32 } %4, 0 | |
store i8* %5, i8** %exn.slot, align 8 | |
%6 = extractvalue { i8*, i32 } %4, 1 | |
store i32 %6, i32* %ehselector.slot, align 4 | |
br label %ehcleanup | |
if.end: ; preds = %invoke.cont | |
%7 = load i32*, i32** %fileName.addr, align 8, !tbaa !3 | |
%8 = load i32, i32* %codePage.addr, align 4, !tbaa !15 | |
%call2 = invoke zeroext i1 @_Z21ReadNamesFromListFilePKwR13CObjectVectorI11CStringBaseIwEEj(i32* %7, %class.CObjectVector* nonnull align 8 dereferenceable(32) %names, i32 %8) | |
to label %invoke.cont1 unwind label %lpad | |
invoke.cont1: ; preds = %if.end | |
br i1 %call2, label %if.end5, label %if.then3 | |
if.then3: ; preds = %invoke.cont1 | |
%exception4 = call i8* @__cxa_allocate_exception(i64 8) #3 | |
%9 = bitcast i8* %exception4 to i8** | |
%10 = load i8*, i8** @_ZL18kIncorrectListFile, align 8, !tbaa !3 | |
store i8* %10, i8** %9, align 16, !tbaa !3 | |
invoke void @__cxa_throw(i8* %exception4, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18 | |
to label %unreachable unwind label %lpad | |
if.end5: ; preds = %invoke.cont1 | |
%11 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %11) #3 | |
store i32 0, i32* %i, align 4, !tbaa !15 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %if.end5 | |
%12 = load i32, i32* %i, align 4, !tbaa !15 | |
%13 = bitcast %class.CObjectVector* %names to %class.CBaseRecordVector* | |
%call6 = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %13) | |
%cmp = icmp slt i32 %12, %call6 | |
br i1 %cmp, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
%14 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %14) #3 | |
br label %for.end | |
for.body: ; preds = %for.cond | |
%15 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %wildcardCensor.addr, align 8, !tbaa !3 | |
%16 = load i32, i32* %i, align 4, !tbaa !15 | |
%call9 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %names, i32 %16) | |
to label %invoke.cont8 unwind label %lpad7 | |
invoke.cont8: ; preds = %for.body | |
%17 = load i8, i8* %include.addr, align 1, !tbaa !42, !range !33 | |
%tobool = trunc i8 %17 to i1 | |
%18 = load i32, i32* %type.addr, align 4, !tbaa !43 | |
invoke void @_ZL15AddNameToCensorRN9NWildcard7CCensorERK11CStringBaseIwEbN13NRecursedType5EEnumE(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %15, %class.CStringBase* nonnull align 8 dereferenceable(16) %call9, i1 zeroext %tobool, i32 %18) | |
to label %invoke.cont10 unwind label %lpad7 | |
invoke.cont10: ; preds = %invoke.cont8 | |
br label %for.inc | |
for.inc: ; preds = %invoke.cont10 | |
%19 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc = add nsw i32 %19, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !15 | |
br label %for.cond, !llvm.loop !94 | |
lpad7: ; preds = %invoke.cont8, %for.body | |
%20 = landingpad { i8*, i32 } | |
cleanup | |
%21 = extractvalue { i8*, i32 } %20, 0 | |
store i8* %21, i8** %exn.slot, align 8 | |
%22 = extractvalue { i8*, i32 } %20, 1 | |
store i32 %22, i32* %ehselector.slot, align 4 | |
%23 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %23) #3 | |
br label %ehcleanup | |
for.end: ; preds = %for.cond.cleanup | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %names) #3 | |
%24 = bitcast %class.CObjectVector* %names to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %24) #3 | |
ret void | |
ehcleanup: ; preds = %lpad7, %lpad | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %names) #3 | |
%25 = bitcast %class.CObjectVector* %names to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %25) #3 | |
br label %eh.resume | |
eh.resume: ; preds = %ehcleanup | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val12 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val12 | |
unreachable: ; preds = %if.then3, %if.then | |
unreachable | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local i32 @_ZNK11CStringBaseIwE4FindEwi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32 signext %c, i32 %startIndex) #5 comdat align 2 { | |
entry: | |
%retval = alloca i32, align 4 | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%c.addr = alloca i32, align 4 | |
%startIndex.addr = alloca i32, align 4 | |
%p = alloca i32*, align 8 | |
%cleanup.dest.slot = alloca i32, align 4 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
store i32 %c, i32* %c.addr, align 4, !tbaa !57 | |
store i32 %startIndex, i32* %startIndex.addr, align 4, !tbaa !15 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%0 = bitcast i32** %p to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %0) #3 | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%1 = load i32*, i32** %_chars, align 8, !tbaa !10 | |
%2 = load i32, i32* %startIndex.addr, align 4, !tbaa !15 | |
%idx.ext = sext i32 %2 to i64 | |
%add.ptr = getelementptr inbounds i32, i32* %1, i64 %idx.ext | |
store i32* %add.ptr, i32** %p, align 8, !tbaa !3 | |
br label %for.cond | |
for.cond: ; preds = %if.end5, %entry | |
%3 = load i32*, i32** %p, align 8, !tbaa !3 | |
%4 = load i32, i32* %3, align 4, !tbaa !57 | |
%5 = load i32, i32* %c.addr, align 4, !tbaa !57 | |
%cmp = icmp eq i32 %4, %5 | |
br i1 %cmp, label %if.then, label %if.end | |
if.then: ; preds = %for.cond | |
%6 = load i32*, i32** %p, align 8, !tbaa !3 | |
%_chars2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%7 = load i32*, i32** %_chars2, align 8, !tbaa !10 | |
%sub.ptr.lhs.cast = ptrtoint i32* %6 to i64 | |
%sub.ptr.rhs.cast = ptrtoint i32* %7 to i64 | |
%sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast | |
%sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 4 | |
%conv = trunc i64 %sub.ptr.div to i32 | |
store i32 %conv, i32* %retval, align 4 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
if.end: ; preds = %for.cond | |
%8 = load i32*, i32** %p, align 8, !tbaa !3 | |
%9 = load i32, i32* %8, align 4, !tbaa !57 | |
%cmp3 = icmp eq i32 %9, 0 | |
br i1 %cmp3, label %if.then4, label %if.end5 | |
if.then4: ; preds = %if.end | |
store i32 -1, i32* %retval, align 4 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
if.end5: ; preds = %if.end | |
%10 = load i32*, i32** %p, align 8, !tbaa !3 | |
%call = call i32* @_ZN11CStringBaseIwE18GetNextCharPointerEPw(i32* %10) | |
store i32* %call, i32** %p, align 8, !tbaa !3 | |
br label %for.cond, !llvm.loop !95 | |
cleanup: ; preds = %if.then4, %if.then | |
%11 = bitcast i32** %p to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %11) #3 | |
%12 = load i32, i32* %retval, align 4 | |
ret i32 %12 | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local i32* @_ZN11CStringBaseIwE18GetNextCharPointerEPw(i32* %p) #5 comdat align 2 { | |
entry: | |
%p.addr = alloca i32*, align 8 | |
store i32* %p, i32** %p.addr, align 8, !tbaa !3 | |
%0 = load i32*, i32** %p.addr, align 8, !tbaa !3 | |
%call = call i32* @_Z26MyStringGetNextCharPointerPw(i32* %0) | |
ret i32* %call | |
} | |
; Function Attrs: inlinehint mustprogress nounwind uwtable | |
define linkonce_odr dso_local i32* @_Z26MyStringGetNextCharPointerPw(i32* %p) #11 comdat { | |
entry: | |
%p.addr = alloca i32*, align 8 | |
store i32* %p, i32** %p.addr, align 8, !tbaa !3 | |
%0 = load i32*, i32** %p.addr, align 8, !tbaa !3 | |
%add.ptr = getelementptr inbounds i32, i32* %0, i64 1 | |
ret i32* %add.ptr | |
} | |
declare dso_local zeroext i1 @_ZN8NWindows5NFile5NFind13DoesFileExistEPKw(i32*) #4 | |
declare dso_local zeroext i1 @_Z21ReadNamesFromListFilePKwR13CObjectVectorI11CStringBaseIwEEj(i32*, %class.CObjectVector* nonnull align 8 dereferenceable(32), i32) #4 | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(136) %"struct.NWildcard::CPair"* @_ZNK13CObjectVectorIN9NWildcard5CPairEE5FrontEv(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this) #5 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.0*, align 8 | |
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8 | |
%call = call nonnull align 8 dereferenceable(136) %"struct.NWildcard::CPair"* @_ZNK13CObjectVectorIN9NWildcard5CPairEEixEi(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this1, i32 0) | |
ret %"struct.NWildcard::CPair"* %call | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(136) %"struct.NWildcard::CPair"* @_ZNK13CObjectVectorIN9NWildcard5CPairEEixEi(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this, i32 %index) #5 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.0*, align 8 | |
%index.addr = alloca i32, align 4 | |
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !3 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !15 | |
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.0* %this1 to %class.CRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%call = call nonnull align 8 dereferenceable(8) i8** @_ZNK13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1) | |
%2 = load i8*, i8** %call, align 8, !tbaa !3 | |
%3 = bitcast i8* %2 to %"struct.NWildcard::CPair"* | |
ret %"struct.NWildcard::CPair"* %3 | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(8) i8** @_ZNK13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %this, i32 %index) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CRecordVector*, align 8 | |
%index.addr = alloca i32, align 4 | |
store %class.CRecordVector* %this, %class.CRecordVector** %this.addr, align 8, !tbaa !3 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !15 | |
%this1 = load %class.CRecordVector*, %class.CRecordVector** %this.addr, align 8 | |
%0 = bitcast %class.CRecordVector* %this1 to %class.CBaseRecordVector* | |
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %0, i32 0, i32 3 | |
%1 = load i8*, i8** %_items, align 8, !tbaa !77 | |
%2 = bitcast i8* %1 to i8** | |
%3 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%idxprom = sext i32 %3 to i64 | |
%arrayidx = getelementptr inbounds i8*, i8** %2, i64 %idxprom | |
ret i8** %arrayidx | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN28CArchiveCommandLineExceptionC2EPKc(%struct.CArchiveCommandLineException* nonnull align 8 dereferenceable(16) %this, i8* %errorMessage) unnamed_addr #1 comdat align 2 { | |
entry: | |
%this.addr = alloca %struct.CArchiveCommandLineException*, align 8 | |
%errorMessage.addr = alloca i8*, align 8 | |
store %struct.CArchiveCommandLineException* %this, %struct.CArchiveCommandLineException** %this.addr, align 8, !tbaa !3 | |
store i8* %errorMessage, i8** %errorMessage.addr, align 8, !tbaa !3 | |
%this1 = load %struct.CArchiveCommandLineException*, %struct.CArchiveCommandLineException** %this.addr, align 8 | |
%0 = bitcast %struct.CArchiveCommandLineException* %this1 to %class.CStringBase.9* | |
%1 = load i8*, i8** %errorMessage.addr, align 8, !tbaa !3 | |
call void @_ZN11CStringBaseIcEC2EPKc(%class.CStringBase.9* nonnull align 8 dereferenceable(16) %0, i8* %1) | |
ret void | |
} | |
declare dso_local void @__cxa_free_exception(i8*) | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN11CStringBaseIcED2Ev(%class.CStringBase.9* nonnull align 8 dereferenceable(16) %this) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase.9*, align 8 | |
store %class.CStringBase.9* %this, %class.CStringBase.9** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CStringBase.9*, %class.CStringBase.9** %this.addr, align 8 | |
%_chars = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 0 | |
%0 = load i8*, i8** %_chars, align 8, !tbaa !96 | |
%isnull = icmp eq i8* %0, null | |
br i1 %isnull, label %delete.end, label %delete.notnull | |
delete.notnull: ; preds = %entry | |
call void @_ZdaPv(i8* %0) #16 | |
br label %delete.end | |
delete.end: ; preds = %delete.notnull, %entry | |
ret void | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN11CStringBaseIcEC2EPKc(%class.CStringBase.9* nonnull align 8 dereferenceable(16) %this, i8* %chars) unnamed_addr #1 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase.9*, align 8 | |
%chars.addr = alloca i8*, align 8 | |
%length = alloca i32, align 4 | |
store %class.CStringBase.9* %this, %class.CStringBase.9** %this.addr, align 8, !tbaa !3 | |
store i8* %chars, i8** %chars.addr, align 8, !tbaa !3 | |
%this1 = load %class.CStringBase.9*, %class.CStringBase.9** %this.addr, align 8 | |
%_chars = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 0 | |
store i8* null, i8** %_chars, align 8, !tbaa !96 | |
%_length = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 1 | |
store i32 0, i32* %_length, align 8, !tbaa !98 | |
%_capacity = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 2 | |
store i32 0, i32* %_capacity, align 4, !tbaa !99 | |
%0 = bitcast i32* %length to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3 | |
%1 = load i8*, i8** %chars.addr, align 8, !tbaa !3 | |
%call = call i32 @_Z11MyStringLenIcEiPKT_(i8* %1) | |
store i32 %call, i32* %length, align 4, !tbaa !15 | |
%2 = load i32, i32* %length, align 4, !tbaa !15 | |
call void @_ZN11CStringBaseIcE11SetCapacityEi(%class.CStringBase.9* nonnull align 8 dereferenceable(16) %this1, i32 %2) | |
%_chars2 = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 0 | |
%3 = load i8*, i8** %_chars2, align 8, !tbaa !96 | |
%4 = load i8*, i8** %chars.addr, align 8, !tbaa !3 | |
%call3 = call i8* @_Z12MyStringCopyIcEPT_S1_PKS0_(i8* %3, i8* %4) | |
%5 = load i32, i32* %length, align 4, !tbaa !15 | |
%_length4 = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 1 | |
store i32 %5, i32* %_length4, align 8, !tbaa !98 | |
%6 = bitcast i32* %length to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %6) #3 | |
ret void | |
} | |
; Function Attrs: inlinehint mustprogress nounwind uwtable | |
define linkonce_odr dso_local i32 @_Z11MyStringLenIcEiPKT_(i8* %s) #11 comdat { | |
entry: | |
%s.addr = alloca i8*, align 8 | |
%i = alloca i32, align 4 | |
store i8* %s, i8** %s.addr, align 8, !tbaa !3 | |
%0 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3 | |
store i32 0, i32* %i, align 4, !tbaa !15 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %entry | |
%1 = load i8*, i8** %s.addr, align 8, !tbaa !3 | |
%2 = load i32, i32* %i, align 4, !tbaa !15 | |
%idxprom = sext i32 %2 to i64 | |
%arrayidx = getelementptr inbounds i8, i8* %1, i64 %idxprom | |
%3 = load i8, i8* %arrayidx, align 1, !tbaa !81 | |
%conv = sext i8 %3 to i32 | |
%cmp = icmp ne i32 %conv, 0 | |
br i1 %cmp, label %for.body, label %for.end | |
for.body: ; preds = %for.cond | |
br label %for.inc | |
for.inc: ; preds = %for.body | |
%4 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc = add nsw i32 %4, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !15 | |
br label %for.cond, !llvm.loop !100 | |
for.end: ; preds = %for.cond | |
%5 = load i32, i32* %i, align 4, !tbaa !15 | |
%6 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %6) #3 | |
ret i32 %5 | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local void @_ZN11CStringBaseIcE11SetCapacityEi(%class.CStringBase.9* nonnull align 8 dereferenceable(16) %this, i32 %newCapacity) #5 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase.9*, align 8 | |
%newCapacity.addr = alloca i32, align 4 | |
%realCapacity = alloca i32, align 4 | |
%cleanup.dest.slot = alloca i32, align 4 | |
%newBuffer = alloca i8*, align 8 | |
%i = alloca i32, align 4 | |
store %class.CStringBase.9* %this, %class.CStringBase.9** %this.addr, align 8, !tbaa !3 | |
store i32 %newCapacity, i32* %newCapacity.addr, align 4, !tbaa !15 | |
%this1 = load %class.CStringBase.9*, %class.CStringBase.9** %this.addr, align 8 | |
%0 = bitcast i32* %realCapacity to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3 | |
%1 = load i32, i32* %newCapacity.addr, align 4, !tbaa !15 | |
%add = add nsw i32 %1, 1 | |
store i32 %add, i32* %realCapacity, align 4, !tbaa !15 | |
%2 = load i32, i32* %realCapacity, align 4, !tbaa !15 | |
%_capacity = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 2 | |
%3 = load i32, i32* %_capacity, align 4, !tbaa !99 | |
%cmp = icmp eq i32 %2, %3 | |
br i1 %cmp, label %if.then, label %if.end | |
if.then: ; preds = %entry | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
if.end: ; preds = %entry | |
%4 = bitcast i8** %newBuffer to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %4) #3 | |
%5 = load i32, i32* %realCapacity, align 4, !tbaa !15 | |
%conv = sext i32 %5 to i64 | |
%call = call noalias nonnull i8* @_Znam(i64 %conv) #19 | |
store i8* %call, i8** %newBuffer, align 8, !tbaa !3 | |
%_capacity2 = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 2 | |
%6 = load i32, i32* %_capacity2, align 4, !tbaa !99 | |
%cmp3 = icmp sgt i32 %6, 0 | |
br i1 %cmp3, label %if.then4, label %if.end9 | |
if.then4: ; preds = %if.end | |
%7 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %7) #3 | |
store i32 0, i32* %i, align 4, !tbaa !15 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %if.then4 | |
%8 = load i32, i32* %i, align 4, !tbaa !15 | |
%_length = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 1 | |
%9 = load i32, i32* %_length, align 8, !tbaa !98 | |
%cmp5 = icmp slt i32 %8, %9 | |
br i1 %cmp5, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
store i32 2, i32* %cleanup.dest.slot, align 4 | |
%10 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %10) #3 | |
br label %for.end | |
for.body: ; preds = %for.cond | |
%_chars = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 0 | |
%11 = load i8*, i8** %_chars, align 8, !tbaa !96 | |
%12 = load i32, i32* %i, align 4, !tbaa !15 | |
%idxprom = sext i32 %12 to i64 | |
%arrayidx = getelementptr inbounds i8, i8* %11, i64 %idxprom | |
%13 = load i8, i8* %arrayidx, align 1, !tbaa !81 | |
%14 = load i8*, i8** %newBuffer, align 8, !tbaa !3 | |
%15 = load i32, i32* %i, align 4, !tbaa !15 | |
%idxprom6 = sext i32 %15 to i64 | |
%arrayidx7 = getelementptr inbounds i8, i8* %14, i64 %idxprom6 | |
store i8 %13, i8* %arrayidx7, align 1, !tbaa !81 | |
br label %for.inc | |
for.inc: ; preds = %for.body | |
%16 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc = add nsw i32 %16, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !15 | |
br label %for.cond, !llvm.loop !101 | |
for.end: ; preds = %for.cond.cleanup | |
%_chars8 = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 0 | |
%17 = load i8*, i8** %_chars8, align 8, !tbaa !96 | |
%isnull = icmp eq i8* %17, null | |
br i1 %isnull, label %delete.end, label %delete.notnull | |
delete.notnull: ; preds = %for.end | |
call void @_ZdaPv(i8* %17) #16 | |
br label %delete.end | |
delete.end: ; preds = %delete.notnull, %for.end | |
br label %if.end9 | |
if.end9: ; preds = %delete.end, %if.end | |
%18 = load i8*, i8** %newBuffer, align 8, !tbaa !3 | |
%_chars10 = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 0 | |
store i8* %18, i8** %_chars10, align 8, !tbaa !96 | |
%_chars11 = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 0 | |
%19 = load i8*, i8** %_chars11, align 8, !tbaa !96 | |
%_length12 = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 1 | |
%20 = load i32, i32* %_length12, align 8, !tbaa !98 | |
%idxprom13 = sext i32 %20 to i64 | |
%arrayidx14 = getelementptr inbounds i8, i8* %19, i64 %idxprom13 | |
store i8 0, i8* %arrayidx14, align 1, !tbaa !81 | |
%21 = load i32, i32* %realCapacity, align 4, !tbaa !15 | |
%_capacity15 = getelementptr inbounds %class.CStringBase.9, %class.CStringBase.9* %this1, i32 0, i32 2 | |
store i32 %21, i32* %_capacity15, align 4, !tbaa !99 | |
%22 = bitcast i8** %newBuffer to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %22) #3 | |
store i32 0, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
cleanup: ; preds = %if.end9, %if.then | |
%23 = bitcast i32* %realCapacity to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %23) #3 | |
%cleanup.dest = load i32, i32* %cleanup.dest.slot, align 4 | |
switch i32 %cleanup.dest, label %unreachable [ | |
i32 0, label %cleanup.cont | |
i32 1, label %cleanup.cont | |
] | |
cleanup.cont: ; preds = %cleanup, %cleanup | |
ret void | |
unreachable: ; preds = %cleanup | |
unreachable | |
} | |
; Function Attrs: inlinehint mustprogress nounwind uwtable | |
define linkonce_odr dso_local i8* @_Z12MyStringCopyIcEPT_S1_PKS0_(i8* %dest, i8* %src) #11 comdat { | |
entry: | |
%dest.addr = alloca i8*, align 8 | |
%src.addr = alloca i8*, align 8 | |
%destStart = alloca i8*, align 8 | |
store i8* %dest, i8** %dest.addr, align 8, !tbaa !3 | |
store i8* %src, i8** %src.addr, align 8, !tbaa !3 | |
%0 = bitcast i8** %destStart to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %0) #3 | |
%1 = load i8*, i8** %dest.addr, align 8, !tbaa !3 | |
store i8* %1, i8** %destStart, align 8, !tbaa !3 | |
br label %while.cond | |
while.cond: ; preds = %while.body, %entry | |
%2 = load i8*, i8** %src.addr, align 8, !tbaa !3 | |
%incdec.ptr = getelementptr inbounds i8, i8* %2, i32 1 | |
store i8* %incdec.ptr, i8** %src.addr, align 8, !tbaa !3 | |
%3 = load i8, i8* %2, align 1, !tbaa !81 | |
%4 = load i8*, i8** %dest.addr, align 8, !tbaa !3 | |
%incdec.ptr1 = getelementptr inbounds i8, i8* %4, i32 1 | |
store i8* %incdec.ptr1, i8** %dest.addr, align 8, !tbaa !3 | |
store i8 %3, i8* %4, align 1, !tbaa !81 | |
%conv = sext i8 %3 to i32 | |
%cmp = icmp ne i32 %conv, 0 | |
br i1 %cmp, label %while.body, label %while.end | |
while.body: ; preds = %while.cond | |
br label %while.cond, !llvm.loop !102 | |
while.end: ; preds = %while.cond | |
%5 = load i8*, i8** %destStart, align 8, !tbaa !3 | |
%6 = bitcast i8** %destStart to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %6) #3 | |
ret i8* %5 | |
} | |
; Function Attrs: nobuiltin allocsize(0) | |
declare dso_local nonnull i8* @_Znam(i64) #12 | |
; Function Attrs: nobuiltin nounwind | |
declare dso_local void @_ZdaPv(i8*) #13 | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CPairEEC2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this) unnamed_addr #1 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.0*, align 8 | |
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.0* %this1 to %class.CRecordVector* | |
call void @_ZN13CRecordVectorIPvEC2Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0) | |
%1 = bitcast %class.CObjectVector.0* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorIN9NWildcard5CPairEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !71 | |
ret void | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN13CRecordVectorIPvEC2Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %this) unnamed_addr #1 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CRecordVector*, align 8 | |
store %class.CRecordVector* %this, %class.CRecordVector** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CRecordVector*, %class.CRecordVector** %this.addr, align 8 | |
%0 = bitcast %class.CRecordVector* %this1 to %class.CBaseRecordVector* | |
call void @_ZN17CBaseRecordVectorC2Em(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i64 8) | |
%1 = bitcast %class.CRecordVector* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CRecordVectorIPvE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !71 | |
ret void | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CObjectVector.0*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.0* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorIN9NWildcard5CPairEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !71 | |
%1 = bitcast %class.CObjectVector.0* %this1 to %class.CBaseRecordVector* | |
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%2 = bitcast %class.CObjectVector.0* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #3 | |
ret void | |
lpad: ; preds = %entry | |
%3 = landingpad { i8*, i32 } | |
catch i8* null | |
%4 = extractvalue { i8*, i32 } %3, 0 | |
store i8* %4, i8** %exn.slot, align 8 | |
%5 = extractvalue { i8*, i32 } %3, 1 | |
store i32 %5, i32* %ehselector.slot, align 4 | |
%6 = bitcast %class.CObjectVector.0* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #3 | |
br label %terminate.handler | |
terminate.handler: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
call void @__clang_call_terminate(i8* %exn) #17 | |
unreachable | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CPairEED0Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.0*, align 8 | |
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8 | |
call void @_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this1) #3 | |
%0 = bitcast %class.CObjectVector.0* %this1 to i8* | |
call void @_ZdlPv(i8* %0) #16 | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CPairEE6DeleteEii(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #5 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.0*, align 8 | |
%index.addr = alloca i32, align 4 | |
%num.addr = alloca i32, align 4 | |
%i = alloca i32, align 4 | |
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !3 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !15 | |
store i32 %num, i32* %num.addr, align 4, !tbaa !15 | |
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.0* %this1 to %class.CBaseRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr) | |
%2 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #3 | |
store i32 0, i32* %i, align 4, !tbaa !15 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %entry | |
%3 = load i32, i32* %i, align 4, !tbaa !15 | |
%4 = load i32, i32* %num.addr, align 4, !tbaa !15 | |
%cmp = icmp slt i32 %3, %4 | |
br i1 %cmp, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
%5 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #3 | |
br label %for.end | |
for.body: ; preds = %for.cond | |
%6 = bitcast %class.CObjectVector.0* %this1 to %class.CBaseRecordVector* | |
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3 | |
%7 = load i8*, i8** %_items, align 8, !tbaa !77 | |
%8 = bitcast i8* %7 to i8** | |
%9 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%10 = load i32, i32* %i, align 4, !tbaa !15 | |
%add = add nsw i32 %9, %10 | |
%idxprom = sext i32 %add to i64 | |
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom | |
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !3 | |
%12 = bitcast i8* %11 to %"struct.NWildcard::CPair"* | |
%isnull = icmp eq %"struct.NWildcard::CPair"* %12, null | |
br i1 %isnull, label %delete.end, label %delete.notnull | |
delete.notnull: ; preds = %for.body | |
call void @_ZN9NWildcard5CPairD2Ev(%"struct.NWildcard::CPair"* nonnull align 8 dereferenceable(136) %12) #3 | |
%13 = bitcast %"struct.NWildcard::CPair"* %12 to i8* | |
call void @_ZdlPv(i8* %13) #16 | |
br label %delete.end | |
delete.end: ; preds = %delete.notnull, %for.body | |
br label %for.inc | |
for.inc: ; preds = %delete.end | |
%14 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc = add nsw i32 %14, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !15 | |
br label %for.cond, !llvm.loop !103 | |
for.end: ; preds = %for.cond.cleanup | |
%15 = bitcast %class.CObjectVector.0* %this1 to %class.CRecordVector* | |
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector* | |
%17 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%18 = load i32, i32* %num.addr, align 4, !tbaa !15 | |
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18) | |
ret void | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN17CBaseRecordVectorC2Em(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %this, i64 %itemSize) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CBaseRecordVector*, align 8 | |
%itemSize.addr = alloca i64, align 8 | |
store %class.CBaseRecordVector* %this, %class.CBaseRecordVector** %this.addr, align 8, !tbaa !3 | |
store i64 %itemSize, i64* %itemSize.addr, align 8, !tbaa !104 | |
%this1 = load %class.CBaseRecordVector*, %class.CBaseRecordVector** %this.addr, align 8 | |
%0 = bitcast %class.CBaseRecordVector* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV17CBaseRecordVector, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !71 | |
%_capacity = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 1 | |
store i32 0, i32* %_capacity, align 8, !tbaa !105 | |
%_size = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 2 | |
store i32 0, i32* %_size, align 4, !tbaa !66 | |
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 3 | |
store i8* null, i8** %_items, align 8, !tbaa !77 | |
%_itemSize = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 4 | |
%1 = load i64, i64* %itemSize.addr, align 8, !tbaa !104 | |
store i64 %1, i64* %_itemSize, align 8, !tbaa !106 | |
ret void | |
} | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CRecordVectorIPvED0Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CRecordVector*, align 8 | |
store %class.CRecordVector* %this, %class.CRecordVector** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CRecordVector*, %class.CRecordVector** %this.addr, align 8 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %this1) #3 | |
%0 = bitcast %class.CRecordVector* %this1 to i8* | |
call void @_ZdlPv(i8* %0) #16 | |
ret void | |
} | |
declare dso_local void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32), i32, i32) unnamed_addr #4 | |
; Function Attrs: nounwind | |
declare dso_local void @_ZN17CBaseRecordVectorD1Ev(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32)) unnamed_addr #7 | |
; Function Attrs: nounwind | |
declare dso_local void @_ZN17CBaseRecordVectorD0Ev(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32)) unnamed_addr #7 | |
; Function Attrs: nobuiltin nounwind | |
declare dso_local void @_ZdlPv(i8*) #13 | |
declare dso_local void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32)) #4 | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %this, i32 %index, i32* nonnull align 4 dereferenceable(4) %num) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CBaseRecordVector*, align 8 | |
%index.addr = alloca i32, align 4 | |
%num.addr = alloca i32*, align 8 | |
store %class.CBaseRecordVector* %this, %class.CBaseRecordVector** %this.addr, align 8, !tbaa !3 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !15 | |
store i32* %num, i32** %num.addr, align 8, !tbaa !3 | |
%this1 = load %class.CBaseRecordVector*, %class.CBaseRecordVector** %this.addr, align 8 | |
%0 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%1 = load i32*, i32** %num.addr, align 8, !tbaa !3 | |
%2 = load i32, i32* %1, align 4, !tbaa !15 | |
%add = add nsw i32 %0, %2 | |
%_size = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 2 | |
%3 = load i32, i32* %_size, align 4, !tbaa !66 | |
%cmp = icmp sgt i32 %add, %3 | |
br i1 %cmp, label %if.then, label %if.end | |
if.then: ; preds = %entry | |
%_size2 = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 2 | |
%4 = load i32, i32* %_size2, align 4, !tbaa !66 | |
%5 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%sub = sub nsw i32 %4, %5 | |
%6 = load i32*, i32** %num.addr, align 8, !tbaa !3 | |
store i32 %sub, i32* %6, align 4, !tbaa !15 | |
br label %if.end | |
if.end: ; preds = %if.then, %entry | |
ret void | |
} | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN9NWildcard5CPairD2Ev(%"struct.NWildcard::CPair"* nonnull align 8 dereferenceable(136) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %"struct.NWildcard::CPair"*, align 8 | |
store %"struct.NWildcard::CPair"* %this, %"struct.NWildcard::CPair"** %this.addr, align 8, !tbaa !3 | |
%this1 = load %"struct.NWildcard::CPair"*, %"struct.NWildcard::CPair"** %this.addr, align 8 | |
%Head = getelementptr inbounds %"struct.NWildcard::CPair", %"struct.NWildcard::CPair"* %this1, i32 0, i32 1 | |
call void @_ZN9NWildcard11CCensorNodeD2Ev(%"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120) %Head) #3 | |
%Prefix = getelementptr inbounds %"struct.NWildcard::CPair", %"struct.NWildcard::CPair"* %this1, i32 0, i32 0 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix) #3 | |
ret void | |
} | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN9NWildcard11CCensorNodeD2Ev(%"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %"class.NWildcard::CCensorNode"*, align 8 | |
store %"class.NWildcard::CCensorNode"* %this, %"class.NWildcard::CCensorNode"** %this.addr, align 8, !tbaa !3 | |
%this1 = load %"class.NWildcard::CCensorNode"*, %"class.NWildcard::CCensorNode"** %this.addr, align 8 | |
%ExcludeItems = getelementptr inbounds %"class.NWildcard::CCensorNode", %"class.NWildcard::CCensorNode"* %this1, i32 0, i32 4 | |
call void @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %ExcludeItems) #3 | |
%IncludeItems = getelementptr inbounds %"class.NWildcard::CCensorNode", %"class.NWildcard::CCensorNode"* %this1, i32 0, i32 3 | |
call void @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %IncludeItems) #3 | |
%SubNodes = getelementptr inbounds %"class.NWildcard::CCensorNode", %"class.NWildcard::CCensorNode"* %this1, i32 0, i32 2 | |
call void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev(%class.CObjectVector.7* nonnull align 8 dereferenceable(32) %SubNodes) #3 | |
%Name = getelementptr inbounds %"class.NWildcard::CCensorNode", %"class.NWildcard::CCensorNode"* %this1, i32 0, i32 1 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #3 | |
ret void | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CObjectVector.8*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %class.CObjectVector.8* %this, %class.CObjectVector.8** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CObjectVector.8*, %class.CObjectVector.8** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.8* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorIN9NWildcard5CItemEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !71 | |
%1 = bitcast %class.CObjectVector.8* %this1 to %class.CBaseRecordVector* | |
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%2 = bitcast %class.CObjectVector.8* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #3 | |
ret void | |
lpad: ; preds = %entry | |
%3 = landingpad { i8*, i32 } | |
catch i8* null | |
%4 = extractvalue { i8*, i32 } %3, 0 | |
store i8* %4, i8** %exn.slot, align 8 | |
%5 = extractvalue { i8*, i32 } %3, 1 | |
store i32 %5, i32* %ehselector.slot, align 4 | |
%6 = bitcast %class.CObjectVector.8* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #3 | |
br label %terminate.handler | |
terminate.handler: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
call void @__clang_call_terminate(i8* %exn) #17 | |
unreachable | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev(%class.CObjectVector.7* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CObjectVector.7*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %class.CObjectVector.7* %this, %class.CObjectVector.7** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CObjectVector.7*, %class.CObjectVector.7** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.7* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorIN9NWildcard11CCensorNodeEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !71 | |
%1 = bitcast %class.CObjectVector.7* %this1 to %class.CBaseRecordVector* | |
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%2 = bitcast %class.CObjectVector.7* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #3 | |
ret void | |
lpad: ; preds = %entry | |
%3 = landingpad { i8*, i32 } | |
catch i8* null | |
%4 = extractvalue { i8*, i32 } %3, 0 | |
store i8* %4, i8** %exn.slot, align 8 | |
%5 = extractvalue { i8*, i32 } %3, 1 | |
store i32 %5, i32* %ehselector.slot, align 4 | |
%6 = bitcast %class.CObjectVector.7* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #3 | |
br label %terminate.handler | |
terminate.handler: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
call void @__clang_call_terminate(i8* %exn) #17 | |
unreachable | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CItemEED0Ev(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.8*, align 8 | |
store %class.CObjectVector.8* %this, %class.CObjectVector.8** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CObjectVector.8*, %class.CObjectVector.8** %this.addr, align 8 | |
call void @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %this1) #3 | |
%0 = bitcast %class.CObjectVector.8* %this1 to i8* | |
call void @_ZdlPv(i8* %0) #16 | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CItemEE6DeleteEii(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #5 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.8*, align 8 | |
%index.addr = alloca i32, align 4 | |
%num.addr = alloca i32, align 4 | |
%i = alloca i32, align 4 | |
store %class.CObjectVector.8* %this, %class.CObjectVector.8** %this.addr, align 8, !tbaa !3 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !15 | |
store i32 %num, i32* %num.addr, align 4, !tbaa !15 | |
%this1 = load %class.CObjectVector.8*, %class.CObjectVector.8** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.8* %this1 to %class.CBaseRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr) | |
%2 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #3 | |
store i32 0, i32* %i, align 4, !tbaa !15 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %entry | |
%3 = load i32, i32* %i, align 4, !tbaa !15 | |
%4 = load i32, i32* %num.addr, align 4, !tbaa !15 | |
%cmp = icmp slt i32 %3, %4 | |
br i1 %cmp, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
%5 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #3 | |
br label %for.end | |
for.body: ; preds = %for.cond | |
%6 = bitcast %class.CObjectVector.8* %this1 to %class.CBaseRecordVector* | |
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3 | |
%7 = load i8*, i8** %_items, align 8, !tbaa !77 | |
%8 = bitcast i8* %7 to i8** | |
%9 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%10 = load i32, i32* %i, align 4, !tbaa !15 | |
%add = add nsw i32 %9, %10 | |
%idxprom = sext i32 %add to i64 | |
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom | |
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !3 | |
%12 = bitcast i8* %11 to %"struct.NWildcard::CItem"* | |
%isnull = icmp eq %"struct.NWildcard::CItem"* %12, null | |
br i1 %isnull, label %delete.end, label %delete.notnull | |
delete.notnull: ; preds = %for.body | |
call void @_ZN9NWildcard5CItemD2Ev(%"struct.NWildcard::CItem"* nonnull align 8 dereferenceable(35) %12) #3 | |
%13 = bitcast %"struct.NWildcard::CItem"* %12 to i8* | |
call void @_ZdlPv(i8* %13) #16 | |
br label %delete.end | |
delete.end: ; preds = %delete.notnull, %for.body | |
br label %for.inc | |
for.inc: ; preds = %delete.end | |
%14 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc = add nsw i32 %14, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !15 | |
br label %for.cond, !llvm.loop !107 | |
for.end: ; preds = %for.cond.cleanup | |
%15 = bitcast %class.CObjectVector.8* %this1 to %class.CRecordVector* | |
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector* | |
%17 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%18 = load i32, i32* %num.addr, align 4, !tbaa !15 | |
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18) | |
ret void | |
} | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN9NWildcard5CItemD2Ev(%"struct.NWildcard::CItem"* nonnull align 8 dereferenceable(35) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %"struct.NWildcard::CItem"*, align 8 | |
store %"struct.NWildcard::CItem"* %this, %"struct.NWildcard::CItem"** %this.addr, align 8, !tbaa !3 | |
%this1 = load %"struct.NWildcard::CItem"*, %"struct.NWildcard::CItem"** %this.addr, align 8 | |
%PathParts = getelementptr inbounds %"struct.NWildcard::CItem", %"struct.NWildcard::CItem"* %this1, i32 0, i32 0 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PathParts) #3 | |
ret void | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED0Ev(%class.CObjectVector.7* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.7*, align 8 | |
store %class.CObjectVector.7* %this, %class.CObjectVector.7** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CObjectVector.7*, %class.CObjectVector.7** %this.addr, align 8 | |
call void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev(%class.CObjectVector.7* nonnull align 8 dereferenceable(32) %this1) #3 | |
%0 = bitcast %class.CObjectVector.7* %this1 to i8* | |
call void @_ZdlPv(i8* %0) #16 | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEE6DeleteEii(%class.CObjectVector.7* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #5 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.7*, align 8 | |
%index.addr = alloca i32, align 4 | |
%num.addr = alloca i32, align 4 | |
%i = alloca i32, align 4 | |
store %class.CObjectVector.7* %this, %class.CObjectVector.7** %this.addr, align 8, !tbaa !3 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !15 | |
store i32 %num, i32* %num.addr, align 4, !tbaa !15 | |
%this1 = load %class.CObjectVector.7*, %class.CObjectVector.7** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.7* %this1 to %class.CBaseRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr) | |
%2 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #3 | |
store i32 0, i32* %i, align 4, !tbaa !15 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %entry | |
%3 = load i32, i32* %i, align 4, !tbaa !15 | |
%4 = load i32, i32* %num.addr, align 4, !tbaa !15 | |
%cmp = icmp slt i32 %3, %4 | |
br i1 %cmp, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
%5 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #3 | |
br label %for.end | |
for.body: ; preds = %for.cond | |
%6 = bitcast %class.CObjectVector.7* %this1 to %class.CBaseRecordVector* | |
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3 | |
%7 = load i8*, i8** %_items, align 8, !tbaa !77 | |
%8 = bitcast i8* %7 to i8** | |
%9 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%10 = load i32, i32* %i, align 4, !tbaa !15 | |
%add = add nsw i32 %9, %10 | |
%idxprom = sext i32 %add to i64 | |
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom | |
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !3 | |
%12 = bitcast i8* %11 to %"class.NWildcard::CCensorNode"* | |
%isnull = icmp eq %"class.NWildcard::CCensorNode"* %12, null | |
br i1 %isnull, label %delete.end, label %delete.notnull | |
delete.notnull: ; preds = %for.body | |
call void @_ZN9NWildcard11CCensorNodeD2Ev(%"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120) %12) #3 | |
%13 = bitcast %"class.NWildcard::CCensorNode"* %12 to i8* | |
call void @_ZdlPv(i8* %13) #16 | |
br label %delete.end | |
delete.end: ; preds = %delete.notnull, %for.body | |
br label %for.inc | |
for.inc: ; preds = %delete.end | |
%14 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc = add nsw i32 %14, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !15 | |
br label %for.cond, !llvm.loop !108 | |
for.end: ; preds = %for.cond.cleanup | |
%15 = bitcast %class.CObjectVector.7* %this1 to %class.CRecordVector* | |
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector* | |
%17 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%18 = load i32, i32* %num.addr, align 4, !tbaa !15 | |
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18) | |
ret void | |
} | |
declare dso_local zeroext i1 @_Z23DoesNameContainWildCardRK11CStringBaseIwE(%class.CStringBase* nonnull align 8 dereferenceable(16)) #4 | |
declare dso_local void @_ZN9NWildcard7CCensor7AddItemEbRK11CStringBaseIwEb(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32), i1 zeroext, %class.CStringBase* nonnull align 8 dereferenceable(16), i1 zeroext) #4 | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorI8CDirItemEC2Ev(%class.CObjectVector.5* nonnull align 8 dereferenceable(32) %this) unnamed_addr #1 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.5*, align 8 | |
store %class.CObjectVector.5* %this, %class.CObjectVector.5** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CObjectVector.5*, %class.CObjectVector.5** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.5* %this1 to %class.CRecordVector* | |
call void @_ZN13CRecordVectorIPvEC2Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0) | |
%1 = bitcast %class.CObjectVector.5* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorI8CDirItemE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !71 | |
ret void | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorI8CDirItemED2Ev(%class.CObjectVector.5* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CObjectVector.5*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %class.CObjectVector.5* %this, %class.CObjectVector.5** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CObjectVector.5*, %class.CObjectVector.5** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.5* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorI8CDirItemE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !71 | |
%1 = bitcast %class.CObjectVector.5* %this1 to %class.CBaseRecordVector* | |
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%2 = bitcast %class.CObjectVector.5* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #3 | |
ret void | |
lpad: ; preds = %entry | |
%3 = landingpad { i8*, i32 } | |
catch i8* null | |
%4 = extractvalue { i8*, i32 } %3, 0 | |
store i8* %4, i8** %exn.slot, align 8 | |
%5 = extractvalue { i8*, i32 } %3, 1 | |
store i32 %5, i32* %ehselector.slot, align 4 | |
%6 = bitcast %class.CObjectVector.5* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #3 | |
br label %terminate.handler | |
terminate.handler: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
call void @__clang_call_terminate(i8* %exn) #17 | |
unreachable | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorI8CDirItemED0Ev(%class.CObjectVector.5* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.5*, align 8 | |
store %class.CObjectVector.5* %this, %class.CObjectVector.5** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CObjectVector.5*, %class.CObjectVector.5** %this.addr, align 8 | |
call void @_ZN13CObjectVectorI8CDirItemED2Ev(%class.CObjectVector.5* nonnull align 8 dereferenceable(32) %this1) #3 | |
%0 = bitcast %class.CObjectVector.5* %this1 to i8* | |
call void @_ZdlPv(i8* %0) #16 | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorI8CDirItemE6DeleteEii(%class.CObjectVector.5* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #5 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.5*, align 8 | |
%index.addr = alloca i32, align 4 | |
%num.addr = alloca i32, align 4 | |
%i = alloca i32, align 4 | |
store %class.CObjectVector.5* %this, %class.CObjectVector.5** %this.addr, align 8, !tbaa !3 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !15 | |
store i32 %num, i32* %num.addr, align 4, !tbaa !15 | |
%this1 = load %class.CObjectVector.5*, %class.CObjectVector.5** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.5* %this1 to %class.CBaseRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr) | |
%2 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #3 | |
store i32 0, i32* %i, align 4, !tbaa !15 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %entry | |
%3 = load i32, i32* %i, align 4, !tbaa !15 | |
%4 = load i32, i32* %num.addr, align 4, !tbaa !15 | |
%cmp = icmp slt i32 %3, %4 | |
br i1 %cmp, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
%5 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #3 | |
br label %for.end | |
for.body: ; preds = %for.cond | |
%6 = bitcast %class.CObjectVector.5* %this1 to %class.CBaseRecordVector* | |
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3 | |
%7 = load i8*, i8** %_items, align 8, !tbaa !77 | |
%8 = bitcast i8* %7 to i8** | |
%9 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%10 = load i32, i32* %i, align 4, !tbaa !15 | |
%add = add nsw i32 %9, %10 | |
%idxprom = sext i32 %add to i64 | |
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom | |
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !3 | |
%12 = bitcast i8* %11 to %struct.CDirItem* | |
%isnull = icmp eq %struct.CDirItem* %12, null | |
br i1 %isnull, label %delete.end, label %delete.notnull | |
delete.notnull: ; preds = %for.body | |
call void @_ZN8CDirItemD2Ev(%struct.CDirItem* nonnull align 8 dereferenceable(60) %12) #3 | |
%13 = bitcast %struct.CDirItem* %12 to i8* | |
call void @_ZdlPv(i8* %13) #16 | |
br label %delete.end | |
delete.end: ; preds = %delete.notnull, %for.body | |
br label %for.inc | |
for.inc: ; preds = %delete.end | |
%14 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc = add nsw i32 %14, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !15 | |
br label %for.cond, !llvm.loop !109 | |
for.end: ; preds = %for.cond.cleanup | |
%15 = bitcast %class.CObjectVector.5* %this1 to %class.CRecordVector* | |
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector* | |
%17 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%18 = load i32, i32* %num.addr, align 4, !tbaa !15 | |
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18) | |
ret void | |
} | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN8CDirItemD2Ev(%struct.CDirItem* nonnull align 8 dereferenceable(60) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %struct.CDirItem*, align 8 | |
store %struct.CDirItem* %this, %struct.CDirItem** %this.addr, align 8, !tbaa !3 | |
%this1 = load %struct.CDirItem*, %struct.CDirItem** %this.addr, align 8 | |
%Name = getelementptr inbounds %struct.CDirItem, %struct.CDirItem* %this1, i32 0, i32 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #3 | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define linkonce_odr dso_local void @_ZN9CPropertyC2Ev(%struct.CProperty* nonnull align 8 dereferenceable(32) %this) unnamed_addr #9 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %struct.CProperty*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %struct.CProperty* %this, %struct.CProperty** %this.addr, align 8, !tbaa !3 | |
%this1 = load %struct.CProperty*, %struct.CProperty** %this.addr, align 8 | |
%Name = getelementptr inbounds %struct.CProperty, %struct.CProperty* %this1, i32 0, i32 0 | |
call void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) | |
%Value = getelementptr inbounds %struct.CProperty, %struct.CProperty* %this1, i32 0, i32 1 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Value) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
ret void | |
lpad: ; preds = %entry | |
%0 = landingpad { i8*, i32 } | |
cleanup | |
%1 = extractvalue { i8*, i32 } %0, 0 | |
store i8* %1, i8** %exn.slot, align 8 | |
%2 = extractvalue { i8*, i32 } %0, 1 | |
store i32 %2, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #3 | |
br label %eh.resume | |
eh.resume: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val2 | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local void @_ZNK11CStringBaseIwE4LeftEi(%class.CStringBase* noalias sret(%class.CStringBase) align 8 %agg.result, %class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32 %count) #5 comdat align 2 { | |
entry: | |
%result.ptr = alloca i8*, align 8 | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%count.addr = alloca i32, align 4 | |
%0 = bitcast %class.CStringBase* %agg.result to i8* | |
store i8* %0, i8** %result.ptr, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
store i32 %count, i32* %count.addr, align 4, !tbaa !15 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%1 = load i32, i32* %count.addr, align 4, !tbaa !15 | |
call void @_ZNK11CStringBaseIwE3MidEii(%class.CStringBase* sret(%class.CStringBase) align 8 %agg.result, %class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 0, i32 %1) | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local i32 @_ZN13CObjectVectorI9CPropertyE3AddERKS0_(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %this, %struct.CProperty* nonnull align 8 dereferenceable(32) %item) #5 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CObjectVector.1*, align 8 | |
%item.addr = alloca %struct.CProperty*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %class.CObjectVector.1* %this, %class.CObjectVector.1** %this.addr, align 8, !tbaa !3 | |
store %struct.CProperty* %item, %struct.CProperty** %item.addr, align 8, !tbaa !3 | |
%this1 = load %class.CObjectVector.1*, %class.CObjectVector.1** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.1* %this1 to %class.CRecordVector* | |
%call = call noalias nonnull i8* @_Znwm(i64 32) #19 | |
%1 = bitcast i8* %call to %struct.CProperty* | |
%2 = load %struct.CProperty*, %struct.CProperty** %item.addr, align 8, !tbaa !3 | |
invoke void @_ZN9CPropertyC2ERKS_(%struct.CProperty* nonnull align 8 dereferenceable(32) %1, %struct.CProperty* nonnull align 8 dereferenceable(32) %2) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%3 = bitcast %struct.CProperty* %1 to i8* | |
%call2 = call i32 @_ZN13CRecordVectorIPvE3AddES0_(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i8* %3) | |
ret i32 %call2 | |
lpad: ; preds = %entry | |
%4 = landingpad { i8*, i32 } | |
cleanup | |
%5 = extractvalue { i8*, i32 } %4, 0 | |
store i8* %5, i8** %exn.slot, align 8 | |
%6 = extractvalue { i8*, i32 } %4, 1 | |
store i32 %6, i32* %ehselector.slot, align 4 | |
call void @_ZdlPv(i8* %call) #16 | |
br label %eh.resume | |
eh.resume: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val3 | |
} | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN9CPropertyD2Ev(%struct.CProperty* nonnull align 8 dereferenceable(32) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %struct.CProperty*, align 8 | |
store %struct.CProperty* %this, %struct.CProperty** %this.addr, align 8, !tbaa !3 | |
%this1 = load %struct.CProperty*, %struct.CProperty** %this.addr, align 8 | |
%Value = getelementptr inbounds %struct.CProperty, %struct.CProperty* %this1, i32 0, i32 1 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Value) #3 | |
%Name = getelementptr inbounds %struct.CProperty, %struct.CProperty* %this1, i32 0, i32 0 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #3 | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local void @_ZNK11CStringBaseIwE3MidEii(%class.CStringBase* noalias sret(%class.CStringBase) align 8 %agg.result, %class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32 %startIndex, i32 %count) #5 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%result.ptr = alloca i8*, align 8 | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%startIndex.addr = alloca i32, align 4 | |
%count.addr = alloca i32, align 4 | |
%result = alloca %class.CStringBase, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
%i = alloca i32, align 4 | |
%0 = bitcast %class.CStringBase* %agg.result to i8* | |
store i8* %0, i8** %result.ptr, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
store i32 %startIndex, i32* %startIndex.addr, align 4, !tbaa !15 | |
store i32 %count, i32* %count.addr, align 4, !tbaa !15 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%1 = load i32, i32* %startIndex.addr, align 4, !tbaa !15 | |
%2 = load i32, i32* %count.addr, align 4, !tbaa !15 | |
%add = add nsw i32 %1, %2 | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%3 = load i32, i32* %_length, align 8, !tbaa !13 | |
%cmp = icmp sgt i32 %add, %3 | |
br i1 %cmp, label %if.then, label %if.end | |
if.then: ; preds = %entry | |
%_length2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%4 = load i32, i32* %_length2, align 8, !tbaa !13 | |
%5 = load i32, i32* %startIndex.addr, align 4, !tbaa !15 | |
%sub = sub nsw i32 %4, %5 | |
store i32 %sub, i32* %count.addr, align 4, !tbaa !15 | |
br label %if.end | |
if.end: ; preds = %if.then, %entry | |
%6 = load i32, i32* %startIndex.addr, align 4, !tbaa !15 | |
%cmp3 = icmp eq i32 %6, 0 | |
br i1 %cmp3, label %land.lhs.true, label %if.end8 | |
land.lhs.true: ; preds = %if.end | |
%7 = load i32, i32* %startIndex.addr, align 4, !tbaa !15 | |
%8 = load i32, i32* %count.addr, align 4, !tbaa !15 | |
%add4 = add nsw i32 %7, %8 | |
%_length5 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%9 = load i32, i32* %_length5, align 8, !tbaa !13 | |
%cmp6 = icmp eq i32 %add4, %9 | |
br i1 %cmp6, label %if.then7, label %if.end8 | |
if.then7: ; preds = %land.lhs.true | |
call void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %agg.result, %class.CStringBase* nonnull align 8 dereferenceable(16) %this1) | |
br label %return | |
if.end8: ; preds = %land.lhs.true, %if.end | |
%10 = bitcast %class.CStringBase* %result to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %10) #3 | |
call void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %result) | |
%11 = load i32, i32* %count.addr, align 4, !tbaa !15 | |
invoke void @_ZN11CStringBaseIwE11SetCapacityEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %result, i32 %11) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %if.end8 | |
%12 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %12) #3 | |
store i32 0, i32* %i, align 4, !tbaa !15 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %invoke.cont | |
%13 = load i32, i32* %i, align 4, !tbaa !15 | |
%14 = load i32, i32* %count.addr, align 4, !tbaa !15 | |
%cmp9 = icmp slt i32 %13, %14 | |
br i1 %cmp9, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
%15 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %15) #3 | |
br label %for.end | |
lpad: ; preds = %for.end, %if.end8 | |
%16 = landingpad { i8*, i32 } | |
cleanup | |
%17 = extractvalue { i8*, i32 } %16, 0 | |
store i8* %17, i8** %exn.slot, align 8 | |
%18 = extractvalue { i8*, i32 } %16, 1 | |
store i32 %18, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %result) #3 | |
%19 = bitcast %class.CStringBase* %result to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %19) #3 | |
br label %eh.resume | |
for.body: ; preds = %for.cond | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%20 = load i32*, i32** %_chars, align 8, !tbaa !10 | |
%21 = load i32, i32* %startIndex.addr, align 4, !tbaa !15 | |
%22 = load i32, i32* %i, align 4, !tbaa !15 | |
%add10 = add nsw i32 %21, %22 | |
%idxprom = sext i32 %add10 to i64 | |
%arrayidx = getelementptr inbounds i32, i32* %20, i64 %idxprom | |
%23 = load i32, i32* %arrayidx, align 4, !tbaa !57 | |
%_chars11 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %result, i32 0, i32 0 | |
%24 = load i32*, i32** %_chars11, align 8, !tbaa !10 | |
%25 = load i32, i32* %i, align 4, !tbaa !15 | |
%idxprom12 = sext i32 %25 to i64 | |
%arrayidx13 = getelementptr inbounds i32, i32* %24, i64 %idxprom12 | |
store i32 %23, i32* %arrayidx13, align 4, !tbaa !57 | |
br label %for.inc | |
for.inc: ; preds = %for.body | |
%26 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc = add nsw i32 %26, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !15 | |
br label %for.cond, !llvm.loop !110 | |
for.end: ; preds = %for.cond.cleanup | |
%_chars14 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %result, i32 0, i32 0 | |
%27 = load i32*, i32** %_chars14, align 8, !tbaa !10 | |
%28 = load i32, i32* %count.addr, align 4, !tbaa !15 | |
%idxprom15 = sext i32 %28 to i64 | |
%arrayidx16 = getelementptr inbounds i32, i32* %27, i64 %idxprom15 | |
store i32 0, i32* %arrayidx16, align 4, !tbaa !57 | |
%29 = load i32, i32* %count.addr, align 4, !tbaa !15 | |
%_length17 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %result, i32 0, i32 1 | |
store i32 %29, i32* %_length17, align 8, !tbaa !13 | |
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %agg.result, %class.CStringBase* nonnull align 8 dereferenceable(16) %result) | |
to label %invoke.cont18 unwind label %lpad | |
invoke.cont18: ; preds = %for.end | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %result) #3 | |
%30 = bitcast %class.CStringBase* %result to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %30) #3 | |
br label %return | |
return: ; preds = %invoke.cont18, %if.then7 | |
ret void | |
eh.resume: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val19 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val19 | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local void @_ZN11CStringBaseIwE11SetCapacityEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32 %newCapacity) #5 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%newCapacity.addr = alloca i32, align 4 | |
%realCapacity = alloca i32, align 4 | |
%cleanup.dest.slot = alloca i32, align 4 | |
%newBuffer = alloca i32*, align 8 | |
%i = alloca i32, align 4 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
store i32 %newCapacity, i32* %newCapacity.addr, align 4, !tbaa !15 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%0 = bitcast i32* %realCapacity to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3 | |
%1 = load i32, i32* %newCapacity.addr, align 4, !tbaa !15 | |
%add = add nsw i32 %1, 1 | |
store i32 %add, i32* %realCapacity, align 4, !tbaa !15 | |
%2 = load i32, i32* %realCapacity, align 4, !tbaa !15 | |
%_capacity = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 2 | |
%3 = load i32, i32* %_capacity, align 4, !tbaa !14 | |
%cmp = icmp eq i32 %2, %3 | |
br i1 %cmp, label %if.then, label %if.end | |
if.then: ; preds = %entry | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
if.end: ; preds = %entry | |
%4 = bitcast i32** %newBuffer to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %4) #3 | |
%5 = load i32, i32* %realCapacity, align 4, !tbaa !15 | |
%conv = sext i32 %5 to i64 | |
%6 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %conv, i64 4) | |
%7 = extractvalue { i64, i1 } %6, 1 | |
%8 = extractvalue { i64, i1 } %6, 0 | |
%9 = select i1 %7, i64 -1, i64 %8 | |
%call = call noalias nonnull i8* @_Znam(i64 %9) #19 | |
%10 = bitcast i8* %call to i32* | |
store i32* %10, i32** %newBuffer, align 8, !tbaa !3 | |
%_capacity2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 2 | |
%11 = load i32, i32* %_capacity2, align 4, !tbaa !14 | |
%cmp3 = icmp sgt i32 %11, 0 | |
br i1 %cmp3, label %if.then4, label %if.end9 | |
if.then4: ; preds = %if.end | |
%12 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %12) #3 | |
store i32 0, i32* %i, align 4, !tbaa !15 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %if.then4 | |
%13 = load i32, i32* %i, align 4, !tbaa !15 | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%14 = load i32, i32* %_length, align 8, !tbaa !13 | |
%cmp5 = icmp slt i32 %13, %14 | |
br i1 %cmp5, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
store i32 2, i32* %cleanup.dest.slot, align 4 | |
%15 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %15) #3 | |
br label %for.end | |
for.body: ; preds = %for.cond | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%16 = load i32*, i32** %_chars, align 8, !tbaa !10 | |
%17 = load i32, i32* %i, align 4, !tbaa !15 | |
%idxprom = sext i32 %17 to i64 | |
%arrayidx = getelementptr inbounds i32, i32* %16, i64 %idxprom | |
%18 = load i32, i32* %arrayidx, align 4, !tbaa !57 | |
%19 = load i32*, i32** %newBuffer, align 8, !tbaa !3 | |
%20 = load i32, i32* %i, align 4, !tbaa !15 | |
%idxprom6 = sext i32 %20 to i64 | |
%arrayidx7 = getelementptr inbounds i32, i32* %19, i64 %idxprom6 | |
store i32 %18, i32* %arrayidx7, align 4, !tbaa !57 | |
br label %for.inc | |
for.inc: ; preds = %for.body | |
%21 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc = add nsw i32 %21, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !15 | |
br label %for.cond, !llvm.loop !111 | |
for.end: ; preds = %for.cond.cleanup | |
%_chars8 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%22 = load i32*, i32** %_chars8, align 8, !tbaa !10 | |
%isnull = icmp eq i32* %22, null | |
br i1 %isnull, label %delete.end, label %delete.notnull | |
delete.notnull: ; preds = %for.end | |
%23 = bitcast i32* %22 to i8* | |
call void @_ZdaPv(i8* %23) #16 | |
br label %delete.end | |
delete.end: ; preds = %delete.notnull, %for.end | |
br label %if.end9 | |
if.end9: ; preds = %delete.end, %if.end | |
%24 = load i32*, i32** %newBuffer, align 8, !tbaa !3 | |
%_chars10 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
store i32* %24, i32** %_chars10, align 8, !tbaa !10 | |
%_chars11 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%25 = load i32*, i32** %_chars11, align 8, !tbaa !10 | |
%_length12 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%26 = load i32, i32* %_length12, align 8, !tbaa !13 | |
%idxprom13 = sext i32 %26 to i64 | |
%arrayidx14 = getelementptr inbounds i32, i32* %25, i64 %idxprom13 | |
store i32 0, i32* %arrayidx14, align 4, !tbaa !57 | |
%27 = load i32, i32* %realCapacity, align 4, !tbaa !15 | |
%_capacity15 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 2 | |
store i32 %27, i32* %_capacity15, align 4, !tbaa !14 | |
%28 = bitcast i32** %newBuffer to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %28) #3 | |
store i32 0, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
cleanup: ; preds = %if.end9, %if.then | |
%29 = bitcast i32* %realCapacity to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %29) #3 | |
%cleanup.dest = load i32, i32* %cleanup.dest.slot, align 4 | |
switch i32 %cleanup.dest, label %unreachable [ | |
i32 0, label %cleanup.cont | |
i32 1, label %cleanup.cont | |
] | |
cleanup.cont: ; preds = %cleanup, %cleanup | |
ret void | |
unreachable: ; preds = %cleanup | |
unreachable | |
} | |
; Function Attrs: nofree nosync nounwind readnone speculatable willreturn | |
declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #14 | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local i32 @_ZN13CRecordVectorIPvE3AddES0_(%class.CRecordVector* nonnull align 8 dereferenceable(32) %this, i8* %item) #5 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CRecordVector*, align 8 | |
%item.addr = alloca i8*, align 8 | |
store %class.CRecordVector* %this, %class.CRecordVector** %this.addr, align 8, !tbaa !3 | |
store i8* %item, i8** %item.addr, align 8, !tbaa !3 | |
%this1 = load %class.CRecordVector*, %class.CRecordVector** %this.addr, align 8 | |
%0 = bitcast %class.CRecordVector* %this1 to %class.CBaseRecordVector* | |
call void @_ZN17CBaseRecordVector18ReserveOnePositionEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0) | |
%1 = load i8*, i8** %item.addr, align 8, !tbaa !3 | |
%2 = bitcast %class.CRecordVector* %this1 to %class.CBaseRecordVector* | |
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %2, i32 0, i32 3 | |
%3 = load i8*, i8** %_items, align 8, !tbaa !77 | |
%4 = bitcast i8* %3 to i8** | |
%5 = bitcast %class.CRecordVector* %this1 to %class.CBaseRecordVector* | |
%_size = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %5, i32 0, i32 2 | |
%6 = load i32, i32* %_size, align 4, !tbaa !66 | |
%idxprom = sext i32 %6 to i64 | |
%arrayidx = getelementptr inbounds i8*, i8** %4, i64 %idxprom | |
store i8* %1, i8** %arrayidx, align 8, !tbaa !3 | |
%7 = bitcast %class.CRecordVector* %this1 to %class.CBaseRecordVector* | |
%_size2 = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %7, i32 0, i32 2 | |
%8 = load i32, i32* %_size2, align 4, !tbaa !66 | |
%inc = add nsw i32 %8, 1 | |
store i32 %inc, i32* %_size2, align 4, !tbaa !66 | |
ret i32 %8 | |
} | |
; Function Attrs: nobuiltin allocsize(0) | |
declare dso_local nonnull i8* @_Znwm(i64) #12 | |
; Function Attrs: inlinehint uwtable | |
define linkonce_odr dso_local void @_ZN9CPropertyC2ERKS_(%struct.CProperty* nonnull align 8 dereferenceable(32) %this, %struct.CProperty* nonnull align 8 dereferenceable(32) %0) unnamed_addr #9 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %struct.CProperty*, align 8 | |
%.addr = alloca %struct.CProperty*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %struct.CProperty* %this, %struct.CProperty** %this.addr, align 8, !tbaa !3 | |
store %struct.CProperty* %0, %struct.CProperty** %.addr, align 8, !tbaa !3 | |
%this1 = load %struct.CProperty*, %struct.CProperty** %this.addr, align 8 | |
%Name = getelementptr inbounds %struct.CProperty, %struct.CProperty* %this1, i32 0, i32 0 | |
%1 = load %struct.CProperty*, %struct.CProperty** %.addr, align 8, !tbaa !3 | |
%Name2 = getelementptr inbounds %struct.CProperty, %struct.CProperty* %1, i32 0, i32 0 | |
call void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name, %class.CStringBase* nonnull align 8 dereferenceable(16) %Name2) | |
%Value = getelementptr inbounds %struct.CProperty, %struct.CProperty* %this1, i32 0, i32 1 | |
%2 = load %struct.CProperty*, %struct.CProperty** %.addr, align 8, !tbaa !3 | |
%Value3 = getelementptr inbounds %struct.CProperty, %struct.CProperty* %2, i32 0, i32 1 | |
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Value, %class.CStringBase* nonnull align 8 dereferenceable(16) %Value3) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
ret void | |
lpad: ; preds = %entry | |
%3 = landingpad { i8*, i32 } | |
cleanup | |
%4 = extractvalue { i8*, i32 } %3, 0 | |
store i8* %4, i8** %exn.slot, align 8 | |
%5 = extractvalue { i8*, i32 } %3, 1 | |
store i32 %5, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #3 | |
br label %eh.resume | |
eh.resume: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val4 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val4 | |
} | |
declare dso_local void @_ZN17CBaseRecordVector18ReserveOnePositionEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32)) #4 | |
; Function Attrs: argmemonly nofree nounwind willreturn | |
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #15 | |
; Function Attrs: inlinehint uwtable | |
define linkonce_odr dso_local void @_ZN21CUpdateArchiveCommandC2Ev(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %this) unnamed_addr #9 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %struct.CUpdateArchiveCommand*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %struct.CUpdateArchiveCommand* %this, %struct.CUpdateArchiveCommand** %this.addr, align 8, !tbaa !3 | |
%this1 = load %struct.CUpdateArchiveCommand*, %struct.CUpdateArchiveCommand** %this.addr, align 8 | |
%UserArchivePath = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %this1, i32 0, i32 0 | |
call void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %UserArchivePath) | |
%ArchivePath = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %this1, i32 0, i32 1 | |
invoke void @_ZN12CArchivePathC2Ev(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %ArchivePath) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%ActionSet = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %this1, i32 0, i32 2 | |
ret void | |
lpad: ; preds = %entry | |
%0 = landingpad { i8*, i32 } | |
cleanup | |
%1 = extractvalue { i8*, i32 } %0, 0 | |
store i8* %1, i8** %exn.slot, align 8 | |
%2 = extractvalue { i8*, i32 } %0, 1 | |
store i32 %2, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %UserArchivePath) #3 | |
br label %eh.resume | |
eh.resume: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val2 | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local i32 @_ZN13CObjectVectorI21CUpdateArchiveCommandE3AddERKS0_(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %this, %struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %item) #5 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CObjectVector.2*, align 8 | |
%item.addr = alloca %struct.CUpdateArchiveCommand*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %class.CObjectVector.2* %this, %class.CObjectVector.2** %this.addr, align 8, !tbaa !3 | |
store %struct.CUpdateArchiveCommand* %item, %struct.CUpdateArchiveCommand** %item.addr, align 8, !tbaa !3 | |
%this1 = load %class.CObjectVector.2*, %class.CObjectVector.2** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.2* %this1 to %class.CRecordVector* | |
%call = call noalias nonnull i8* @_Znwm(i64 168) #19 | |
%1 = bitcast i8* %call to %struct.CUpdateArchiveCommand* | |
%2 = load %struct.CUpdateArchiveCommand*, %struct.CUpdateArchiveCommand** %item.addr, align 8, !tbaa !3 | |
invoke void @_ZN21CUpdateArchiveCommandC2ERKS_(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %1, %struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %2) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%3 = bitcast %struct.CUpdateArchiveCommand* %1 to i8* | |
%call2 = call i32 @_ZN13CRecordVectorIPvE3AddES0_(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i8* %3) | |
ret i32 %call2 | |
lpad: ; preds = %entry | |
%4 = landingpad { i8*, i32 } | |
cleanup | |
%5 = extractvalue { i8*, i32 } %4, 0 | |
store i8* %5, i8** %exn.slot, align 8 | |
%6 = extractvalue { i8*, i32 } %4, 1 | |
store i32 %6, i32* %ehselector.slot, align 4 | |
call void @_ZdlPv(i8* %call) #16 | |
br label %eh.resume | |
eh.resume: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val3 | |
} | |
; Function Attrs: mustprogress uwtable | |
define internal void @_ZL24ParseUpdateCommandStringR14CUpdateOptionsRK13CObjectVectorI11CStringBaseIwEERKN14NUpdateArchive10CActionSetE(%struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %options, %class.CObjectVector* nonnull align 8 dereferenceable(32) %updatePostStrings, %"struct.NUpdateArchive::CActionSet"* nonnull align 4 dereferenceable(28) %defaultActionSet) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%options.addr = alloca %struct.CUpdateOptions*, align 8 | |
%updatePostStrings.addr = alloca %class.CObjectVector*, align 8 | |
%defaultActionSet.addr = alloca %"struct.NUpdateArchive::CActionSet"*, align 8 | |
%i = alloca i32, align 4 | |
%updateString = alloca %class.CStringBase*, align 8 | |
%actionSet = alloca %"struct.NUpdateArchive::CActionSet", align 4 | |
%postString = alloca %class.CStringBase, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
%uc = alloca %struct.CUpdateArchiveCommand, align 8 | |
%archivePath = alloca %class.CStringBase, align 8 | |
store %struct.CUpdateOptions* %options, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3 | |
store %class.CObjectVector* %updatePostStrings, %class.CObjectVector** %updatePostStrings.addr, align 8, !tbaa !3 | |
store %"struct.NUpdateArchive::CActionSet"* %defaultActionSet, %"struct.NUpdateArchive::CActionSet"** %defaultActionSet.addr, align 8, !tbaa !3 | |
%0 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3 | |
store i32 0, i32* %i, align 4, !tbaa !15 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %entry | |
%1 = load i32, i32* %i, align 4, !tbaa !15 | |
%2 = load %class.CObjectVector*, %class.CObjectVector** %updatePostStrings.addr, align 8, !tbaa !3 | |
%3 = bitcast %class.CObjectVector* %2 to %class.CBaseRecordVector* | |
%call = call i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %3) | |
%cmp = icmp slt i32 %1, %call | |
br i1 %cmp, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
%4 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %4) #3 | |
br label %for.end | |
for.body: ; preds = %for.cond | |
%5 = bitcast %class.CStringBase** %updateString to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %5) #3 | |
%6 = load %class.CObjectVector*, %class.CObjectVector** %updatePostStrings.addr, align 8, !tbaa !3 | |
%7 = load i32, i32* %i, align 4, !tbaa !15 | |
%call1 = call nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZNK13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %6, i32 %7) | |
store %class.CStringBase* %call1, %class.CStringBase** %updateString, align 8, !tbaa !3 | |
%8 = load %class.CStringBase*, %class.CStringBase** %updateString, align 8, !tbaa !3 | |
%9 = load i32*, i32** @kUpdateIgnoreItselfPostStringID, align 8, !tbaa !3 | |
%call2 = call i32 @_ZNK11CStringBaseIwE13CompareNoCaseEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %8, i32* %9) | |
%cmp3 = icmp eq i32 %call2, 0 | |
br i1 %cmp3, label %if.then, label %if.else | |
if.then: ; preds = %for.body | |
%10 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3 | |
%UpdateArchiveItself = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %10, i32 0, i32 2 | |
%11 = load i8, i8* %UpdateArchiveItself, align 8, !tbaa !82, !range !33 | |
%tobool = trunc i8 %11 to i1 | |
br i1 %tobool, label %if.then4, label %if.end | |
if.then4: ; preds = %if.then | |
%12 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3 | |
%UpdateArchiveItself5 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %12, i32 0, i32 2 | |
store i8 0, i8* %UpdateArchiveItself5, align 8, !tbaa !82 | |
%13 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3 | |
%Commands = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %13, i32 0, i32 1 | |
call void @_ZN13CObjectVectorI21CUpdateArchiveCommandE6DeleteEii(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %Commands, i32 0, i32 1) | |
br label %if.end | |
if.end: ; preds = %if.then4, %if.then | |
br label %if.end51 | |
if.else: ; preds = %for.body | |
%14 = bitcast %"struct.NUpdateArchive::CActionSet"* %actionSet to i8* | |
call void @llvm.lifetime.start.p0i8(i64 28, i8* %14) #3 | |
%15 = load %"struct.NUpdateArchive::CActionSet"*, %"struct.NUpdateArchive::CActionSet"** %defaultActionSet.addr, align 8, !tbaa !3 | |
%16 = bitcast %"struct.NUpdateArchive::CActionSet"* %actionSet to i8* | |
%17 = bitcast %"struct.NUpdateArchive::CActionSet"* %15 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %16, i8* align 4 %17, i64 28, i1 false), !tbaa.struct !80 | |
%18 = bitcast %class.CStringBase* %postString to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %18) #3 | |
call void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) | |
%19 = load %class.CStringBase*, %class.CStringBase** %updateString, align 8, !tbaa !3 | |
%call6 = invoke zeroext i1 @_ZL25ParseUpdateCommandString2RK11CStringBaseIwERN14NUpdateArchive10CActionSetERS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %19, %"struct.NUpdateArchive::CActionSet"* nonnull align 4 dereferenceable(28) %actionSet, %class.CStringBase* nonnull align 8 dereferenceable(16) %postString) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %if.else | |
br i1 %call6, label %if.end9, label %if.then7 | |
if.then7: ; preds = %invoke.cont | |
invoke void @_ZL23ThrowUserErrorExceptionv() | |
to label %invoke.cont8 unwind label %lpad | |
invoke.cont8: ; preds = %if.then7 | |
br label %if.end9 | |
lpad: ; preds = %if.then26, %invoke.cont21, %if.else20, %if.then15, %if.end9, %if.then7, %if.else | |
%20 = landingpad { i8*, i32 } | |
cleanup | |
%21 = extractvalue { i8*, i32 } %20, 0 | |
store i8* %21, i8** %exn.slot, align 8 | |
%22 = extractvalue { i8*, i32 } %20, 1 | |
store i32 %22, i32* %ehselector.slot, align 4 | |
br label %ehcleanup48 | |
if.end9: ; preds = %invoke.cont8, %invoke.cont | |
%call11 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) | |
to label %invoke.cont10 unwind label %lpad | |
invoke.cont10: ; preds = %if.end9 | |
br i1 %call11, label %if.then12, label %if.else20 | |
if.then12: ; preds = %invoke.cont10 | |
%23 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3 | |
%UpdateArchiveItself13 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %23, i32 0, i32 2 | |
%24 = load i8, i8* %UpdateArchiveItself13, align 8, !tbaa !82, !range !33 | |
%tobool14 = trunc i8 %24 to i1 | |
br i1 %tobool14, label %if.then15, label %if.end19 | |
if.then15: ; preds = %if.then12 | |
%25 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3 | |
%Commands16 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %25, i32 0, i32 1 | |
%call18 = invoke nonnull align 8 dereferenceable(164) %struct.CUpdateArchiveCommand* @_ZN13CObjectVectorI21CUpdateArchiveCommandEixEi(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %Commands16, i32 0) | |
to label %invoke.cont17 unwind label %lpad | |
invoke.cont17: ; preds = %if.then15 | |
%ActionSet = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %call18, i32 0, i32 2 | |
%26 = bitcast %"struct.NUpdateArchive::CActionSet"* %ActionSet to i8* | |
%27 = bitcast %"struct.NUpdateArchive::CActionSet"* %actionSet to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %26, i8* align 4 %27, i64 28, i1 false), !tbaa.struct !80 | |
br label %if.end19 | |
if.end19: ; preds = %invoke.cont17, %if.then12 | |
br label %if.end47 | |
if.else20: ; preds = %invoke.cont10 | |
%call22 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) | |
to label %invoke.cont21 unwind label %lpad | |
invoke.cont21: ; preds = %if.else20 | |
%arrayidx = getelementptr inbounds i32, i32* %call22, i64 0 | |
%28 = load i32, i32* %arrayidx, align 4, !tbaa !57 | |
%call24 = invoke signext i32 @_Z11MyCharUpperw(i32 signext %28) | |
to label %invoke.cont23 unwind label %lpad | |
invoke.cont23: ; preds = %invoke.cont21 | |
%cmp25 = icmp ne i32 %call24, 33 | |
br i1 %cmp25, label %if.then26, label %if.end28 | |
if.then26: ; preds = %invoke.cont23 | |
invoke void @_ZL23ThrowUserErrorExceptionv() | |
to label %invoke.cont27 unwind label %lpad | |
invoke.cont27: ; preds = %if.then26 | |
br label %if.end28 | |
if.end28: ; preds = %invoke.cont27, %invoke.cont23 | |
%29 = bitcast %struct.CUpdateArchiveCommand* %uc to i8* | |
call void @llvm.lifetime.start.p0i8(i64 168, i8* %29) #3 | |
invoke void @_ZN21CUpdateArchiveCommandC2Ev(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %uc) | |
to label %invoke.cont30 unwind label %lpad29 | |
invoke.cont30: ; preds = %if.end28 | |
%30 = bitcast %class.CStringBase* %archivePath to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %30) #3 | |
invoke void @_ZNK11CStringBaseIwE3MidEi(%class.CStringBase* sret(%class.CStringBase) align 8 %archivePath, %class.CStringBase* nonnull align 8 dereferenceable(16) %postString, i32 1) | |
to label %invoke.cont32 unwind label %lpad31 | |
invoke.cont32: ; preds = %invoke.cont30 | |
%call35 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %archivePath) | |
to label %invoke.cont34 unwind label %lpad33 | |
invoke.cont34: ; preds = %invoke.cont32 | |
br i1 %call35, label %if.then36, label %if.end38 | |
if.then36: ; preds = %invoke.cont34 | |
invoke void @_ZL23ThrowUserErrorExceptionv() | |
to label %invoke.cont37 unwind label %lpad33 | |
invoke.cont37: ; preds = %if.then36 | |
br label %if.end38 | |
lpad29: ; preds = %if.end28 | |
%31 = landingpad { i8*, i32 } | |
cleanup | |
%32 = extractvalue { i8*, i32 } %31, 0 | |
store i8* %32, i8** %exn.slot, align 8 | |
%33 = extractvalue { i8*, i32 } %31, 1 | |
store i32 %33, i32* %ehselector.slot, align 4 | |
br label %ehcleanup46 | |
lpad31: ; preds = %invoke.cont30 | |
%34 = landingpad { i8*, i32 } | |
cleanup | |
%35 = extractvalue { i8*, i32 } %34, 0 | |
store i8* %35, i8** %exn.slot, align 8 | |
%36 = extractvalue { i8*, i32 } %34, 1 | |
store i32 %36, i32* %ehselector.slot, align 4 | |
br label %ehcleanup | |
lpad33: ; preds = %invoke.cont39, %if.end38, %if.then36, %invoke.cont32 | |
%37 = landingpad { i8*, i32 } | |
cleanup | |
%38 = extractvalue { i8*, i32 } %37, 0 | |
store i8* %38, i8** %exn.slot, align 8 | |
%39 = extractvalue { i8*, i32 } %37, 1 | |
store i32 %39, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %archivePath) #3 | |
br label %ehcleanup | |
if.end38: ; preds = %invoke.cont37, %invoke.cont34 | |
%UserArchivePath = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %uc, i32 0, i32 0 | |
%call40 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %UserArchivePath, %class.CStringBase* nonnull align 8 dereferenceable(16) %archivePath) | |
to label %invoke.cont39 unwind label %lpad33 | |
invoke.cont39: ; preds = %if.end38 | |
%ActionSet41 = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %uc, i32 0, i32 2 | |
%40 = bitcast %"struct.NUpdateArchive::CActionSet"* %ActionSet41 to i8* | |
%41 = bitcast %"struct.NUpdateArchive::CActionSet"* %actionSet to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %40, i8* align 4 %41, i64 28, i1 false), !tbaa.struct !80 | |
%42 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %options.addr, align 8, !tbaa !3 | |
%Commands42 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %42, i32 0, i32 1 | |
%call44 = invoke i32 @_ZN13CObjectVectorI21CUpdateArchiveCommandE3AddERKS0_(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %Commands42, %struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %uc) | |
to label %invoke.cont43 unwind label %lpad33 | |
invoke.cont43: ; preds = %invoke.cont39 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %archivePath) #3 | |
%43 = bitcast %class.CStringBase* %archivePath to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %43) #3 | |
call void @_ZN21CUpdateArchiveCommandD2Ev(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %uc) #3 | |
%44 = bitcast %struct.CUpdateArchiveCommand* %uc to i8* | |
call void @llvm.lifetime.end.p0i8(i64 168, i8* %44) #3 | |
br label %if.end47 | |
ehcleanup: ; preds = %lpad33, %lpad31 | |
%45 = bitcast %class.CStringBase* %archivePath to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %45) #3 | |
call void @_ZN21CUpdateArchiveCommandD2Ev(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %uc) #3 | |
br label %ehcleanup46 | |
ehcleanup46: ; preds = %ehcleanup, %lpad29 | |
%46 = bitcast %struct.CUpdateArchiveCommand* %uc to i8* | |
call void @llvm.lifetime.end.p0i8(i64 168, i8* %46) #3 | |
br label %ehcleanup48 | |
if.end47: ; preds = %invoke.cont43, %if.end19 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) #3 | |
%47 = bitcast %class.CStringBase* %postString to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %47) #3 | |
%48 = bitcast %"struct.NUpdateArchive::CActionSet"* %actionSet to i8* | |
call void @llvm.lifetime.end.p0i8(i64 28, i8* %48) #3 | |
br label %if.end51 | |
ehcleanup48: ; preds = %ehcleanup46, %lpad | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %postString) #3 | |
%49 = bitcast %class.CStringBase* %postString to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %49) #3 | |
%50 = bitcast %"struct.NUpdateArchive::CActionSet"* %actionSet to i8* | |
call void @llvm.lifetime.end.p0i8(i64 28, i8* %50) #3 | |
%51 = bitcast %class.CStringBase** %updateString to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %51) #3 | |
%52 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %52) #3 | |
br label %eh.resume | |
if.end51: ; preds = %if.end47, %if.end | |
%53 = bitcast %class.CStringBase** %updateString to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %53) #3 | |
br label %for.inc | |
for.inc: ; preds = %if.end51 | |
%54 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc = add nsw i32 %54, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !15 | |
br label %for.cond, !llvm.loop !112 | |
for.end: ; preds = %for.cond.cleanup | |
ret void | |
eh.resume: ; preds = %ehcleanup48 | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val54 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val54 | |
} | |
declare dso_local zeroext i1 @_ZN8NWindows5NFile10NDirectory13MyGetTempPathER11CStringBaseIwE(%class.CStringBase* nonnull align 8 dereferenceable(16)) #4 | |
; Function Attrs: mustprogress uwtable | |
define internal zeroext i1 @_ZL16ParseComplexSizeRK11CStringBaseIwERy(%class.CStringBase* nonnull align 8 dereferenceable(16) %src, i64* nonnull align 8 dereferenceable(8) %result) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%retval = alloca i1, align 1 | |
%src.addr = alloca %class.CStringBase*, align 8 | |
%result.addr = alloca i64*, align 8 | |
%s = alloca %class.CStringBase, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
%start = alloca i32*, align 8 | |
%end = alloca i32*, align 8 | |
%number = alloca i64, align 8 | |
%numDigits = alloca i32, align 4 | |
%cleanup.dest.slot = alloca i32, align 4 | |
%numBits = alloca i32, align 4 | |
store %class.CStringBase* %src, %class.CStringBase** %src.addr, align 8, !tbaa !3 | |
store i64* %result, i64** %result.addr, align 8, !tbaa !3 | |
%0 = bitcast %class.CStringBase* %s to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %0) #3 | |
%1 = load %class.CStringBase*, %class.CStringBase** %src.addr, align 8, !tbaa !3 | |
call void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %s, %class.CStringBase* nonnull align 8 dereferenceable(16) %1) | |
invoke void @_ZN11CStringBaseIwE9MakeUpperEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %s) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%2 = bitcast i32** %start to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %2) #3 | |
%call = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %s) | |
to label %invoke.cont2 unwind label %lpad1 | |
invoke.cont2: ; preds = %invoke.cont | |
store i32* %call, i32** %start, align 8, !tbaa !3 | |
%3 = bitcast i32** %end to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %3) #3 | |
%4 = bitcast i64* %number to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %4) #3 | |
%5 = load i32*, i32** %start, align 8, !tbaa !3 | |
%call5 = invoke i64 @_Z21ConvertStringToUInt64PKwPS0_(i32* %5, i32** %end) | |
to label %invoke.cont4 unwind label %lpad3 | |
invoke.cont4: ; preds = %invoke.cont2 | |
store i64 %call5, i64* %number, align 8, !tbaa !84 | |
%6 = bitcast i32* %numDigits to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %6) #3 | |
%7 = load i32*, i32** %end, align 8, !tbaa !3 | |
%8 = load i32*, i32** %start, align 8, !tbaa !3 | |
%sub.ptr.lhs.cast = ptrtoint i32* %7 to i64 | |
%sub.ptr.rhs.cast = ptrtoint i32* %8 to i64 | |
%sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast | |
%sub.ptr.div = sdiv exact i64 %sub.ptr.sub, 4 | |
%conv = trunc i64 %sub.ptr.div to i32 | |
store i32 %conv, i32* %numDigits, align 4, !tbaa !15 | |
%9 = load i32, i32* %numDigits, align 4, !tbaa !15 | |
%cmp = icmp eq i32 %9, 0 | |
br i1 %cmp, label %if.then, label %lor.lhs.false | |
lor.lhs.false: ; preds = %invoke.cont4 | |
%call8 = invoke i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %s) | |
to label %invoke.cont7 unwind label %lpad6 | |
invoke.cont7: ; preds = %lor.lhs.false | |
%10 = load i32, i32* %numDigits, align 4, !tbaa !15 | |
%add = add nsw i32 %10, 1 | |
%cmp9 = icmp sgt i32 %call8, %add | |
br i1 %cmp9, label %if.then, label %if.end | |
if.then: ; preds = %invoke.cont7, %invoke.cont4 | |
store i1 false, i1* %retval, align 1 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup26 | |
lpad: ; preds = %entry | |
%11 = landingpad { i8*, i32 } | |
cleanup | |
%12 = extractvalue { i8*, i32 } %11, 0 | |
store i8* %12, i8** %exn.slot, align 8 | |
%13 = extractvalue { i8*, i32 } %11, 1 | |
store i32 %13, i32* %ehselector.slot, align 4 | |
br label %ehcleanup34 | |
lpad1: ; preds = %invoke.cont | |
%14 = landingpad { i8*, i32 } | |
cleanup | |
%15 = extractvalue { i8*, i32 } %14, 0 | |
store i8* %15, i8** %exn.slot, align 8 | |
%16 = extractvalue { i8*, i32 } %14, 1 | |
store i32 %16, i32* %ehselector.slot, align 4 | |
br label %ehcleanup32 | |
lpad3: ; preds = %invoke.cont2 | |
%17 = landingpad { i8*, i32 } | |
cleanup | |
%18 = extractvalue { i8*, i32 } %17, 0 | |
store i8* %18, i8** %exn.slot, align 8 | |
%19 = extractvalue { i8*, i32 } %17, 1 | |
store i32 %19, i32* %ehselector.slot, align 4 | |
br label %ehcleanup28 | |
lpad6: ; preds = %if.end, %lor.lhs.false | |
%20 = landingpad { i8*, i32 } | |
cleanup | |
%21 = extractvalue { i8*, i32 } %20, 0 | |
store i8* %21, i8** %exn.slot, align 8 | |
%22 = extractvalue { i8*, i32 } %20, 1 | |
store i32 %22, i32* %ehselector.slot, align 4 | |
br label %ehcleanup | |
if.end: ; preds = %invoke.cont7 | |
%call11 = invoke i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %s) | |
to label %invoke.cont10 unwind label %lpad6 | |
invoke.cont10: ; preds = %if.end | |
%23 = load i32, i32* %numDigits, align 4, !tbaa !15 | |
%cmp12 = icmp eq i32 %call11, %23 | |
br i1 %cmp12, label %if.then13, label %if.end14 | |
if.then13: ; preds = %invoke.cont10 | |
%24 = load i64, i64* %number, align 8, !tbaa !84 | |
%25 = load i64*, i64** %result.addr, align 8, !tbaa !3 | |
store i64 %24, i64* %25, align 8, !tbaa !84 | |
store i1 true, i1* %retval, align 1 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup26 | |
if.end14: ; preds = %invoke.cont10 | |
%26 = bitcast i32* %numBits to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %26) #3 | |
%call17 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %s) | |
to label %invoke.cont16 unwind label %lpad15 | |
invoke.cont16: ; preds = %if.end14 | |
%27 = load i32, i32* %numDigits, align 4, !tbaa !15 | |
%idxprom = sext i32 %27 to i64 | |
%arrayidx = getelementptr inbounds i32, i32* %call17, i64 %idxprom | |
%28 = load i32, i32* %arrayidx, align 4, !tbaa !57 | |
switch i32 %28, label %sw.default [ | |
i32 66, label %sw.bb | |
i32 75, label %sw.bb18 | |
i32 77, label %sw.bb19 | |
i32 71, label %sw.bb20 | |
] | |
lpad15: ; preds = %if.end14 | |
%29 = landingpad { i8*, i32 } | |
cleanup | |
%30 = extractvalue { i8*, i32 } %29, 0 | |
store i8* %30, i8** %exn.slot, align 8 | |
%31 = extractvalue { i8*, i32 } %29, 1 | |
store i32 %31, i32* %ehselector.slot, align 4 | |
%32 = bitcast i32* %numBits to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %32) #3 | |
br label %ehcleanup | |
sw.bb: ; preds = %invoke.cont16 | |
%33 = load i64, i64* %number, align 8, !tbaa !84 | |
%34 = load i64*, i64** %result.addr, align 8, !tbaa !3 | |
store i64 %33, i64* %34, align 8, !tbaa !84 | |
store i1 true, i1* %retval, align 1 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
sw.bb18: ; preds = %invoke.cont16 | |
store i32 10, i32* %numBits, align 4, !tbaa !15 | |
br label %sw.epilog | |
sw.bb19: ; preds = %invoke.cont16 | |
store i32 20, i32* %numBits, align 4, !tbaa !15 | |
br label %sw.epilog | |
sw.bb20: ; preds = %invoke.cont16 | |
store i32 30, i32* %numBits, align 4, !tbaa !15 | |
br label %sw.epilog | |
sw.default: ; preds = %invoke.cont16 | |
store i1 false, i1* %retval, align 1 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
sw.epilog: ; preds = %sw.bb20, %sw.bb19, %sw.bb18 | |
%35 = load i64, i64* %number, align 8, !tbaa !84 | |
%36 = load i32, i32* %numBits, align 4, !tbaa !15 | |
%sub = sub nsw i32 64, %36 | |
%sh_prom = zext i32 %sub to i64 | |
%shl = shl i64 1, %sh_prom | |
%cmp21 = icmp uge i64 %35, %shl | |
br i1 %cmp21, label %if.then22, label %if.end23 | |
if.then22: ; preds = %sw.epilog | |
store i1 false, i1* %retval, align 1 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
if.end23: ; preds = %sw.epilog | |
%37 = load i64, i64* %number, align 8, !tbaa !84 | |
%38 = load i32, i32* %numBits, align 4, !tbaa !15 | |
%sh_prom24 = zext i32 %38 to i64 | |
%shl25 = shl i64 %37, %sh_prom24 | |
%39 = load i64*, i64** %result.addr, align 8, !tbaa !3 | |
store i64 %shl25, i64* %39, align 8, !tbaa !84 | |
store i1 true, i1* %retval, align 1 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
cleanup: ; preds = %if.end23, %if.then22, %sw.default, %sw.bb | |
%40 = bitcast i32* %numBits to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %40) #3 | |
br label %cleanup26 | |
cleanup26: ; preds = %cleanup, %if.then13, %if.then | |
%41 = bitcast i32* %numDigits to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %41) #3 | |
%42 = bitcast i64* %number to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %42) #3 | |
%43 = bitcast i32** %end to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %43) #3 | |
%44 = bitcast i32** %start to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %44) #3 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %s) #3 | |
%45 = bitcast %class.CStringBase* %s to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %45) #3 | |
%46 = load i1, i1* %retval, align 1 | |
ret i1 %46 | |
ehcleanup: ; preds = %lpad15, %lpad6 | |
%47 = bitcast i32* %numDigits to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %47) #3 | |
br label %ehcleanup28 | |
ehcleanup28: ; preds = %ehcleanup, %lpad3 | |
%48 = bitcast i64* %number to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %48) #3 | |
%49 = bitcast i32** %end to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %49) #3 | |
br label %ehcleanup32 | |
ehcleanup32: ; preds = %ehcleanup28, %lpad1 | |
%50 = bitcast i32** %start to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %50) #3 | |
br label %ehcleanup34 | |
ehcleanup34: ; preds = %ehcleanup32, %lpad | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %s) #3 | |
%51 = bitcast %class.CStringBase* %s to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %51) #3 | |
br label %eh.resume | |
eh.resume: ; preds = %ehcleanup34 | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val37 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val37 | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local i32 @_ZN13CRecordVectorIyE3AddEy(%class.CRecordVector.3* nonnull align 8 dereferenceable(32) %this, i64 %item) #5 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CRecordVector.3*, align 8 | |
%item.addr = alloca i64, align 8 | |
store %class.CRecordVector.3* %this, %class.CRecordVector.3** %this.addr, align 8, !tbaa !3 | |
store i64 %item, i64* %item.addr, align 8, !tbaa !84 | |
%this1 = load %class.CRecordVector.3*, %class.CRecordVector.3** %this.addr, align 8 | |
%0 = bitcast %class.CRecordVector.3* %this1 to %class.CBaseRecordVector* | |
call void @_ZN17CBaseRecordVector18ReserveOnePositionEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0) | |
%1 = load i64, i64* %item.addr, align 8, !tbaa !84 | |
%2 = bitcast %class.CRecordVector.3* %this1 to %class.CBaseRecordVector* | |
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %2, i32 0, i32 3 | |
%3 = load i8*, i8** %_items, align 8, !tbaa !77 | |
%4 = bitcast i8* %3 to i64* | |
%5 = bitcast %class.CRecordVector.3* %this1 to %class.CBaseRecordVector* | |
%_size = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %5, i32 0, i32 2 | |
%6 = load i32, i32* %_size, align 4, !tbaa !66 | |
%idxprom = sext i32 %6 to i64 | |
%arrayidx = getelementptr inbounds i64, i64* %4, i64 %idxprom | |
store i64 %1, i64* %arrayidx, align 8, !tbaa !84 | |
%7 = bitcast %class.CRecordVector.3* %this1 to %class.CBaseRecordVector* | |
%_size2 = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %7, i32 0, i32 2 | |
%8 = load i32, i32* %_size2, align 4, !tbaa !66 | |
%inc = add nsw i32 %8, 1 | |
store i32 %inc, i32* %_size2, align 4, !tbaa !66 | |
ret i32 %8 | |
} | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN21CUpdateArchiveCommandD2Ev(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %struct.CUpdateArchiveCommand*, align 8 | |
store %struct.CUpdateArchiveCommand* %this, %struct.CUpdateArchiveCommand** %this.addr, align 8, !tbaa !3 | |
%this1 = load %struct.CUpdateArchiveCommand*, %struct.CUpdateArchiveCommand** %this.addr, align 8 | |
%ArchivePath = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %this1, i32 0, i32 1 | |
call void @_ZN12CArchivePathD2Ev(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %ArchivePath) #3 | |
%UserArchivePath = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %this1, i32 0, i32 0 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %UserArchivePath) #3 | |
ret void | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN12CArchivePathC2Ev(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %this) unnamed_addr #1 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %struct.CArchivePath*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %struct.CArchivePath* %this, %struct.CArchivePath** %this.addr, align 8, !tbaa !3 | |
%this1 = load %struct.CArchivePath*, %struct.CArchivePath** %this.addr, align 8 | |
%OriginalPath = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 0 | |
call void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OriginalPath) | |
%Prefix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 1 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%Name = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 2 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) | |
to label %invoke.cont3 unwind label %lpad2 | |
invoke.cont3: ; preds = %invoke.cont | |
%BaseExtension = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 3 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %BaseExtension) | |
to label %invoke.cont5 unwind label %lpad4 | |
invoke.cont5: ; preds = %invoke.cont3 | |
%VolExtension = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 4 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %VolExtension) | |
to label %invoke.cont7 unwind label %lpad6 | |
invoke.cont7: ; preds = %invoke.cont5 | |
%Temp = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 5 | |
store i8 0, i8* %Temp, align 8, !tbaa !113 | |
%TempPrefix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 6 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %TempPrefix) | |
to label %invoke.cont9 unwind label %lpad8 | |
invoke.cont9: ; preds = %invoke.cont7 | |
%TempPostfix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 7 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %TempPostfix) | |
to label %invoke.cont11 unwind label %lpad10 | |
invoke.cont11: ; preds = %invoke.cont9 | |
ret void | |
lpad: ; preds = %entry | |
%0 = landingpad { i8*, i32 } | |
cleanup | |
%1 = extractvalue { i8*, i32 } %0, 0 | |
store i8* %1, i8** %exn.slot, align 8 | |
%2 = extractvalue { i8*, i32 } %0, 1 | |
store i32 %2, i32* %ehselector.slot, align 4 | |
br label %ehcleanup15 | |
lpad2: ; preds = %invoke.cont | |
%3 = landingpad { i8*, i32 } | |
cleanup | |
%4 = extractvalue { i8*, i32 } %3, 0 | |
store i8* %4, i8** %exn.slot, align 8 | |
%5 = extractvalue { i8*, i32 } %3, 1 | |
store i32 %5, i32* %ehselector.slot, align 4 | |
br label %ehcleanup14 | |
lpad4: ; preds = %invoke.cont3 | |
%6 = landingpad { i8*, i32 } | |
cleanup | |
%7 = extractvalue { i8*, i32 } %6, 0 | |
store i8* %7, i8** %exn.slot, align 8 | |
%8 = extractvalue { i8*, i32 } %6, 1 | |
store i32 %8, i32* %ehselector.slot, align 4 | |
br label %ehcleanup13 | |
lpad6: ; preds = %invoke.cont5 | |
%9 = landingpad { i8*, i32 } | |
cleanup | |
%10 = extractvalue { i8*, i32 } %9, 0 | |
store i8* %10, i8** %exn.slot, align 8 | |
%11 = extractvalue { i8*, i32 } %9, 1 | |
store i32 %11, i32* %ehselector.slot, align 4 | |
br label %ehcleanup12 | |
lpad8: ; preds = %invoke.cont7 | |
%12 = landingpad { i8*, i32 } | |
cleanup | |
%13 = extractvalue { i8*, i32 } %12, 0 | |
store i8* %13, i8** %exn.slot, align 8 | |
%14 = extractvalue { i8*, i32 } %12, 1 | |
store i32 %14, i32* %ehselector.slot, align 4 | |
br label %ehcleanup | |
lpad10: ; preds = %invoke.cont9 | |
%15 = landingpad { i8*, i32 } | |
cleanup | |
%16 = extractvalue { i8*, i32 } %15, 0 | |
store i8* %16, i8** %exn.slot, align 8 | |
%17 = extractvalue { i8*, i32 } %15, 1 | |
store i32 %17, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %TempPrefix) #3 | |
br label %ehcleanup | |
ehcleanup: ; preds = %lpad10, %lpad8 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %VolExtension) #3 | |
br label %ehcleanup12 | |
ehcleanup12: ; preds = %ehcleanup, %lpad6 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %BaseExtension) #3 | |
br label %ehcleanup13 | |
ehcleanup13: ; preds = %ehcleanup12, %lpad4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #3 | |
br label %ehcleanup14 | |
ehcleanup14: ; preds = %ehcleanup13, %lpad2 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix) #3 | |
br label %ehcleanup15 | |
ehcleanup15: ; preds = %ehcleanup14, %lpad | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OriginalPath) #3 | |
br label %eh.resume | |
eh.resume: ; preds = %ehcleanup15 | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val16 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val16 | |
} | |
; Function Attrs: inlinehint uwtable | |
define linkonce_odr dso_local void @_ZN21CUpdateArchiveCommandC2ERKS_(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %this, %struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %0) unnamed_addr #9 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %struct.CUpdateArchiveCommand*, align 8 | |
%.addr = alloca %struct.CUpdateArchiveCommand*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %struct.CUpdateArchiveCommand* %this, %struct.CUpdateArchiveCommand** %this.addr, align 8, !tbaa !3 | |
store %struct.CUpdateArchiveCommand* %0, %struct.CUpdateArchiveCommand** %.addr, align 8, !tbaa !3 | |
%this1 = load %struct.CUpdateArchiveCommand*, %struct.CUpdateArchiveCommand** %this.addr, align 8 | |
%UserArchivePath = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %this1, i32 0, i32 0 | |
%1 = load %struct.CUpdateArchiveCommand*, %struct.CUpdateArchiveCommand** %.addr, align 8, !tbaa !3 | |
%UserArchivePath2 = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %1, i32 0, i32 0 | |
call void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %UserArchivePath, %class.CStringBase* nonnull align 8 dereferenceable(16) %UserArchivePath2) | |
%ArchivePath = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %this1, i32 0, i32 1 | |
%2 = load %struct.CUpdateArchiveCommand*, %struct.CUpdateArchiveCommand** %.addr, align 8, !tbaa !3 | |
%ArchivePath3 = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %2, i32 0, i32 1 | |
invoke void @_ZN12CArchivePathC2ERKS_(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %ArchivePath, %struct.CArchivePath* nonnull align 8 dereferenceable(120) %ArchivePath3) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%ActionSet = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %this1, i32 0, i32 2 | |
%3 = load %struct.CUpdateArchiveCommand*, %struct.CUpdateArchiveCommand** %.addr, align 8, !tbaa !3 | |
%ActionSet4 = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %3, i32 0, i32 2 | |
%4 = bitcast %"struct.NUpdateArchive::CActionSet"* %ActionSet to i8* | |
%5 = bitcast %"struct.NUpdateArchive::CActionSet"* %ActionSet4 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %4, i8* align 8 %5, i64 28, i1 false), !tbaa.struct !80 | |
ret void | |
lpad: ; preds = %entry | |
%6 = landingpad { i8*, i32 } | |
cleanup | |
%7 = extractvalue { i8*, i32 } %6, 0 | |
store i8* %7, i8** %exn.slot, align 8 | |
%8 = extractvalue { i8*, i32 } %6, 1 | |
store i32 %8, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %UserArchivePath) #3 | |
br label %eh.resume | |
eh.resume: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val5 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val5 | |
} | |
; Function Attrs: inlinehint uwtable | |
define linkonce_odr dso_local void @_ZN12CArchivePathC2ERKS_(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %this, %struct.CArchivePath* nonnull align 8 dereferenceable(120) %0) unnamed_addr #9 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %struct.CArchivePath*, align 8 | |
%.addr = alloca %struct.CArchivePath*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %struct.CArchivePath* %this, %struct.CArchivePath** %this.addr, align 8, !tbaa !3 | |
store %struct.CArchivePath* %0, %struct.CArchivePath** %.addr, align 8, !tbaa !3 | |
%this1 = load %struct.CArchivePath*, %struct.CArchivePath** %this.addr, align 8 | |
%OriginalPath = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 0 | |
%1 = load %struct.CArchivePath*, %struct.CArchivePath** %.addr, align 8, !tbaa !3 | |
%OriginalPath2 = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %1, i32 0, i32 0 | |
call void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %OriginalPath, %class.CStringBase* nonnull align 8 dereferenceable(16) %OriginalPath2) | |
%Prefix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 1 | |
%2 = load %struct.CArchivePath*, %struct.CArchivePath** %.addr, align 8, !tbaa !3 | |
%Prefix3 = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %2, i32 0, i32 1 | |
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix, %class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix3) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%Name = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 2 | |
%3 = load %struct.CArchivePath*, %struct.CArchivePath** %.addr, align 8, !tbaa !3 | |
%Name4 = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %3, i32 0, i32 2 | |
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name, %class.CStringBase* nonnull align 8 dereferenceable(16) %Name4) | |
to label %invoke.cont6 unwind label %lpad5 | |
invoke.cont6: ; preds = %invoke.cont | |
%BaseExtension = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 3 | |
%4 = load %struct.CArchivePath*, %struct.CArchivePath** %.addr, align 8, !tbaa !3 | |
%BaseExtension7 = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %4, i32 0, i32 3 | |
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %BaseExtension, %class.CStringBase* nonnull align 8 dereferenceable(16) %BaseExtension7) | |
to label %invoke.cont9 unwind label %lpad8 | |
invoke.cont9: ; preds = %invoke.cont6 | |
%VolExtension = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 4 | |
%5 = load %struct.CArchivePath*, %struct.CArchivePath** %.addr, align 8, !tbaa !3 | |
%VolExtension10 = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %5, i32 0, i32 4 | |
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %VolExtension, %class.CStringBase* nonnull align 8 dereferenceable(16) %VolExtension10) | |
to label %invoke.cont12 unwind label %lpad11 | |
invoke.cont12: ; preds = %invoke.cont9 | |
%Temp = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 5 | |
%6 = load %struct.CArchivePath*, %struct.CArchivePath** %.addr, align 8, !tbaa !3 | |
%Temp13 = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %6, i32 0, i32 5 | |
%7 = load i8, i8* %Temp13, align 8, !tbaa !113, !range !33 | |
%tobool = trunc i8 %7 to i1 | |
%frombool = zext i1 %tobool to i8 | |
store i8 %frombool, i8* %Temp, align 8, !tbaa !113 | |
%TempPrefix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 6 | |
%8 = load %struct.CArchivePath*, %struct.CArchivePath** %.addr, align 8, !tbaa !3 | |
%TempPrefix14 = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %8, i32 0, i32 6 | |
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %TempPrefix, %class.CStringBase* nonnull align 8 dereferenceable(16) %TempPrefix14) | |
to label %invoke.cont16 unwind label %lpad15 | |
invoke.cont16: ; preds = %invoke.cont12 | |
%TempPostfix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 7 | |
%9 = load %struct.CArchivePath*, %struct.CArchivePath** %.addr, align 8, !tbaa !3 | |
%TempPostfix17 = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %9, i32 0, i32 7 | |
invoke void @_ZN11CStringBaseIwEC2ERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %TempPostfix, %class.CStringBase* nonnull align 8 dereferenceable(16) %TempPostfix17) | |
to label %invoke.cont19 unwind label %lpad18 | |
invoke.cont19: ; preds = %invoke.cont16 | |
ret void | |
lpad: ; preds = %entry | |
%10 = landingpad { i8*, i32 } | |
cleanup | |
%11 = extractvalue { i8*, i32 } %10, 0 | |
store i8* %11, i8** %exn.slot, align 8 | |
%12 = extractvalue { i8*, i32 } %10, 1 | |
store i32 %12, i32* %ehselector.slot, align 4 | |
br label %ehcleanup23 | |
lpad5: ; preds = %invoke.cont | |
%13 = landingpad { i8*, i32 } | |
cleanup | |
%14 = extractvalue { i8*, i32 } %13, 0 | |
store i8* %14, i8** %exn.slot, align 8 | |
%15 = extractvalue { i8*, i32 } %13, 1 | |
store i32 %15, i32* %ehselector.slot, align 4 | |
br label %ehcleanup22 | |
lpad8: ; preds = %invoke.cont6 | |
%16 = landingpad { i8*, i32 } | |
cleanup | |
%17 = extractvalue { i8*, i32 } %16, 0 | |
store i8* %17, i8** %exn.slot, align 8 | |
%18 = extractvalue { i8*, i32 } %16, 1 | |
store i32 %18, i32* %ehselector.slot, align 4 | |
br label %ehcleanup21 | |
lpad11: ; preds = %invoke.cont9 | |
%19 = landingpad { i8*, i32 } | |
cleanup | |
%20 = extractvalue { i8*, i32 } %19, 0 | |
store i8* %20, i8** %exn.slot, align 8 | |
%21 = extractvalue { i8*, i32 } %19, 1 | |
store i32 %21, i32* %ehselector.slot, align 4 | |
br label %ehcleanup20 | |
lpad15: ; preds = %invoke.cont12 | |
%22 = landingpad { i8*, i32 } | |
cleanup | |
%23 = extractvalue { i8*, i32 } %22, 0 | |
store i8* %23, i8** %exn.slot, align 8 | |
%24 = extractvalue { i8*, i32 } %22, 1 | |
store i32 %24, i32* %ehselector.slot, align 4 | |
br label %ehcleanup | |
lpad18: ; preds = %invoke.cont16 | |
%25 = landingpad { i8*, i32 } | |
cleanup | |
%26 = extractvalue { i8*, i32 } %25, 0 | |
store i8* %26, i8** %exn.slot, align 8 | |
%27 = extractvalue { i8*, i32 } %25, 1 | |
store i32 %27, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %TempPrefix) #3 | |
br label %ehcleanup | |
ehcleanup: ; preds = %lpad18, %lpad15 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %VolExtension) #3 | |
br label %ehcleanup20 | |
ehcleanup20: ; preds = %ehcleanup, %lpad11 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %BaseExtension) #3 | |
br label %ehcleanup21 | |
ehcleanup21: ; preds = %ehcleanup20, %lpad8 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #3 | |
br label %ehcleanup22 | |
ehcleanup22: ; preds = %ehcleanup21, %lpad5 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix) #3 | |
br label %ehcleanup23 | |
ehcleanup23: ; preds = %ehcleanup22, %lpad | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OriginalPath) #3 | |
br label %eh.resume | |
eh.resume: ; preds = %ehcleanup23 | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val24 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val24 | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local i32 @_ZNK11CStringBaseIwE13CompareNoCaseEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32* %s) #5 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%s.addr = alloca i32*, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
store i32* %s, i32** %s.addr, align 8, !tbaa !3 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%0 = load i32*, i32** %_chars, align 8, !tbaa !10 | |
%1 = load i32*, i32** %s.addr, align 8, !tbaa !3 | |
%call = call i32 @_Z21MyStringCompareNoCasePKwS0_(i32* %0, i32* %1) | |
ret i32 %call | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorI21CUpdateArchiveCommandE6DeleteEii(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #5 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.2*, align 8 | |
%index.addr = alloca i32, align 4 | |
%num.addr = alloca i32, align 4 | |
%i = alloca i32, align 4 | |
store %class.CObjectVector.2* %this, %class.CObjectVector.2** %this.addr, align 8, !tbaa !3 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !15 | |
store i32 %num, i32* %num.addr, align 4, !tbaa !15 | |
%this1 = load %class.CObjectVector.2*, %class.CObjectVector.2** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.2* %this1 to %class.CBaseRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr) | |
%2 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #3 | |
store i32 0, i32* %i, align 4, !tbaa !15 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %entry | |
%3 = load i32, i32* %i, align 4, !tbaa !15 | |
%4 = load i32, i32* %num.addr, align 4, !tbaa !15 | |
%cmp = icmp slt i32 %3, %4 | |
br i1 %cmp, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
%5 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #3 | |
br label %for.end | |
for.body: ; preds = %for.cond | |
%6 = bitcast %class.CObjectVector.2* %this1 to %class.CBaseRecordVector* | |
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3 | |
%7 = load i8*, i8** %_items, align 8, !tbaa !77 | |
%8 = bitcast i8* %7 to i8** | |
%9 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%10 = load i32, i32* %i, align 4, !tbaa !15 | |
%add = add nsw i32 %9, %10 | |
%idxprom = sext i32 %add to i64 | |
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom | |
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !3 | |
%12 = bitcast i8* %11 to %struct.CUpdateArchiveCommand* | |
%isnull = icmp eq %struct.CUpdateArchiveCommand* %12, null | |
br i1 %isnull, label %delete.end, label %delete.notnull | |
delete.notnull: ; preds = %for.body | |
call void @_ZN21CUpdateArchiveCommandD2Ev(%struct.CUpdateArchiveCommand* nonnull align 8 dereferenceable(164) %12) #3 | |
%13 = bitcast %struct.CUpdateArchiveCommand* %12 to i8* | |
call void @_ZdlPv(i8* %13) #16 | |
br label %delete.end | |
delete.end: ; preds = %delete.notnull, %for.body | |
br label %for.inc | |
for.inc: ; preds = %delete.end | |
%14 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc = add nsw i32 %14, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !15 | |
br label %for.cond, !llvm.loop !114 | |
for.end: ; preds = %for.cond.cleanup | |
%15 = bitcast %class.CObjectVector.2* %this1 to %class.CRecordVector* | |
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector* | |
%17 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%18 = load i32, i32* %num.addr, align 4, !tbaa !15 | |
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18) | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define internal zeroext i1 @_ZL25ParseUpdateCommandString2RK11CStringBaseIwERN14NUpdateArchive10CActionSetERS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %command, %"struct.NUpdateArchive::CActionSet"* nonnull align 4 dereferenceable(28) %actionSet, %class.CStringBase* nonnull align 8 dereferenceable(16) %postString) #5 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%retval = alloca i1, align 1 | |
%command.addr = alloca %class.CStringBase*, align 8 | |
%actionSet.addr = alloca %"struct.NUpdateArchive::CActionSet"*, align 8 | |
%postString.addr = alloca %class.CStringBase*, align 8 | |
%i = alloca i32, align 4 | |
%cleanup.dest.slot = alloca i32, align 4 | |
%c = alloca i32, align 4 | |
%statePos = alloca i32, align 4 | |
%ref.tmp = alloca %class.CStringBase, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
%actionPos = alloca i32, align 4 | |
store %class.CStringBase* %command, %class.CStringBase** %command.addr, align 8, !tbaa !3 | |
store %"struct.NUpdateArchive::CActionSet"* %actionSet, %"struct.NUpdateArchive::CActionSet"** %actionSet.addr, align 8, !tbaa !3 | |
store %class.CStringBase* %postString, %class.CStringBase** %postString.addr, align 8, !tbaa !3 | |
%0 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3 | |
store i32 0, i32* %i, align 4, !tbaa !15 | |
br label %for.cond | |
for.cond: ; preds = %cleanup.cont, %entry | |
%1 = load i32, i32* %i, align 4, !tbaa !15 | |
%2 = load %class.CStringBase*, %class.CStringBase** %command.addr, align 8, !tbaa !3 | |
%call = call i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %2) | |
%cmp = icmp slt i32 %1, %call | |
br i1 %cmp, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
store i32 2, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup29 | |
for.body: ; preds = %for.cond | |
%3 = bitcast i32* %c to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %3) #3 | |
%4 = load %class.CStringBase*, %class.CStringBase** %command.addr, align 8, !tbaa !3 | |
%call1 = call i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %4) | |
%5 = load i32, i32* %i, align 4, !tbaa !15 | |
%idxprom = sext i32 %5 to i64 | |
%arrayidx = getelementptr inbounds i32, i32* %call1, i64 %idxprom | |
%6 = load i32, i32* %arrayidx, align 4, !tbaa !57 | |
%call2 = call signext i32 @_Z11MyCharUpperw(i32 signext %6) | |
store i32 %call2, i32* %c, align 4, !tbaa !57 | |
%7 = bitcast i32* %statePos to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %7) #3 | |
%8 = load i32, i32* %c, align 4, !tbaa !57 | |
%call3 = call i32 @_ZNK11CStringBaseIwE4FindEw(%class.CStringBase* nonnull align 8 dereferenceable(16) @_ZL21kUpdatePairStateIDSet, i32 signext %8) | |
store i32 %call3, i32* %statePos, align 4, !tbaa !15 | |
%9 = load i32, i32* %statePos, align 4, !tbaa !15 | |
%cmp4 = icmp slt i32 %9, 0 | |
br i1 %cmp4, label %if.then, label %if.end | |
if.then: ; preds = %for.body | |
%10 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %10) #3 | |
%11 = load %class.CStringBase*, %class.CStringBase** %command.addr, align 8, !tbaa !3 | |
%12 = load i32, i32* %i, align 4, !tbaa !15 | |
call void @_ZNK11CStringBaseIwE3MidEi(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp, %class.CStringBase* nonnull align 8 dereferenceable(16) %11, i32 %12) | |
%13 = load %class.CStringBase*, %class.CStringBase** %postString.addr, align 8, !tbaa !3 | |
%call5 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %13, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %if.then | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3 | |
%14 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %14) #3 | |
store i1 true, i1* %retval, align 1 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup27 | |
lpad: ; preds = %if.then | |
%15 = landingpad { i8*, i32 } | |
cleanup | |
%16 = extractvalue { i8*, i32 } %15, 0 | |
store i8* %16, i8** %exn.slot, align 8 | |
%17 = extractvalue { i8*, i32 } %15, 1 | |
store i32 %17, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #3 | |
%18 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %18) #3 | |
%19 = bitcast i32* %statePos to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %19) #3 | |
%20 = bitcast i32* %c to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %20) #3 | |
%21 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %21) #3 | |
br label %eh.resume | |
if.end: ; preds = %for.body | |
%22 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc = add nsw i32 %22, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !15 | |
%23 = load i32, i32* %i, align 4, !tbaa !15 | |
%24 = load %class.CStringBase*, %class.CStringBase** %command.addr, align 8, !tbaa !3 | |
%call6 = call i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %24) | |
%cmp7 = icmp sge i32 %23, %call6 | |
br i1 %cmp7, label %if.then8, label %if.end9 | |
if.then8: ; preds = %if.end | |
store i1 false, i1* %retval, align 1 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup27 | |
if.end9: ; preds = %if.end | |
%25 = bitcast i32* %actionPos to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %25) #3 | |
%26 = load %class.CStringBase*, %class.CStringBase** %command.addr, align 8, !tbaa !3 | |
%call10 = call i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %26) | |
%27 = load i32, i32* %i, align 4, !tbaa !15 | |
%idxprom11 = sext i32 %27 to i64 | |
%arrayidx12 = getelementptr inbounds i32, i32* %call10, i64 %idxprom11 | |
%28 = load i32, i32* %arrayidx12, align 4, !tbaa !57 | |
%call13 = call signext i32 @_Z11MyCharUpperw(i32 signext %28) | |
%call14 = call i32 @_ZNK11CStringBaseIwE4FindEw(%class.CStringBase* nonnull align 8 dereferenceable(16) @_ZL22kUpdatePairActionIDSet, i32 signext %call13) | |
store i32 %call14, i32* %actionPos, align 4, !tbaa !15 | |
%29 = load i32, i32* %actionPos, align 4, !tbaa !15 | |
%cmp15 = icmp slt i32 %29, 0 | |
br i1 %cmp15, label %if.then16, label %if.end17 | |
if.then16: ; preds = %if.end9 | |
store i1 false, i1* %retval, align 1 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
if.end17: ; preds = %if.end9 | |
%30 = load i32, i32* %actionPos, align 4, !tbaa !15 | |
%call18 = call i32 @_ZL23GetUpdatePairActionTypei(i32 %30) | |
%31 = load %"struct.NUpdateArchive::CActionSet"*, %"struct.NUpdateArchive::CActionSet"** %actionSet.addr, align 8, !tbaa !3 | |
%StateActions = getelementptr inbounds %"struct.NUpdateArchive::CActionSet", %"struct.NUpdateArchive::CActionSet"* %31, i32 0, i32 0 | |
%32 = load i32, i32* %statePos, align 4, !tbaa !15 | |
%idxprom19 = sext i32 %32 to i64 | |
%arrayidx20 = getelementptr inbounds [7 x i32], [7 x i32]* %StateActions, i64 0, i64 %idxprom19 | |
store i32 %call18, i32* %arrayidx20, align 4, !tbaa !115 | |
%33 = load i32, i32* %statePos, align 4, !tbaa !15 | |
%idxprom21 = sext i32 %33 to i64 | |
%arrayidx22 = getelementptr inbounds [7 x i32], [7 x i32]* @_ZL35kUpdatePairStateNotSupportedActions, i64 0, i64 %idxprom21 | |
%34 = load i32, i32* %arrayidx22, align 4, !tbaa !15 | |
%35 = load i32, i32* %actionPos, align 4, !tbaa !15 | |
%cmp23 = icmp eq i32 %34, %35 | |
br i1 %cmp23, label %if.then24, label %if.end25 | |
if.then24: ; preds = %if.end17 | |
store i1 false, i1* %retval, align 1 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
if.end25: ; preds = %if.end17 | |
%36 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc26 = add nsw i32 %36, 1 | |
store i32 %inc26, i32* %i, align 4, !tbaa !15 | |
store i32 0, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
cleanup: ; preds = %if.end25, %if.then24, %if.then16 | |
%37 = bitcast i32* %actionPos to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %37) #3 | |
br label %cleanup27 | |
cleanup27: ; preds = %cleanup, %if.then8, %invoke.cont | |
%38 = bitcast i32* %statePos to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %38) #3 | |
%39 = bitcast i32* %c to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %39) #3 | |
%cleanup.dest = load i32, i32* %cleanup.dest.slot, align 4 | |
switch i32 %cleanup.dest, label %cleanup29 [ | |
i32 0, label %cleanup.cont | |
] | |
cleanup.cont: ; preds = %cleanup27 | |
br label %for.cond, !llvm.loop !117 | |
cleanup29: ; preds = %cleanup27, %for.cond.cleanup | |
%40 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %40) #3 | |
%cleanup.dest30 = load i32, i32* %cleanup.dest.slot, align 4 | |
switch i32 %cleanup.dest30, label %unreachable [ | |
i32 2, label %for.end | |
i32 1, label %return | |
] | |
for.end: ; preds = %cleanup29 | |
%41 = load %class.CStringBase*, %class.CStringBase** %postString.addr, align 8, !tbaa !3 | |
call void @_ZN11CStringBaseIwE5EmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %41) | |
store i1 true, i1* %retval, align 1 | |
br label %return | |
return: ; preds = %for.end, %cleanup29 | |
%42 = load i1, i1* %retval, align 1 | |
ret i1 %42 | |
eh.resume: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val31 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val31 | |
unreachable: ; preds = %cleanup29 | |
unreachable | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(164) %struct.CUpdateArchiveCommand* @_ZN13CObjectVectorI21CUpdateArchiveCommandEixEi(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %this, i32 %index) #5 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.2*, align 8 | |
%index.addr = alloca i32, align 4 | |
store %class.CObjectVector.2* %this, %class.CObjectVector.2** %this.addr, align 8, !tbaa !3 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !15 | |
%this1 = load %class.CObjectVector.2*, %class.CObjectVector.2** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.2* %this1 to %class.CRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%call = call nonnull align 8 dereferenceable(8) i8** @_ZN13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1) | |
%2 = load i8*, i8** %call, align 8, !tbaa !3 | |
%3 = bitcast i8* %2 to %struct.CUpdateArchiveCommand* | |
ret %struct.CUpdateArchiveCommand* %3 | |
} | |
declare dso_local i32 @_Z21MyStringCompareNoCasePKwS0_(i32*, i32*) #4 | |
; Function Attrs: mustprogress uwtable | |
define internal i32 @_ZL23GetUpdatePairActionTypei(i32 %i) #5 { | |
entry: | |
%retval = alloca i32, align 4 | |
%i.addr = alloca i32, align 4 | |
store i32 %i, i32* %i.addr, align 4, !tbaa !15 | |
%0 = load i32, i32* %i.addr, align 4, !tbaa !15 | |
switch i32 %0, label %sw.epilog [ | |
i32 0, label %sw.bb | |
i32 1, label %sw.bb1 | |
i32 2, label %sw.bb2 | |
i32 3, label %sw.bb3 | |
] | |
sw.bb: ; preds = %entry | |
store i32 0, i32* %retval, align 4 | |
br label %return | |
sw.bb1: ; preds = %entry | |
store i32 1, i32* %retval, align 4 | |
br label %return | |
sw.bb2: ; preds = %entry | |
store i32 2, i32* %retval, align 4 | |
br label %return | |
sw.bb3: ; preds = %entry | |
store i32 3, i32* %retval, align 4 | |
br label %return | |
sw.epilog: ; preds = %entry | |
%exception = call i8* @__cxa_allocate_exception(i64 4) #3 | |
%1 = bitcast i8* %exception to i32* | |
store i32 98111603, i32* %1, align 16, !tbaa !15 | |
call void @__cxa_throw(i8* %exception, i8* bitcast (i8** @_ZTIi to i8*), i8* null) #18 | |
unreachable | |
return: ; preds = %sw.bb3, %sw.bb2, %sw.bb1, %sw.bb | |
%2 = load i32, i32* %retval, align 4 | |
ret i32 %2 | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local void @_ZN11CStringBaseIwE5EmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
store i32 0, i32* %_length, align 8, !tbaa !13 | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%0 = load i32*, i32** %_chars, align 8, !tbaa !10 | |
%arrayidx = getelementptr inbounds i32, i32* %0, i64 0 | |
store i32 0, i32* %arrayidx, align 4, !tbaa !57 | |
ret void | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(8) i8** @_ZN13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %this, i32 %index) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CRecordVector*, align 8 | |
%index.addr = alloca i32, align 4 | |
store %class.CRecordVector* %this, %class.CRecordVector** %this.addr, align 8, !tbaa !3 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !15 | |
%this1 = load %class.CRecordVector*, %class.CRecordVector** %this.addr, align 8 | |
%0 = bitcast %class.CRecordVector* %this1 to %class.CBaseRecordVector* | |
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %0, i32 0, i32 3 | |
%1 = load i8*, i8** %_items, align 8, !tbaa !77 | |
%2 = bitcast i8* %1 to i8** | |
%3 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%idxprom = sext i32 %3 to i64 | |
%arrayidx = getelementptr inbounds i8*, i8** %2, i64 %idxprom | |
ret i8** %arrayidx | |
} | |
declare dso_local i64 @_Z21ConvertStringToUInt64PKwPS0_(i32*, i32**) #4 | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN12CArchivePathD2Ev(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %struct.CArchivePath*, align 8 | |
store %struct.CArchivePath* %this, %struct.CArchivePath** %this.addr, align 8, !tbaa !3 | |
%this1 = load %struct.CArchivePath*, %struct.CArchivePath** %this.addr, align 8 | |
%TempPostfix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 7 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %TempPostfix) #3 | |
%TempPrefix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 6 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %TempPrefix) #3 | |
%VolExtension = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %VolExtension) #3 | |
%BaseExtension = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 3 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %BaseExtension) #3 | |
%Name = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 2 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #3 | |
%Prefix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 1 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix) #3 | |
%OriginalPath = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 0 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OriginalPath) #3 | |
ret void | |
} | |
; Function Attrs: inlinehint mustprogress nounwind uwtable | |
define linkonce_odr dso_local i32* @_Z12MyStringCopyIwEPT_S1_PKS0_(i32* %dest, i32* %src) #11 comdat { | |
entry: | |
%dest.addr = alloca i32*, align 8 | |
%src.addr = alloca i32*, align 8 | |
%destStart = alloca i32*, align 8 | |
store i32* %dest, i32** %dest.addr, align 8, !tbaa !3 | |
store i32* %src, i32** %src.addr, align 8, !tbaa !3 | |
%0 = bitcast i32** %destStart to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %0) #3 | |
%1 = load i32*, i32** %dest.addr, align 8, !tbaa !3 | |
store i32* %1, i32** %destStart, align 8, !tbaa !3 | |
br label %while.cond | |
while.cond: ; preds = %while.body, %entry | |
%2 = load i32*, i32** %src.addr, align 8, !tbaa !3 | |
%incdec.ptr = getelementptr inbounds i32, i32* %2, i32 1 | |
store i32* %incdec.ptr, i32** %src.addr, align 8, !tbaa !3 | |
%3 = load i32, i32* %2, align 4, !tbaa !57 | |
%4 = load i32*, i32** %dest.addr, align 8, !tbaa !3 | |
%incdec.ptr1 = getelementptr inbounds i32, i32* %4, i32 1 | |
store i32* %incdec.ptr1, i32** %dest.addr, align 8, !tbaa !3 | |
store i32 %3, i32* %4, align 4, !tbaa !57 | |
%cmp = icmp ne i32 %3, 0 | |
br i1 %cmp, label %while.body, label %while.end | |
while.body: ; preds = %while.cond | |
br label %while.cond, !llvm.loop !118 | |
while.end: ; preds = %while.cond | |
%5 = load i32*, i32** %destStart, align 8, !tbaa !3 | |
%6 = bitcast i32** %destStart to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %6) #3 | |
ret i32* %5 | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorI11CStringBaseIwEED0Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector*, align 8 | |
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this1) #3 | |
%0 = bitcast %class.CObjectVector* %this1 to i8* | |
call void @_ZdlPv(i8* %0) #16 | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorI11CStringBaseIwEE6DeleteEii(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #5 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector*, align 8 | |
%index.addr = alloca i32, align 4 | |
%num.addr = alloca i32, align 4 | |
%i = alloca i32, align 4 | |
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !3 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !15 | |
store i32 %num, i32* %num.addr, align 4, !tbaa !15 | |
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector* %this1 to %class.CBaseRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr) | |
%2 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #3 | |
store i32 0, i32* %i, align 4, !tbaa !15 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %entry | |
%3 = load i32, i32* %i, align 4, !tbaa !15 | |
%4 = load i32, i32* %num.addr, align 4, !tbaa !15 | |
%cmp = icmp slt i32 %3, %4 | |
br i1 %cmp, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
%5 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #3 | |
br label %for.end | |
for.body: ; preds = %for.cond | |
%6 = bitcast %class.CObjectVector* %this1 to %class.CBaseRecordVector* | |
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3 | |
%7 = load i8*, i8** %_items, align 8, !tbaa !77 | |
%8 = bitcast i8* %7 to i8** | |
%9 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%10 = load i32, i32* %i, align 4, !tbaa !15 | |
%add = add nsw i32 %9, %10 | |
%idxprom = sext i32 %add to i64 | |
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom | |
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !3 | |
%12 = bitcast i8* %11 to %class.CStringBase* | |
%isnull = icmp eq %class.CStringBase* %12, null | |
br i1 %isnull, label %delete.end, label %delete.notnull | |
delete.notnull: ; preds = %for.body | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %12) #3 | |
%13 = bitcast %class.CStringBase* %12 to i8* | |
call void @_ZdlPv(i8* %13) #16 | |
br label %delete.end | |
delete.end: ; preds = %delete.notnull, %for.body | |
br label %for.inc | |
for.inc: ; preds = %delete.end | |
%14 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc = add nsw i32 %14, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !15 | |
br label %for.cond, !llvm.loop !119 | |
for.end: ; preds = %for.cond.cleanup | |
%15 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector* | |
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector* | |
%17 = load i32, i32* %index.addr, align 4, !tbaa !15 | |
%18 = load i32, i32* %num.addr, align 4, !tbaa !15 | |
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18) | |
ret void | |
} | |
declare dso_local i32* @_Z13MyStringUpperPw(i32*) #4 | |
; Function Attrs: inlinehint mustprogress nounwind uwtable | |
define linkonce_odr dso_local i32 @_Z11MyStringLenIwEiPKT_(i32* %s) #11 comdat { | |
entry: | |
%s.addr = alloca i32*, align 8 | |
%i = alloca i32, align 4 | |
store i32* %s, i32** %s.addr, align 8, !tbaa !3 | |
%0 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #3 | |
store i32 0, i32* %i, align 4, !tbaa !15 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %entry | |
%1 = load i32*, i32** %s.addr, align 8, !tbaa !3 | |
%2 = load i32, i32* %i, align 4, !tbaa !15 | |
%idxprom = sext i32 %2 to i64 | |
%arrayidx = getelementptr inbounds i32, i32* %1, i64 %idxprom | |
%3 = load i32, i32* %arrayidx, align 4, !tbaa !57 | |
%cmp = icmp ne i32 %3, 0 | |
br i1 %cmp, label %for.body, label %for.end | |
for.body: ; preds = %for.cond | |
br label %for.inc | |
for.inc: ; preds = %for.body | |
%4 = load i32, i32* %i, align 4, !tbaa !15 | |
%inc = add nsw i32 %4, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !15 | |
br label %for.cond, !llvm.loop !120 | |
for.end: ; preds = %for.cond | |
%5 = load i32, i32* %i, align 4, !tbaa !15 | |
%6 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %6) #3 | |
ret i32 %5 | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local i32 @_ZNK11CStringBaseIwE4FindERKS0_i(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, %class.CStringBase* nonnull align 8 dereferenceable(16) %s, i32 %startIndex) #0 comdat align 2 { | |
entry: | |
%retval = alloca i32, align 4 | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%s.addr = alloca %class.CStringBase*, align 8 | |
%startIndex.addr = alloca i32, align 4 | |
%j = alloca i32, align 4 | |
%cleanup.dest.slot = alloca i32, align 4 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
store %class.CStringBase* %s, %class.CStringBase** %s.addr, align 8, !tbaa !3 | |
store i32 %startIndex, i32* %startIndex.addr, align 4, !tbaa !15 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%0 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3 | |
%call = call zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %0) | |
br i1 %call, label %if.then, label %if.end | |
if.then: ; preds = %entry | |
%1 = load i32, i32* %startIndex.addr, align 4, !tbaa !15 | |
store i32 %1, i32* %retval, align 4 | |
br label %return | |
if.end: ; preds = %entry | |
br label %for.cond | |
for.cond: ; preds = %for.inc19, %if.end | |
%2 = load i32, i32* %startIndex.addr, align 4, !tbaa !15 | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%3 = load i32, i32* %_length, align 8, !tbaa !13 | |
%cmp = icmp slt i32 %2, %3 | |
br i1 %cmp, label %for.body, label %for.end21 | |
for.body: ; preds = %for.cond | |
%4 = bitcast i32* %j to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %4) #3 | |
store i32 0, i32* %j, align 4, !tbaa !15 | |
br label %for.cond2 | |
for.cond2: ; preds = %for.inc, %for.body | |
%5 = load i32, i32* %j, align 4, !tbaa !15 | |
%6 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3 | |
%_length3 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %6, i32 0, i32 1 | |
%7 = load i32, i32* %_length3, align 8, !tbaa !13 | |
%cmp4 = icmp slt i32 %5, %7 | |
br i1 %cmp4, label %land.rhs, label %land.end | |
land.rhs: ; preds = %for.cond2 | |
%8 = load i32, i32* %startIndex.addr, align 4, !tbaa !15 | |
%9 = load i32, i32* %j, align 4, !tbaa !15 | |
%add = add nsw i32 %8, %9 | |
%_length5 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%10 = load i32, i32* %_length5, align 8, !tbaa !13 | |
%cmp6 = icmp slt i32 %add, %10 | |
br label %land.end | |
land.end: ; preds = %land.rhs, %for.cond2 | |
%11 = phi i1 [ false, %for.cond2 ], [ %cmp6, %land.rhs ] | |
br i1 %11, label %for.body7, label %for.end | |
for.body7: ; preds = %land.end | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%12 = load i32*, i32** %_chars, align 8, !tbaa !10 | |
%13 = load i32, i32* %startIndex.addr, align 4, !tbaa !15 | |
%14 = load i32, i32* %j, align 4, !tbaa !15 | |
%add8 = add nsw i32 %13, %14 | |
%idxprom = sext i32 %add8 to i64 | |
%arrayidx = getelementptr inbounds i32, i32* %12, i64 %idxprom | |
%15 = load i32, i32* %arrayidx, align 4, !tbaa !57 | |
%16 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3 | |
%_chars9 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %16, i32 0, i32 0 | |
%17 = load i32*, i32** %_chars9, align 8, !tbaa !10 | |
%18 = load i32, i32* %j, align 4, !tbaa !15 | |
%idxprom10 = sext i32 %18 to i64 | |
%arrayidx11 = getelementptr inbounds i32, i32* %17, i64 %idxprom10 | |
%19 = load i32, i32* %arrayidx11, align 4, !tbaa !57 | |
%cmp12 = icmp ne i32 %15, %19 | |
br i1 %cmp12, label %if.then13, label %if.end14 | |
if.then13: ; preds = %for.body7 | |
br label %for.end | |
if.end14: ; preds = %for.body7 | |
br label %for.inc | |
for.inc: ; preds = %if.end14 | |
%20 = load i32, i32* %j, align 4, !tbaa !15 | |
%inc = add nsw i32 %20, 1 | |
store i32 %inc, i32* %j, align 4, !tbaa !15 | |
br label %for.cond2, !llvm.loop !121 | |
for.end: ; preds = %if.then13, %land.end | |
%21 = load i32, i32* %j, align 4, !tbaa !15 | |
%22 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !3 | |
%_length15 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %22, i32 0, i32 1 | |
%23 = load i32, i32* %_length15, align 8, !tbaa !13 | |
%cmp16 = icmp eq i32 %21, %23 | |
br i1 %cmp16, label %if.then17, label %if.end18 | |
if.then17: ; preds = %for.end | |
%24 = load i32, i32* %startIndex.addr, align 4, !tbaa !15 | |
store i32 %24, i32* %retval, align 4 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
if.end18: ; preds = %for.end | |
store i32 0, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
cleanup: ; preds = %if.end18, %if.then17 | |
%25 = bitcast i32* %j to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %25) #3 | |
%cleanup.dest = load i32, i32* %cleanup.dest.slot, align 4 | |
switch i32 %cleanup.dest, label %unreachable [ | |
i32 0, label %cleanup.cont | |
i32 1, label %return | |
] | |
cleanup.cont: ; preds = %cleanup | |
br label %for.inc19 | |
for.inc19: ; preds = %cleanup.cont | |
%26 = load i32, i32* %startIndex.addr, align 4, !tbaa !15 | |
%inc20 = add nsw i32 %26, 1 | |
store i32 %inc20, i32* %startIndex.addr, align 4, !tbaa !15 | |
br label %for.cond, !llvm.loop !122 | |
for.end21: ; preds = %for.cond | |
store i32 -1, i32* %retval, align 4 | |
br label %return | |
return: ; preds = %for.end21, %cleanup, %if.then | |
%27 = load i32, i32* %retval, align 4 | |
ret i32 %27 | |
unreachable: ; preds = %cleanup | |
unreachable | |
} | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CRecordVectorIiED0Ev(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CRecordVector.4*, align 8 | |
store %class.CRecordVector.4* %this, %class.CRecordVector.4** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CRecordVector.4*, %class.CRecordVector.4** %this.addr, align 8 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.4*)*)(%class.CRecordVector.4* nonnull align 8 dereferenceable(32) %this1) #3 | |
%0 = bitcast %class.CRecordVector.4* %this1 to i8* | |
call void @_ZdlPv(i8* %0) #16 | |
ret void | |
} | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CRecordVectorIjED0Ev(%class.CRecordVector.6* nonnull align 8 dereferenceable(32) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CRecordVector.6*, align 8 | |
store %class.CRecordVector.6* %this, %class.CRecordVector.6** %this.addr, align 8, !tbaa !3 | |
%this1 = load %class.CRecordVector.6*, %class.CRecordVector.6** %this.addr, align 8 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.6*)*)(%class.CRecordVector.6* nonnull align 8 dereferenceable(32) %this1) #3 | |
%0 = bitcast %class.CRecordVector.6* %this1 to i8* | |
call void @_ZdlPv(i8* %0) #16 | |
ret void | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local void @_ZN11CStringBaseIwE9MoveItemsEii(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32 %destIndex, i32 %srcIndex) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%destIndex.addr = alloca i32, align 4 | |
%srcIndex.addr = alloca i32, align 4 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !3 | |
store i32 %destIndex, i32* %destIndex.addr, align 4, !tbaa !15 | |
store i32 %srcIndex, i32* %srcIndex.addr, align 4, !tbaa !15 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%0 = load i32*, i32** %_chars, align 8, !tbaa !10 | |
%1 = load i32, i32* %destIndex.addr, align 4, !tbaa !15 | |
%idx.ext = sext i32 %1 to i64 | |
%add.ptr = getelementptr inbounds i32, i32* %0, i64 %idx.ext | |
%2 = bitcast i32* %add.ptr to i8* | |
%_chars2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%3 = load i32*, i32** %_chars2, align 8, !tbaa !10 | |
%4 = load i32, i32* %srcIndex.addr, align 4, !tbaa !15 | |
%idx.ext3 = sext i32 %4 to i64 | |
%add.ptr4 = getelementptr inbounds i32, i32* %3, i64 %idx.ext3 | |
%5 = bitcast i32* %add.ptr4 to i8* | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%6 = load i32, i32* %_length, align 8, !tbaa !13 | |
%7 = load i32, i32* %srcIndex.addr, align 4, !tbaa !15 | |
%sub = sub nsw i32 %6, %7 | |
%add = add nsw i32 %sub, 1 | |
%conv = sext i32 %add to i64 | |
%mul = mul i64 4, %conv | |
call void @llvm.memmove.p0i8.p0i8.i64(i8* align 4 %2, i8* align 4 %5, i64 %mul, i1 false) | |
ret void | |
} | |
; Function Attrs: argmemonly nofree nounwind willreturn | |
declare void @llvm.memmove.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i1 immarg) #15 | |
; Function Attrs: uwtable | |
define internal void @_GLOBAL__sub_I_ArchiveCommandLine.cpp() #1 section ".text.startup" { | |
entry: | |
call void @__cxx_global_var_init.27() | |
call void @__cxx_global_var_init() | |
call void @__cxx_global_var_init.1() | |
ret void | |
} | |
attributes #0 = { mustprogress nounwind uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #1 = { uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #2 = { nounwind uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #3 = { nounwind } | |
attributes #4 = { "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #5 = { mustprogress uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #6 = { noinline noreturn nounwind } | |
attributes #7 = { nounwind "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #8 = { argmemonly nofree nosync nounwind willreturn } | |
attributes #9 = { inlinehint uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #10 = { inlinehint nounwind uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #11 = { inlinehint mustprogress nounwind uwtable "frame-pointer"="none" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #12 = { nobuiltin allocsize(0) "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #13 = { nobuiltin nounwind "frame-pointer"="none" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } | |
attributes #14 = { nofree nosync nounwind readnone speculatable willreturn } | |
attributes #15 = { argmemonly nofree nounwind willreturn } | |
attributes #16 = { builtin nounwind } | |
attributes #17 = { noreturn nounwind } | |
attributes #18 = { noreturn } | |
attributes #19 = { builtin allocsize(0) } | |
!llvm.module.flags = !{!0, !1} | |
!llvm.ident = !{!2} | |
!0 = !{i32 1, !"wchar_size", i32 4} | |
!1 = !{i32 7, !"uwtable", i32 1} | |
!2 = !{!"clang version 14.0.0"} | |
!3 = !{!4, !4, i64 0} | |
!4 = !{!"any pointer", !5, i64 0} | |
!5 = !{!"omnipotent char", !6, i64 0} | |
!6 = !{!"Simple C++ TBAA"} | |
!7 = !{!8, !9, i64 0} | |
!8 = !{!"_ZTS15CArchiveCommand", !9, i64 0} | |
!9 = !{!"_ZTSN12NCommandType5EEnumE", !5, i64 0} | |
!10 = !{!11, !4, i64 0} | |
!11 = !{!"_ZTS11CStringBaseIwE", !4, i64 0, !12, i64 8, !12, i64 12} | |
!12 = !{!"int", !5, i64 0} | |
!13 = !{!11, !12, i64 8} | |
!14 = !{!11, !12, i64 12} | |
!15 = !{!12, !12, i64 0} | |
!16 = !{!17, !18, i64 2} | |
!17 = !{!"_ZTS26CArchiveCommandLineOptions", !18, i64 0, !18, i64 1, !18, i64 2, !18, i64 3, !18, i64 4, !18, i64 5, !18, i64 6, !18, i64 7, !18, i64 8, !18, i64 9, !19, i64 16, !8, i64 48, !11, i64 56, !18, i64 72, !11, i64 80, !18, i64 96, !18, i64 97, !18, i64 98, !11, i64 104, !21, i64 120, !22, i64 128, !22, i64 160, !23, i64 192, !24, i64 224, !11, i64 544, !18, i64 560, !12, i64 564, !12, i64 568, !12, i64 572, !11, i64 576} | |
!18 = !{!"bool", !5, i64 0} | |
!19 = !{!"_ZTSN9NWildcard7CCensorE", !20, i64 0} | |
!20 = !{!"_ZTS13CObjectVectorIN9NWildcard5CPairEE"} | |
!21 = !{!"_ZTSN8NExtract14NOverwriteMode5EEnumE", !5, i64 0} | |
!22 = !{!"_ZTS13CObjectVectorI11CStringBaseIwEE"} | |
!23 = !{!"_ZTS13CObjectVectorI9CPropertyE"} | |
!24 = !{!"_ZTS14CUpdateOptions", !25, i64 0, !26, i64 40, !18, i64 72, !27, i64 80, !18, i64 200, !11, i64 208, !18, i64 224, !18, i64 225, !11, i64 232, !18, i64 248, !18, i64 249, !18, i64 250, !11, i64 256, !11, i64 272, !28, i64 288} | |
!25 = !{!"_ZTS22CCompressionMethodMode", !12, i64 0, !23, i64 8} | |
!26 = !{!"_ZTS13CObjectVectorI21CUpdateArchiveCommandE"} | |
!27 = !{!"_ZTS12CArchivePath", !11, i64 0, !11, i64 16, !11, i64 32, !11, i64 48, !11, i64 64, !18, i64 80, !11, i64 88, !11, i64 104} | |
!28 = !{!"_ZTS13CRecordVectorIyE"} | |
!29 = !{!17, !18, i64 3} | |
!30 = !{!17, !18, i64 4} | |
!31 = !{!32, !18, i64 0} | |
!32 = !{!"_ZTSN18NCommandLineParser13CSwitchResultE", !18, i64 0, !18, i64 1, !22, i64 8, !12, i64 40} | |
!33 = !{i8 0, i8 2} | |
!34 = !{!17, !18, i64 5} | |
!35 = !{!17, !18, i64 6} | |
!36 = !{!17, !18, i64 7} | |
!37 = !{!17, !18, i64 0} | |
!38 = !{!17, !18, i64 1} | |
!39 = !{!17, !18, i64 96} | |
!40 = !{!17, !18, i64 97} | |
!41 = !{!32, !12, i64 40} | |
!42 = !{!18, !18, i64 0} | |
!43 = !{!44, !44, i64 0} | |
!44 = !{!"_ZTSN13NRecursedType5EEnumE", !5, i64 0} | |
!45 = !{!17, !9, i64 48} | |
!46 = !{!17, !18, i64 8} | |
!47 = !{!17, !18, i64 72} | |
!48 = !{!17, !18, i64 9} | |
!49 = distinct !{!49, !50} | |
!50 = !{!"llvm.loop.mustprogress"} | |
!51 = distinct !{!51, !50} | |
!52 = distinct !{!52, !50} | |
!53 = !{!17, !21, i64 120} | |
!54 = !{!21, !21, i64 0} | |
!55 = !{!17, !18, i64 560} | |
!56 = !{!24, !18, i64 249} | |
!57 = !{!58, !58, i64 0} | |
!58 = !{!"wchar_t", !5, i64 0} | |
!59 = !{!24, !18, i64 250} | |
!60 = !{!24, !18, i64 248} | |
!61 = !{!24, !18, i64 225} | |
!62 = !{!17, !12, i64 568} | |
!63 = !{!17, !12, i64 572} | |
!64 = !{!17, !12, i64 564} | |
!65 = distinct !{!65, !50} | |
!66 = !{!67, !12, i64 12} | |
!67 = !{!"_ZTS17CBaseRecordVector", !12, i64 8, !12, i64 12, !4, i64 16, !68, i64 24} | |
!68 = !{!"long", !5, i64 0} | |
!69 = distinct !{!69, !50} | |
!70 = distinct !{!70, !50} | |
!71 = !{!72, !72, i64 0} | |
!72 = !{!"vtable pointer", !6, i64 0} | |
!73 = !{!74, !12, i64 48} | |
!74 = !{!"_ZTS8CDirItem", !75, i64 0, !76, i64 8, !76, i64 16, !76, i64 24, !11, i64 32, !12, i64 48, !12, i64 52, !12, i64 56} | |
!75 = !{!"long long", !5, i64 0} | |
!76 = !{!"_ZTS9_FILETIME", !12, i64 0, !12, i64 4} | |
!77 = !{!67, !4, i64 16} | |
!78 = distinct !{!78, !50} | |
!79 = !{!9, !9, i64 0} | |
!80 = !{i64 0, i64 28, !81} | |
!81 = !{!5, !5, i64 0} | |
!82 = !{!24, !18, i64 72} | |
!83 = !{!24, !18, i64 200} | |
!84 = !{!75, !75, i64 0} | |
!85 = distinct !{!85, !50} | |
!86 = !{!87, !4, i64 0} | |
!87 = !{!"_ZTSN18NCommandLineParser11CSwitchFormE", !4, i64 0, !88, i64 8, !18, i64 12, !12, i64 16, !12, i64 20, !4, i64 24} | |
!88 = !{!"_ZTSN18NCommandLineParser11NSwitchType5EEnumE", !5, i64 0} | |
!89 = !{!87, !88, i64 8} | |
!90 = !{!87, !18, i64 12} | |
!91 = !{!87, !12, i64 16} | |
!92 = !{!87, !12, i64 20} | |
!93 = !{!87, !4, i64 24} | |
!94 = distinct !{!94, !50} | |
!95 = distinct !{!95, !50} | |
!96 = !{!97, !4, i64 0} | |
!97 = !{!"_ZTS11CStringBaseIcE", !4, i64 0, !12, i64 8, !12, i64 12} | |
!98 = !{!97, !12, i64 8} | |
!99 = !{!97, !12, i64 12} | |
!100 = distinct !{!100, !50} | |
!101 = distinct !{!101, !50} | |
!102 = distinct !{!102, !50} | |
!103 = distinct !{!103, !50} | |
!104 = !{!68, !68, i64 0} | |
!105 = !{!67, !12, i64 8} | |
!106 = !{!67, !68, i64 24} | |
!107 = distinct !{!107, !50} | |
!108 = distinct !{!108, !50} | |
!109 = distinct !{!109, !50} | |
!110 = distinct !{!110, !50} | |
!111 = distinct !{!111, !50} | |
!112 = distinct !{!112, !50} | |
!113 = !{!27, !18, i64 80} | |
!114 = distinct !{!114, !50} | |
!115 = !{!116, !116, i64 0} | |
!116 = !{!"_ZTSN14NUpdateArchive11NPairAction5EEnumE", !5, i64 0} | |
!117 = distinct !{!117, !50} | |
!118 = distinct !{!118, !50} | |
!119 = distinct !{!119, !50} | |
!120 = distinct !{!120, !50} | |
!121 = distinct !{!121, !50} | |
!122 = distinct !{!122, !50} |
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = '../MultiSource/Benchmarks/7zip/CPP/7zip/UI/Console/Main.cpp' | |
source_filename = "../MultiSource/Benchmarks/7zip/CPP/7zip/UI/Console/Main.cpp" | |
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" | |
%struct.GUID = type { i32, i16, i16, [8 x i8] } | |
%class.CStdOutStream = type { i8, %struct._IO_FILE* } | |
%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, %struct._IO_codecvt*, %struct._IO_wide_data*, %struct._IO_FILE*, i8*, i64, i32, [20 x i8] } | |
%struct._IO_marker = type opaque | |
%struct._IO_codecvt = type opaque | |
%struct._IO_wide_data = type opaque | |
%class.CObjectVector = type { %class.CRecordVector } | |
%class.CRecordVector = type { %class.CBaseRecordVector } | |
%class.CBaseRecordVector = type { i32 (...)**, i32, i32, i8*, i64 } | |
%struct.CArchiveCommandLineOptions = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, %"class.NWildcard::CCensor", %struct.CArchiveCommand, %class.CStringBase, i8, %class.CStringBase, i8, i8, i8, %class.CStringBase, i32, %class.CObjectVector, %class.CObjectVector, %class.CObjectVector.1, %struct.CUpdateOptions, %class.CStringBase, i8, i32, i32, i32, %class.CStringBase } | |
%"class.NWildcard::CCensor" = type { %class.CObjectVector.0 } | |
%class.CObjectVector.0 = type { %class.CRecordVector } | |
%struct.CArchiveCommand = type { i32 } | |
%class.CObjectVector.1 = type { %class.CRecordVector } | |
%struct.CUpdateOptions = type { %struct.CCompressionMethodMode, %class.CObjectVector.2, i8, %struct.CArchivePath, i8, %class.CStringBase, i8, i8, %class.CStringBase, i8, i8, i8, %class.CStringBase, %class.CStringBase, %class.CRecordVector.3 } | |
%struct.CCompressionMethodMode = type { i32, %class.CObjectVector.1 } | |
%class.CObjectVector.2 = type { %class.CRecordVector } | |
%struct.CArchivePath = type { %class.CStringBase, %class.CStringBase, %class.CStringBase, %class.CStringBase, %class.CStringBase, i8, %class.CStringBase, %class.CStringBase } | |
%class.CRecordVector.3 = type { %class.CBaseRecordVector } | |
%class.CStringBase = type { i32*, i32, i32 } | |
%class.CArchiveCommandLineParser = type { %"class.NCommandLineParser::CParser" } | |
%"class.NCommandLineParser::CParser" = type { i32, %"struct.NCommandLineParser::CSwitchResult"*, %class.CObjectVector } | |
%"struct.NCommandLineParser::CSwitchResult" = type <{ i8, i8, [6 x i8], %class.CObjectVector, i32, [4 x i8] }> | |
%class.CCodecs = type { %struct.IUnknown, %class.CMyUnknownImp, %class.CObjectVector.4 } | |
%struct.IUnknown = type { i32 (...)** } | |
%class.CMyUnknownImp = type { i32 } | |
%class.CObjectVector.4 = type { %class.CRecordVector } | |
%class.CMyComPtr = type { %struct.IUnknown* } | |
%class.CRecordVector.5 = type { %class.CBaseRecordVector } | |
%struct.CArcInfoEx = type <{ i8, [7 x i8], %struct.IInArchive* ()*, %struct.IOutArchive* ()*, %class.CStringBase, %class.CObjectVector.6, %class.CBuffer, i8, [7 x i8] }> | |
%struct.IInArchive = type { %struct.IUnknown } | |
%struct.IOutArchive = type { %struct.IUnknown } | |
%class.CObjectVector.6 = type { %class.CRecordVector } | |
%class.CBuffer = type { i32 (...)**, i64, i8* } | |
%struct.CArcExtInfo = type { %class.CStringBase, %class.CStringBase } | |
%class.CExtractCallbackConsole = type { %struct.IExtractCallbackUI, %struct.ICryptoGetTextPassword, %class.CMyUnknownImp, i8, %class.CStringBase, i64, i64, i64, i64, %class.CStdOutStream* } | |
%struct.IExtractCallbackUI = type { %struct.IFolderArchiveExtractCallback } | |
%struct.IFolderArchiveExtractCallback = type { %struct.IProgress } | |
%struct.IProgress = type { %struct.IUnknown } | |
%struct.ICryptoGetTextPassword = type { %struct.IUnknown } | |
%class.CMyComPtr.7 = type { %struct.IFolderArchiveExtractCallback* } | |
%class.COpenCallbackConsole = type { %struct.IOpenCallbackUI, %class.CStdOutStream*, i8, i8, %class.CStringBase } | |
%struct.IOpenCallbackUI = type { i32 (...)** } | |
%struct.CExtractOptions = type { i8, i8, i8, i8, i8, i32, i32, %class.CStringBase, %class.CObjectVector.1 } | |
%struct.CDecompressStat = type { i64, i64, i64, i64, i64, i32 } | |
%class.CUpdateCallbackConsole = type { %struct.IUpdateCallbackUI2, %class.CPercentPrinter, i8, i8, i8, %class.CStdOutStream*, i8, i8, i8, %class.CStringBase, i8, %class.CObjectVector, %class.CRecordVector.5, %class.CObjectVector, %class.CRecordVector.5 } | |
%struct.IUpdateCallbackUI2 = type { %struct.IUpdateCallbackUI } | |
%struct.IUpdateCallbackUI = type { i32 (...)** } | |
%class.CPercentPrinter = type { i64, i64, i64, i64, i32, %class.CStdOutStream* } | |
%struct.CUpdateErrorInfo = type { %struct.CErrorInfo } | |
%struct.CErrorInfo = type { i32, %class.CStringBase, %class.CStringBase, %class.CStringBase } | |
%struct.CUpdateArchiveCommand = type <{ %class.CStringBase, %struct.CArchivePath, %"struct.NUpdateArchive::CActionSet", [4 x i8] }> | |
%"struct.NUpdateArchive::CActionSet" = type { [7 x i32] } | |
%struct.CSystemException = type { i32 } | |
%"struct.NWildcard::CPair" = type { %class.CStringBase, %"class.NWildcard::CCensorNode" } | |
%"class.NWildcard::CCensorNode" = type { %"class.NWildcard::CCensorNode"*, %class.CStringBase, %class.CObjectVector.8, %class.CObjectVector.9, %class.CObjectVector.9 } | |
%class.CObjectVector.8 = type { %class.CRecordVector } | |
%class.CObjectVector.9 = type { %class.CRecordVector } | |
%"struct.NWildcard::CItem" = type <{ %class.CObjectVector, i8, i8, i8, [5 x i8] }> | |
%struct.CProperty = type { %class.CStringBase, %class.CStringBase } | |
$_ZN13CObjectVectorI11CStringBaseIwEEC2Ev = comdat any | |
$_ZNK17CBaseRecordVector4SizeEv = comdat any | |
$_ZN13CObjectVectorI11CStringBaseIwEE6DeleteEii = comdat any | |
$_ZN26CArchiveCommandLineOptionsC2Ev = comdat any | |
$_ZN7CCodecsC2Ev = comdat any | |
$_ZN9CMyComPtrI8IUnknownEC2EPS0_ = comdat any | |
$_ZN16CSystemExceptionC2Ei = comdat any | |
$_ZN13CRecordVectorIiEC2Ev = comdat any | |
$_ZN13CObjectVectorI10CArcInfoExEixEi = comdat any | |
$_ZN11CStringBaseIwEC2Ev = comdat any | |
$_ZNK13CObjectVectorI11CArcExtInfoEixEi = comdat any | |
$_ZN11CStringBaseIwEpLERKS0_ = comdat any | |
$_ZNK11CStringBaseIwE7IsEmptyEv = comdat any | |
$_ZN11CStringBaseIwEpLEPKw = comdat any | |
$_ZN11CStringBaseIwEpLEw = comdat any | |
$_ZNK7CBufferIhE11GetCapacityEv = comdat any | |
$_ZNK7CBufferIhEcvPKhEv = comdat any | |
$_ZN11CStringBaseIwED2Ev = comdat any | |
$_ZNK11CStringBaseIwE13CompareNoCaseEPKw = comdat any | |
$_ZN13CStdOutStreamcvP8_IO_FILEEv = comdat any | |
$_ZN23CExtractCallbackConsoleC2Ev = comdat any | |
$_ZN9CMyComPtrI29IFolderArchiveExtractCallbackEC2EPS0_ = comdat any | |
$_ZN11CStringBaseIwEaSERKS0_ = comdat any | |
$_ZN23CExtractCallbackConsole4InitEv = comdat any | |
$_ZN20COpenCallbackConsoleC2Ev = comdat any | |
$_ZN15CExtractOptionsC2Ev = comdat any | |
$_ZNK15CArchiveCommand10IsTestModeEv = comdat any | |
$_ZN13CObjectVectorI9CPropertyEaSERKS1_ = comdat any | |
$_ZN13CObjectVectorIN9NWildcard5CPairEE5FrontEv = comdat any | |
$_ZNK11CStringBaseIwEcvPKwEv = comdat any | |
$_ZN15CExtractOptionsD2Ev = comdat any | |
$_ZN20COpenCallbackConsoleD2Ev = comdat any | |
$_ZN9CMyComPtrI29IFolderArchiveExtractCallbackED2Ev = comdat any | |
$_ZN11CStringBaseIwEaSEPKw = comdat any | |
$_ZN22CUpdateCallbackConsoleC2Ev = comdat any | |
$_ZN22CUpdateCallbackConsole4InitEP13CStdOutStream = comdat any | |
$_ZN16CUpdateErrorInfoC2Ev = comdat any | |
$_ZN13CObjectVectorI21CUpdateArchiveCommandEixEi = comdat any | |
$_ZNK12CArchivePath12GetFinalPathEv = comdat any | |
$_ZN13CObjectVectorI11CStringBaseIwEEixEi = comdat any | |
$_ZN8NWindows6NError16MyFormatMessageWEj = comdat any | |
$_ZN13CRecordVectorIiEixEi = comdat any | |
$_ZN10CErrorInfoD2Ev = comdat any | |
$_ZN22CUpdateCallbackConsoleD2Ev = comdat any | |
$_ZN9CMyComPtrI8IUnknownED2Ev = comdat any | |
$_ZN25CArchiveCommandLineParserD2Ev = comdat any | |
$_ZN26CArchiveCommandLineOptionsD2Ev = comdat any | |
$_ZN13CObjectVectorI11CStringBaseIwEED2Ev = comdat any | |
$_ZN9NWildcard7CCensorC2Ev = comdat any | |
$_ZN13CObjectVectorI9CPropertyEC2Ev = comdat any | |
$_ZN14CUpdateOptionsC2Ev = comdat any | |
$_ZN14CUpdateOptionsD2Ev = comdat any | |
$_ZN13CObjectVectorI9CPropertyED2Ev = comdat any | |
$_ZN9NWildcard7CCensorD2Ev = comdat any | |
$_ZN13CObjectVectorIN9NWildcard5CPairEEC2Ev = comdat any | |
$_ZN13CRecordVectorIPvEC2Ev = comdat any | |
$_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev = comdat any | |
$_ZN13CObjectVectorIN9NWildcard5CPairEED0Ev = comdat any | |
$_ZN13CObjectVectorIN9NWildcard5CPairEE6DeleteEii = comdat any | |
$_ZN17CBaseRecordVectorC2Em = comdat any | |
$_ZN13CRecordVectorIPvED0Ev = comdat any | |
$__clang_call_terminate = comdat any | |
$_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi = comdat any | |
$_ZN9NWildcard5CPairD2Ev = comdat any | |
$_ZN9NWildcard11CCensorNodeD2Ev = comdat any | |
$_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev = comdat any | |
$_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev = comdat any | |
$_ZN13CObjectVectorIN9NWildcard5CItemEED0Ev = comdat any | |
$_ZN13CObjectVectorIN9NWildcard5CItemEE6DeleteEii = comdat any | |
$_ZN9NWildcard5CItemD2Ev = comdat any | |
$_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED0Ev = comdat any | |
$_ZN13CObjectVectorIN9NWildcard11CCensorNodeEE6DeleteEii = comdat any | |
$_ZN13CObjectVectorI9CPropertyED0Ev = comdat any | |
$_ZN13CObjectVectorI9CPropertyE6DeleteEii = comdat any | |
$_ZN9CPropertyD2Ev = comdat any | |
$_ZN22CCompressionMethodModeC2Ev = comdat any | |
$_ZN13CObjectVectorI21CUpdateArchiveCommandEC2Ev = comdat any | |
$_ZN12CArchivePathC2Ev = comdat any | |
$_ZN13CRecordVectorIyEC2Ev = comdat any | |
$_ZN12CArchivePathD2Ev = comdat any | |
$_ZN13CObjectVectorI21CUpdateArchiveCommandED2Ev = comdat any | |
$_ZN22CCompressionMethodModeD2Ev = comdat any | |
$_ZN13CObjectVectorI21CUpdateArchiveCommandED0Ev = comdat any | |
$_ZN13CObjectVectorI21CUpdateArchiveCommandE6DeleteEii = comdat any | |
$_ZN21CUpdateArchiveCommandD2Ev = comdat any | |
$_ZN13CRecordVectorIyED0Ev = comdat any | |
$_ZN8IUnknownC2Ev = comdat any | |
$_ZN13CMyUnknownImpC2Ev = comdat any | |
$_ZN13CObjectVectorI10CArcInfoExEC2Ev = comdat any | |
$_ZN7CCodecs14QueryInterfaceERK4GUIDPPv = comdat any | |
$_ZN7CCodecs6AddRefEv = comdat any | |
$_ZN7CCodecs7ReleaseEv = comdat any | |
$_ZN7CCodecsD2Ev = comdat any | |
$_ZN7CCodecsD0Ev = comdat any | |
$_ZN8IUnknownD0Ev = comdat any | |
$_ZN13CObjectVectorI10CArcInfoExED2Ev = comdat any | |
$_ZN13CObjectVectorI10CArcInfoExED0Ev = comdat any | |
$_ZN13CObjectVectorI10CArcInfoExE6DeleteEii = comdat any | |
$_ZN10CArcInfoExD2Ev = comdat any | |
$_ZN7CBufferIhED2Ev = comdat any | |
$_ZN13CObjectVectorI11CArcExtInfoED2Ev = comdat any | |
$_ZN7CBufferIhED0Ev = comdat any | |
$_ZN13CObjectVectorI11CArcExtInfoED0Ev = comdat any | |
$_ZN13CObjectVectorI11CArcExtInfoE6DeleteEii = comdat any | |
$_ZN11CArcExtInfoD2Ev = comdat any | |
$_ZeqRK4GUIDS1_ = comdat any | |
$_ZNK11CStringBaseIwE6LengthEv = comdat any | |
$_ZN18IExtractCallbackUIC2Ev = comdat any | |
$_ZN22ICryptoGetTextPasswordC2Ev = comdat any | |
$_ZN29IFolderArchiveExtractCallbackC2Ev = comdat any | |
$_ZN18IExtractCallbackUID0Ev = comdat any | |
$_ZN9IProgressC2Ev = comdat any | |
$_ZN29IFolderArchiveExtractCallbackD0Ev = comdat any | |
$_ZN9IProgressD0Ev = comdat any | |
$_ZN8IUnknownD2Ev = comdat any | |
$_ZN22ICryptoGetTextPasswordD0Ev = comdat any | |
$_ZN15IOpenCallbackUIC2Ev = comdat any | |
$_ZN18IUpdateCallbackUI2C2Ev = comdat any | |
$_ZN15CPercentPrinterC2Ey = comdat any | |
$_ZN17IUpdateCallbackUIC2Ev = comdat any | |
$_ZN10CErrorInfoC2Ev = comdat any | |
$_ZNK12CArchivePath17GetPathWithoutExtEv = comdat any | |
$_ZplIwE11CStringBaseIT_ERKS2_S4_ = comdat any | |
$_ZN11CStringBaseIwEC2Ew = comdat any | |
$_ZN11CStringBaseIwEC2ERKS0_ = comdat any | |
$_ZN11CStringBaseIwE11SetCapacityEi = comdat any | |
$_Z12MyStringCopyIwEPT_S1_PKS0_ = comdat any | |
$_ZN8NWindows6NError15MyFormatMessageEj = comdat any | |
$_ZN13CObjectVectorI11CStringBaseIwEED0Ev = comdat any | |
$_ZN11CStringBaseIwE5EmptyEv = comdat any | |
$_Z11MyStringLenIwEiPKT_ = comdat any | |
$_ZNK13CRecordVectorIPvEixEi = comdat any | |
$_ZN11CStringBaseIwE10GrowLengthEi = comdat any | |
$_ZN13CRecordVectorIiED0Ev = comdat any | |
$_ZN13CRecordVectorIPvEixEi = comdat any | |
$_ZN13CObjectVectorI9CPropertyEpLERKS1_ = comdat any | |
$_ZN13CObjectVectorI9CPropertyE3AddERKS0_ = comdat any | |
$_ZNK13CObjectVectorI9CPropertyEixEi = comdat any | |
$_ZN13CRecordVectorIPvE3AddES0_ = comdat any | |
$_ZN9CPropertyC2ERKS_ = comdat any | |
$_ZN13CObjectVectorIN9NWildcard5CPairEEixEi = comdat any | |
$_ZTS16CSystemException = comdat any | |
$_ZTI16CSystemException = comdat any | |
$_ZTV13CObjectVectorIN9NWildcard5CPairEE = comdat any | |
$_ZTS13CObjectVectorIN9NWildcard5CPairEE = comdat any | |
$_ZTS13CRecordVectorIPvE = comdat any | |
$_ZTI13CRecordVectorIPvE = comdat any | |
$_ZTI13CObjectVectorIN9NWildcard5CPairEE = comdat any | |
$_ZTV13CRecordVectorIPvE = comdat any | |
$_ZTV13CObjectVectorIN9NWildcard5CItemEE = comdat any | |
$_ZTS13CObjectVectorIN9NWildcard5CItemEE = comdat any | |
$_ZTI13CObjectVectorIN9NWildcard5CItemEE = comdat any | |
$_ZTV13CObjectVectorIN9NWildcard11CCensorNodeEE = comdat any | |
$_ZTS13CObjectVectorIN9NWildcard11CCensorNodeEE = comdat any | |
$_ZTI13CObjectVectorIN9NWildcard11CCensorNodeEE = comdat any | |
$_ZTV13CObjectVectorI9CPropertyE = comdat any | |
$_ZTS13CObjectVectorI9CPropertyE = comdat any | |
$_ZTI13CObjectVectorI9CPropertyE = comdat any | |
$_ZTV13CObjectVectorI21CUpdateArchiveCommandE = comdat any | |
$_ZTS13CObjectVectorI21CUpdateArchiveCommandE = comdat any | |
$_ZTI13CObjectVectorI21CUpdateArchiveCommandE = comdat any | |
$_ZTV13CRecordVectorIyE = comdat any | |
$_ZTS13CRecordVectorIyE = comdat any | |
$_ZTI13CRecordVectorIyE = comdat any | |
$_ZTV7CCodecs = comdat any | |
$_ZTS7CCodecs = comdat any | |
$_ZTS8IUnknown = comdat any | |
$_ZTI8IUnknown = comdat any | |
$_ZTS13CMyUnknownImp = comdat any | |
$_ZTI13CMyUnknownImp = comdat any | |
$_ZTI7CCodecs = comdat any | |
$_ZTV8IUnknown = comdat any | |
$_ZTV13CObjectVectorI10CArcInfoExE = comdat any | |
$_ZTS13CObjectVectorI10CArcInfoExE = comdat any | |
$_ZTI13CObjectVectorI10CArcInfoExE = comdat any | |
$_ZTV7CBufferIhE = comdat any | |
$_ZTS7CBufferIhE = comdat any | |
$_ZTI7CBufferIhE = comdat any | |
$_ZTV13CObjectVectorI11CArcExtInfoE = comdat any | |
$_ZTS13CObjectVectorI11CArcExtInfoE = comdat any | |
$_ZTI13CObjectVectorI11CArcExtInfoE = comdat any | |
$_ZTV18IExtractCallbackUI = comdat any | |
$_ZTS18IExtractCallbackUI = comdat any | |
$_ZTS29IFolderArchiveExtractCallback = comdat any | |
$_ZTS9IProgress = comdat any | |
$_ZTI9IProgress = comdat any | |
$_ZTI29IFolderArchiveExtractCallback = comdat any | |
$_ZTI18IExtractCallbackUI = comdat any | |
$_ZTV29IFolderArchiveExtractCallback = comdat any | |
$_ZTV9IProgress = comdat any | |
$_ZTV22ICryptoGetTextPassword = comdat any | |
$_ZTS22ICryptoGetTextPassword = comdat any | |
$_ZTI22ICryptoGetTextPassword = comdat any | |
$_ZTV15IOpenCallbackUI = comdat any | |
$_ZTS15IOpenCallbackUI = comdat any | |
$_ZTI15IOpenCallbackUI = comdat any | |
$_ZTV18IUpdateCallbackUI2 = comdat any | |
$_ZTS18IUpdateCallbackUI2 = comdat any | |
$_ZTS17IUpdateCallbackUI = comdat any | |
$_ZTI17IUpdateCallbackUI = comdat any | |
$_ZTI18IUpdateCallbackUI2 = comdat any | |
$_ZTV17IUpdateCallbackUI = comdat any | |
$_ZTSN9NExitCode5EEnumE = comdat any | |
$_ZTIN9NExitCode5EEnumE = comdat any | |
$_ZTV13CObjectVectorI11CStringBaseIwEE = comdat any | |
$_ZTS13CObjectVectorI11CStringBaseIwEE = comdat any | |
$_ZTI13CObjectVectorI11CStringBaseIwEE = comdat any | |
$_ZTV13CRecordVectorIiE = comdat any | |
$_ZTS13CRecordVectorIiE = comdat any | |
$_ZTI13CRecordVectorIiE = comdat any | |
@IID_IUnknown = dso_local constant %struct.GUID { i32 0, i16 0, i16 0, [8 x i8] c"\C0\00\00\00\00\00\00F" }, align 4 | |
@IID_IProgress = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\00\00\05\00\00" }, align 4 | |
@IID_ISequentialInStream = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\03\00\01\00\00" }, align 4 | |
@IID_ISequentialOutStream = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\03\00\02\00\00" }, align 4 | |
@IID_IInStream = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\03\00\03\00\00" }, align 4 | |
@IID_IOutStream = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\03\00\04\00\00" }, align 4 | |
@IID_IStreamGetSize = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\03\00\06\00\00" }, align 4 | |
@IID_IOutStreamFlush = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\03\00\07\00\00" }, align 4 | |
@IID_IArchiveOpenCallback = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00\10\00\00" }, align 4 | |
@IID_IArchiveExtractCallback = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00 \00\00" }, align 4 | |
@IID_IArchiveOpenVolumeCallback = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\000\00\00" }, align 4 | |
@IID_IInArchiveGetStream = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00@\00\00" }, align 4 | |
@IID_IArchiveOpenSetSubArchiveName = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00P\00\00" }, align 4 | |
@IID_IInArchive = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00`\00\00" }, align 4 | |
@IID_IArchiveOpenSeq = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00a\00\00" }, align 4 | |
@IID_IArchiveUpdateCallback = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00\80\00\00" }, align 4 | |
@IID_IArchiveUpdateCallback2 = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00\82\00\00" }, align 4 | |
@IID_IOutArchive = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00\A0\00\00" }, align 4 | |
@IID_ISetProperties = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\06\00\03\00\00" }, align 4 | |
@IID_ICryptoGetTextPassword = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\05\00\10\00\00" }, align 4 | |
@IID_ICryptoGetTextPassword2 = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\05\00\11\00\00" }, align 4 | |
@IID_ICompressProgressInfo = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00\04\00\00" }, align 4 | |
@IID_ICompressCoder = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00\05\00\00" }, align 4 | |
@IID_ICompressCoder2 = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00\18\00\00" }, align 4 | |
@IID_ICompressSetCoderProperties = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00 \00\00" }, align 4 | |
@IID_ICompressSetDecoderProperties2 = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00\22\00\00" }, align 4 | |
@IID_ICompressWriteCoderProperties = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00#\00\00" }, align 4 | |
@IID_ICompressGetInStreamProcessedSize = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00$\00\00" }, align 4 | |
@IID_ICompressSetCoderMt = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00%\00\00" }, align 4 | |
@IID_ICompressGetSubStreamSize = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\000\00\00" }, align 4 | |
@IID_ICompressSetInStream = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\001\00\00" }, align 4 | |
@IID_ICompressSetOutStream = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\002\00\00" }, align 4 | |
@IID_ICompressSetInStreamSize = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\003\00\00" }, align 4 | |
@IID_ICompressSetOutStreamSize = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\004\00\00" }, align 4 | |
@IID_ICompressSetBufSize = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\005\00\00" }, align 4 | |
@IID_ICompressFilter = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00@\00\00" }, align 4 | |
@IID_ICompressCodecsInfo = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00`\00\00" }, align 4 | |
@IID_ISetCompressCodecsInfo = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00a\00\00" }, align 4 | |
@IID_ICryptoProperties = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00\80\00\00" }, align 4 | |
@IID_ICryptoResetInitVector = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00\8C\00\00" }, align 4 | |
@IID_ICryptoSetPassword = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00\90\00\00" }, align 4 | |
@IID_ICryptoSetCRC = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\04\00\A0\00\00" }, align 4 | |
@IID_IFolderArchiveExtractCallback = dso_local constant %struct.GUID { i32 588713833, i16 16577, i16 10122, [8 x i8] c"\00\00\00\01\00\07\00\00" }, align 4 | |
@g_StdOut = external dso_local global %class.CStdOutStream, align 8 | |
@g_StdErr = external dso_local global %class.CStdOutStream, align 8 | |
@g_StdStream = external dso_local global %class.CStdOutStream*, align 8 | |
@_ZTVN10__cxxabiv117__class_type_infoE = external dso_local global i8* | |
@_ZTS16CSystemException = linkonce_odr dso_local constant [19 x i8] c"16CSystemException\00", comdat, align 1 | |
@_ZTI16CSystemException = linkonce_odr dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @_ZTS16CSystemException, i32 0, i32 0) }, comdat, align 8 | |
@_ZL10kNoFormats = internal global i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.36, i32 0, i32 0), align 8 | |
@_ZTIPKc = external dso_local constant i8* | |
@_ZL26kUnsupportedArcTypeMessage = internal global i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.37, i32 0, i32 0), align 8 | |
@.str = private unnamed_addr constant [9 x i8] c"Formats:\00", align 1 | |
@.str.1 = private unnamed_addr constant [3 x i8] c" \00", align 1 | |
@.str.2 = private unnamed_addr constant [3 x i32] [i32 32, i32 40, i32 0], align 4 | |
@.str.3 = private unnamed_addr constant [8 x i8] c"Codecs:\00", align 1 | |
@.str.4 = private unnamed_addr constant [4 x i32] [i32 67, i32 82, i32 67, i32 0], align 4 | |
@.str.5 = private unnamed_addr constant [12 x i8] c"\0ACRC Error\0A\00", align 1 | |
@.str.6 = private unnamed_addr constant [17 x i8] c"\0ADecoding Error\0A\00", align 1 | |
@.str.7 = private unnamed_addr constant [8 x i8] c"Error: \00", align 1 | |
@.str.8 = private unnamed_addr constant [11 x i8] c"Archives: \00", align 1 | |
@.str.9 = private unnamed_addr constant [17 x i8] c"Archive Errors: \00", align 1 | |
@.str.10 = private unnamed_addr constant [19 x i8] c"Sub items Errors: \00", align 1 | |
@.str.11 = private unnamed_addr constant [10 x i8] c"Folders: \00", align 1 | |
@.str.12 = private unnamed_addr constant [8 x i8] c"Files: \00", align 1 | |
@.str.13 = private unnamed_addr constant [13 x i8] c"Size: \00", align 1 | |
@.str.14 = private unnamed_addr constant [13 x i8] c"Compressed: \00", align 1 | |
@.str.15 = private unnamed_addr constant [6 x i8] c"CRC: \00", align 1 | |
@.str.16 = private unnamed_addr constant [9 x i8] c"Errors: \00", align 1 | |
@_ZL17kDefaultSfxModule = internal global i32* getelementptr inbounds ([10 x i32], [10 x i32]* @.str.38, i32 0, i32 0), align 8 | |
@.str.17 = private unnamed_addr constant [20 x i8] c"WARNINGS for files:\00", align 1 | |
@.str.18 = private unnamed_addr constant [4 x i8] c" : \00", align 1 | |
@.str.19 = private unnamed_addr constant [17 x i8] c"----------------\00", align 1 | |
@.str.20 = private unnamed_addr constant [22 x i8] c"WARNING: Cannot find \00", align 1 | |
@.str.21 = private unnamed_addr constant [6 x i8] c" file\00", align 1 | |
@.str.22 = private unnamed_addr constant [2 x i8] c"s\00", align 1 | |
@.str.23 = private unnamed_addr constant [2 x i32] [i32 10, i32 0], align 4 | |
@.str.24 = private unnamed_addr constant [9 x i32] [i32 10, i32 69, i32 114, i32 114, i32 111, i32 114, i32 58, i32 10, i32 0], align 4 | |
@_ZL15kEverythingIsOk = internal global i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.39, i32 0, i32 0), align 8 | |
@.str.25 = private unnamed_addr constant [22 x i8] c"WARNING: Cannot open \00", align 1 | |
@_ZL16kCopyrightString = internal global i8* getelementptr inbounds ([89 x i8], [89 x i8]* @.str.34, i32 0, i32 0), align 8 | |
@.str.26 = private unnamed_addr constant [10 x i8] c" (locale=\00", align 1 | |
@.str.27 = private unnamed_addr constant [8 x i8] c",Utf16=\00", align 1 | |
@global_use_utf16_conversion = external dso_local global i32, align 4 | |
@.str.28 = private unnamed_addr constant [3 x i8] c"on\00", align 1 | |
@.str.29 = private unnamed_addr constant [4 x i8] c"off\00", align 1 | |
@.str.30 = private unnamed_addr constant [12 x i8] c",HugeFiles=\00", align 1 | |
@.str.31 = private unnamed_addr constant [4 x i8] c"on,\00", align 1 | |
@.str.32 = private unnamed_addr constant [8 x i8] c" CPUs)\0A\00", align 1 | |
@.str.33 = private unnamed_addr constant [7 x i8] c" CPU)\0A\00", align 1 | |
@_ZL11kHelpString = internal global i8* getelementptr inbounds ([1257 x i8], [1257 x i8]* @.str.35, i32 0, i32 0), align 8 | |
@.str.34 = private unnamed_addr constant [89 x i8] c"\0A7-Zip (A) [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18\0Ap7zip Version 9.20\00", align 1 | |
@.str.35 = private unnamed_addr constant [1257 x i8] c"\0AUsage: 7za <command> [<switches>...] <archive_name> [<file_names>...]\0A [<@listfiles...>]\0A\0A<Commands>\0A a: Add files to archive\0A b: Benchmark\0A d: Delete files from archive\0A e: Extract files from archive (without using directory names)\0A l: List contents of archive\0A t: Test integrity of archive\0A u: Update files to archive\0A x: eXtract files with full paths\0A<Switches>\0A -ai[r[-|0]]{@listfile|!wildcard}: Include archives\0A -ax[r[-|0]]{@listfile|!wildcard}: eXclude archives\0A -bd: Disable percentage indicator\0A -i[r[-|0]]{@listfile|!wildcard}: Include filenames\0A -m{Parameters}: set compression Method\0A -o{Directory}: set Output directory\0A -p{Password}: set Password\0A -r[-|0]: Recurse subdirectories\0A -scs{UTF-8 | WIN | DOS}: set charset for list files\0A -sfx[{name}]: Create SFX archive\0A -si[{name}]: read data from stdin\0A -slt: show technical information for l (List) command\0A -so: write data to stdout\0A -ssc[-]: set sensitive case mode\0A -t{Type}: Set type of archive\0A -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]: Update options\0A -v{Size}[b|k|m|g]: Create volumes\0A -w[{path}]: assign Work directory. Empty path means a temporary directory\0A -x[r[-|0]]]{@listfile|!wildcard}: eXclude filenames\0A -y: assume Yes on all queries\0A\00", align 1 | |
@_ZTV13CObjectVectorIN9NWildcard5CPairEE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorIN9NWildcard5CPairEE to i8*), i8* bitcast (void (%class.CObjectVector.0*)* @_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.0*)* @_ZN13CObjectVectorIN9NWildcard5CPairEED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.0*, i32, i32)* @_ZN13CObjectVectorIN9NWildcard5CPairEE6DeleteEii to i8*)] }, comdat, align 8 | |
@_ZTVN10__cxxabiv120__si_class_type_infoE = external dso_local global i8* | |
@_ZTS13CObjectVectorIN9NWildcard5CPairEE = linkonce_odr dso_local constant [36 x i8] c"13CObjectVectorIN9NWildcard5CPairEE\00", comdat, align 1 | |
@_ZTS13CRecordVectorIPvE = linkonce_odr dso_local constant [20 x i8] c"13CRecordVectorIPvE\00", comdat, align 1 | |
@_ZTI17CBaseRecordVector = external dso_local constant i8* | |
@_ZTI13CRecordVectorIPvE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([20 x i8], [20 x i8]* @_ZTS13CRecordVectorIPvE, i32 0, i32 0), i8* bitcast (i8** @_ZTI17CBaseRecordVector to i8*) }, comdat, align 8 | |
@_ZTI13CObjectVectorIN9NWildcard5CPairEE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([36 x i8], [36 x i8]* @_ZTS13CObjectVectorIN9NWildcard5CPairEE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8 | |
@_ZTV13CRecordVectorIPvE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to i8*), i8* bitcast (void (%class.CRecordVector*)* @_ZN13CRecordVectorIPvED0Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*, i32, i32)* @_ZN17CBaseRecordVector6DeleteEii to i8*)] }, comdat, align 8 | |
@_ZTV17CBaseRecordVector = available_externally dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast (i8** @_ZTI17CBaseRecordVector to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD1Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD0Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*, i32, i32)* @_ZN17CBaseRecordVector6DeleteEii to i8*)] }, align 8 | |
@_ZTV13CObjectVectorIN9NWildcard5CItemEE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorIN9NWildcard5CItemEE to i8*), i8* bitcast (void (%class.CObjectVector.9*)* @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.9*)* @_ZN13CObjectVectorIN9NWildcard5CItemEED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.9*, i32, i32)* @_ZN13CObjectVectorIN9NWildcard5CItemEE6DeleteEii to i8*)] }, comdat, align 8 | |
@_ZTS13CObjectVectorIN9NWildcard5CItemEE = linkonce_odr dso_local constant [36 x i8] c"13CObjectVectorIN9NWildcard5CItemEE\00", comdat, align 1 | |
@_ZTI13CObjectVectorIN9NWildcard5CItemEE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([36 x i8], [36 x i8]* @_ZTS13CObjectVectorIN9NWildcard5CItemEE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8 | |
@_ZTV13CObjectVectorIN9NWildcard11CCensorNodeEE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorIN9NWildcard11CCensorNodeEE to i8*), i8* bitcast (void (%class.CObjectVector.8*)* @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.8*)* @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.8*, i32, i32)* @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEE6DeleteEii to i8*)] }, comdat, align 8 | |
@_ZTS13CObjectVectorIN9NWildcard11CCensorNodeEE = linkonce_odr dso_local constant [43 x i8] c"13CObjectVectorIN9NWildcard11CCensorNodeEE\00", comdat, align 1 | |
@_ZTI13CObjectVectorIN9NWildcard11CCensorNodeEE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([43 x i8], [43 x i8]* @_ZTS13CObjectVectorIN9NWildcard11CCensorNodeEE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8 | |
@_ZTV13CObjectVectorI9CPropertyE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorI9CPropertyE to i8*), i8* bitcast (void (%class.CObjectVector.1*)* @_ZN13CObjectVectorI9CPropertyED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.1*)* @_ZN13CObjectVectorI9CPropertyED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.1*, i32, i32)* @_ZN13CObjectVectorI9CPropertyE6DeleteEii to i8*)] }, comdat, align 8 | |
@_ZTS13CObjectVectorI9CPropertyE = linkonce_odr dso_local constant [28 x i8] c"13CObjectVectorI9CPropertyE\00", comdat, align 1 | |
@_ZTI13CObjectVectorI9CPropertyE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([28 x i8], [28 x i8]* @_ZTS13CObjectVectorI9CPropertyE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8 | |
@_ZTV13CObjectVectorI21CUpdateArchiveCommandE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorI21CUpdateArchiveCommandE to i8*), i8* bitcast (void (%class.CObjectVector.2*)* @_ZN13CObjectVectorI21CUpdateArchiveCommandED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.2*)* @_ZN13CObjectVectorI21CUpdateArchiveCommandED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.2*, i32, i32)* @_ZN13CObjectVectorI21CUpdateArchiveCommandE6DeleteEii to i8*)] }, comdat, align 8 | |
@_ZTS13CObjectVectorI21CUpdateArchiveCommandE = linkonce_odr dso_local constant [41 x i8] c"13CObjectVectorI21CUpdateArchiveCommandE\00", comdat, align 1 | |
@_ZTI13CObjectVectorI21CUpdateArchiveCommandE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([41 x i8], [41 x i8]* @_ZTS13CObjectVectorI21CUpdateArchiveCommandE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8 | |
@_ZTV13CRecordVectorIyE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIyE to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to i8*), i8* bitcast (void (%class.CRecordVector.3*)* @_ZN13CRecordVectorIyED0Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*, i32, i32)* @_ZN17CBaseRecordVector6DeleteEii to i8*)] }, comdat, align 8 | |
@_ZTS13CRecordVectorIyE = linkonce_odr dso_local constant [19 x i8] c"13CRecordVectorIyE\00", comdat, align 1 | |
@_ZTI13CRecordVectorIyE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @_ZTS13CRecordVectorIyE, i32 0, i32 0), i8* bitcast (i8** @_ZTI17CBaseRecordVector to i8*) }, comdat, align 8 | |
@_ZTV7CCodecs = linkonce_odr dso_local unnamed_addr constant { [7 x i8*] } { [7 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i32, i32, i8*, i64, i8*, i64 }* @_ZTI7CCodecs to i8*), i8* bitcast (i32 (%class.CCodecs*, %struct.GUID*, i8**)* @_ZN7CCodecs14QueryInterfaceERK4GUIDPPv to i8*), i8* bitcast (i32 (%class.CCodecs*)* @_ZN7CCodecs6AddRefEv to i8*), i8* bitcast (i32 (%class.CCodecs*)* @_ZN7CCodecs7ReleaseEv to i8*), i8* bitcast (void (%class.CCodecs*)* @_ZN7CCodecsD2Ev to i8*), i8* bitcast (void (%class.CCodecs*)* @_ZN7CCodecsD0Ev to i8*)] }, comdat, align 8 | |
@_ZTVN10__cxxabiv121__vmi_class_type_infoE = external dso_local global i8* | |
@_ZTS7CCodecs = linkonce_odr dso_local constant [9 x i8] c"7CCodecs\00", comdat, align 1 | |
@_ZTS8IUnknown = linkonce_odr dso_local constant [10 x i8] c"8IUnknown\00", comdat, align 1 | |
@_ZTI8IUnknown = linkonce_odr dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @_ZTS8IUnknown, i32 0, i32 0) }, comdat, align 8 | |
@_ZTS13CMyUnknownImp = linkonce_odr dso_local constant [16 x i8] c"13CMyUnknownImp\00", comdat, align 1 | |
@_ZTI13CMyUnknownImp = linkonce_odr dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @_ZTS13CMyUnknownImp, i32 0, i32 0) }, comdat, align 8 | |
@_ZTI7CCodecs = linkonce_odr dso_local constant { i8*, i8*, i32, i32, i8*, i64, i8*, i64 } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv121__vmi_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @_ZTS7CCodecs, i32 0, i32 0), i32 0, i32 2, i8* bitcast ({ i8*, i8* }* @_ZTI8IUnknown to i8*), i64 2, i8* bitcast ({ i8*, i8* }* @_ZTI13CMyUnknownImp to i8*), i64 2050 }, comdat, align 8 | |
@_ZTV8IUnknown = linkonce_odr dso_local unnamed_addr constant { [7 x i8*] } { [7 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTI8IUnknown to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void (%struct.IUnknown*)* @_ZN8IUnknownD2Ev to i8*), i8* bitcast (void (%struct.IUnknown*)* @_ZN8IUnknownD0Ev to i8*)] }, comdat, align 8 | |
@_ZTV13CObjectVectorI10CArcInfoExE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorI10CArcInfoExE to i8*), i8* bitcast (void (%class.CObjectVector.4*)* @_ZN13CObjectVectorI10CArcInfoExED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.4*)* @_ZN13CObjectVectorI10CArcInfoExED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.4*, i32, i32)* @_ZN13CObjectVectorI10CArcInfoExE6DeleteEii to i8*)] }, comdat, align 8 | |
@_ZTS13CObjectVectorI10CArcInfoExE = linkonce_odr dso_local constant [30 x i8] c"13CObjectVectorI10CArcInfoExE\00", comdat, align 1 | |
@_ZTI13CObjectVectorI10CArcInfoExE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([30 x i8], [30 x i8]* @_ZTS13CObjectVectorI10CArcInfoExE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8 | |
@_ZTV7CBufferIhE = linkonce_odr dso_local unnamed_addr constant { [4 x i8*] } { [4 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTI7CBufferIhE to i8*), i8* bitcast (void (%class.CBuffer*)* @_ZN7CBufferIhED2Ev to i8*), i8* bitcast (void (%class.CBuffer*)* @_ZN7CBufferIhED0Ev to i8*)] }, comdat, align 8 | |
@_ZTS7CBufferIhE = linkonce_odr dso_local constant [12 x i8] c"7CBufferIhE\00", comdat, align 1 | |
@_ZTI7CBufferIhE = linkonce_odr dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @_ZTS7CBufferIhE, i32 0, i32 0) }, comdat, align 8 | |
@_ZTV13CObjectVectorI11CArcExtInfoE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorI11CArcExtInfoE to i8*), i8* bitcast (void (%class.CObjectVector.6*)* @_ZN13CObjectVectorI11CArcExtInfoED2Ev to i8*), i8* bitcast (void (%class.CObjectVector.6*)* @_ZN13CObjectVectorI11CArcExtInfoED0Ev to i8*), i8* bitcast (void (%class.CObjectVector.6*, i32, i32)* @_ZN13CObjectVectorI11CArcExtInfoE6DeleteEii to i8*)] }, comdat, align 8 | |
@_ZTS13CObjectVectorI11CArcExtInfoE = linkonce_odr dso_local constant [31 x i8] c"13CObjectVectorI11CArcExtInfoE\00", comdat, align 1 | |
@_ZTI13CObjectVectorI11CArcExtInfoE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @_ZTS13CObjectVectorI11CArcExtInfoE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8 | |
@.str.36 = private unnamed_addr constant [53 x i8] c"7-Zip cannot find the code that works with archives.\00", align 1 | |
@.str.37 = private unnamed_addr constant [25 x i8] c"Unsupported archive type\00", align 1 | |
@_ZTV23CExtractCallbackConsole = external dso_local unnamed_addr constant { [19 x i8*], [8 x i8*] }, align 8 | |
@_ZTV18IExtractCallbackUI = linkonce_odr dso_local unnamed_addr constant { [18 x i8*] } { [18 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI18IExtractCallbackUI to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void (%struct.IUnknown*)* @_ZN8IUnknownD2Ev to i8*), i8* bitcast (void (%struct.IExtractCallbackUI*)* @_ZN18IExtractCallbackUID0Ev to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)] }, comdat, align 8 | |
@_ZTS18IExtractCallbackUI = linkonce_odr dso_local constant [21 x i8] c"18IExtractCallbackUI\00", comdat, align 1 | |
@_ZTS29IFolderArchiveExtractCallback = linkonce_odr dso_local constant [32 x i8] c"29IFolderArchiveExtractCallback\00", comdat, align 1 | |
@_ZTS9IProgress = linkonce_odr dso_local constant [11 x i8] c"9IProgress\00", comdat, align 1 | |
@_ZTI9IProgress = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_ZTS9IProgress, i32 0, i32 0), i8* bitcast ({ i8*, i8* }* @_ZTI8IUnknown to i8*) }, comdat, align 8 | |
@_ZTI29IFolderArchiveExtractCallback = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([32 x i8], [32 x i8]* @_ZTS29IFolderArchiveExtractCallback, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI9IProgress to i8*) }, comdat, align 8 | |
@_ZTI18IExtractCallbackUI = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([21 x i8], [21 x i8]* @_ZTS18IExtractCallbackUI, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI29IFolderArchiveExtractCallback to i8*) }, comdat, align 8 | |
@_ZTV29IFolderArchiveExtractCallback = linkonce_odr dso_local unnamed_addr constant { [13 x i8*] } { [13 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI29IFolderArchiveExtractCallback to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void (%struct.IUnknown*)* @_ZN8IUnknownD2Ev to i8*), i8* bitcast (void (%struct.IFolderArchiveExtractCallback*)* @_ZN29IFolderArchiveExtractCallbackD0Ev to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)] }, comdat, align 8 | |
@_ZTV9IProgress = linkonce_odr dso_local unnamed_addr constant { [9 x i8*] } { [9 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI9IProgress to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void (%struct.IUnknown*)* @_ZN8IUnknownD2Ev to i8*), i8* bitcast (void (%struct.IProgress*)* @_ZN9IProgressD0Ev to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)] }, comdat, align 8 | |
@_ZTV22ICryptoGetTextPassword = linkonce_odr dso_local unnamed_addr constant { [8 x i8*] } { [8 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI22ICryptoGetTextPassword to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void (%struct.IUnknown*)* @_ZN8IUnknownD2Ev to i8*), i8* bitcast (void (%struct.ICryptoGetTextPassword*)* @_ZN22ICryptoGetTextPasswordD0Ev to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)] }, comdat, align 8 | |
@_ZTS22ICryptoGetTextPassword = linkonce_odr dso_local constant [25 x i8] c"22ICryptoGetTextPassword\00", comdat, align 1 | |
@_ZTI22ICryptoGetTextPassword = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @_ZTS22ICryptoGetTextPassword, i32 0, i32 0), i8* bitcast ({ i8*, i8* }* @_ZTI8IUnknown to i8*) }, comdat, align 8 | |
@_ZTV20COpenCallbackConsole = available_externally dso_local unnamed_addr constant { [9 x i8*] } { [9 x i8*] [i8* null, i8* bitcast (i8** @_ZTI20COpenCallbackConsole to i8*), i8* bitcast (i32 (%class.COpenCallbackConsole*)* @_ZN20COpenCallbackConsole15Open_CheckBreakEv to i8*), i8* bitcast (i32 (%class.COpenCallbackConsole*, i64*, i64*)* @_ZN20COpenCallbackConsole13Open_SetTotalEPKyS1_ to i8*), i8* bitcast (i32 (%class.COpenCallbackConsole*, i64*, i64*)* @_ZN20COpenCallbackConsole17Open_SetCompletedEPKyS1_ to i8*), i8* bitcast (i32 (%class.COpenCallbackConsole*, i32**)* @_ZN20COpenCallbackConsole26Open_CryptoGetTextPasswordEPPw to i8*), i8* bitcast (i32 (%class.COpenCallbackConsole*, %class.CStringBase*)* @_ZN20COpenCallbackConsole21Open_GetPasswordIfAnyER11CStringBaseIwE to i8*), i8* bitcast (i1 (%class.COpenCallbackConsole*)* @_ZN20COpenCallbackConsole21Open_WasPasswordAskedEv to i8*), i8* bitcast (void (%class.COpenCallbackConsole*)* @_ZN20COpenCallbackConsole30Open_ClearPasswordWasAskedFlagEv to i8*)] }, align 8 | |
@_ZTI20COpenCallbackConsole = external dso_local constant i8* | |
@_ZTV15IOpenCallbackUI = linkonce_odr dso_local unnamed_addr constant { [9 x i8*] } { [9 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTI15IOpenCallbackUI to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)] }, comdat, align 8 | |
@_ZTS15IOpenCallbackUI = linkonce_odr dso_local constant [18 x i8] c"15IOpenCallbackUI\00", comdat, align 1 | |
@_ZTI15IOpenCallbackUI = linkonce_odr dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @_ZTS15IOpenCallbackUI, i32 0, i32 0) }, comdat, align 8 | |
@.str.38 = private unnamed_addr constant [10 x i32] [i32 55, i32 122, i32 67, i32 111, i32 110, i32 46, i32 115, i32 102, i32 120, i32 0], align 4 | |
@_ZTV22CUpdateCallbackConsole = available_externally dso_local unnamed_addr constant { [20 x i8*] } { [20 x i8*] [i8* null, i8* bitcast (i8** @_ZTI22CUpdateCallbackConsole to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i64)* @_ZN22CUpdateCallbackConsole8SetTotalEy to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i64*)* @_ZN22CUpdateCallbackConsole12SetCompletedEPKy to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i64*, i64*)* @_ZN22CUpdateCallbackConsole12SetRatioInfoEPKyS1_ to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*)* @_ZN22CUpdateCallbackConsole10CheckBreakEv to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*)* @_ZN22CUpdateCallbackConsole8FinilizeEv to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i64)* @_ZN22CUpdateCallbackConsole11SetNumFilesEy to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i32*, i1)* @_ZN22CUpdateCallbackConsole9GetStreamEPKwb to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i32*, i32)* @_ZN22CUpdateCallbackConsole13OpenFileErrorEPKwj to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i32)* @_ZN22CUpdateCallbackConsole18SetOperationResultEi to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i32*, i32**)* @_ZN22CUpdateCallbackConsole22CryptoGetTextPassword2EPiPPw to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i32**)* @_ZN22CUpdateCallbackConsole21CryptoGetTextPasswordEPPw to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i32*, i32)* @_ZN22CUpdateCallbackConsole10OpenResultEPKwi to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*)* @_ZN22CUpdateCallbackConsole13StartScanningEv to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i64, i64, i32*)* @_ZN22CUpdateCallbackConsole12ScanProgressEyyPKw to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i32*, i32)* @_ZN22CUpdateCallbackConsole15CanNotFindErrorEPKwj to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*)* @_ZN22CUpdateCallbackConsole14FinishScanningEv to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*, i32*, i1)* @_ZN22CUpdateCallbackConsole12StartArchiveEPKwb to i8*), i8* bitcast (i32 (%class.CUpdateCallbackConsole*)* @_ZN22CUpdateCallbackConsole13FinishArchiveEv to i8*)] }, align 8 | |
@_ZTI22CUpdateCallbackConsole = external dso_local constant i8* | |
@_ZTV18IUpdateCallbackUI2 = linkonce_odr dso_local unnamed_addr constant { [20 x i8*] } { [20 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI18IUpdateCallbackUI2 to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)] }, comdat, align 8 | |
@_ZTS18IUpdateCallbackUI2 = linkonce_odr dso_local constant [21 x i8] c"18IUpdateCallbackUI2\00", comdat, align 1 | |
@_ZTS17IUpdateCallbackUI = linkonce_odr dso_local constant [20 x i8] c"17IUpdateCallbackUI\00", comdat, align 1 | |
@_ZTI17IUpdateCallbackUI = linkonce_odr dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([20 x i8], [20 x i8]* @_ZTS17IUpdateCallbackUI, i32 0, i32 0) }, comdat, align 8 | |
@_ZTI18IUpdateCallbackUI2 = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([21 x i8], [21 x i8]* @_ZTS18IUpdateCallbackUI2, i32 0, i32 0), i8* bitcast ({ i8*, i8* }* @_ZTI17IUpdateCallbackUI to i8*) }, comdat, align 8 | |
@_ZTV17IUpdateCallbackUI = linkonce_odr dso_local unnamed_addr constant { [13 x i8*] } { [13 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTI17IUpdateCallbackUI to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*), i8* bitcast (void ()* @__cxa_pure_virtual to i8*)] }, comdat, align 8 | |
@.str.39 = private unnamed_addr constant [17 x i8] c"Everything is Ok\00", align 1 | |
@_ZL17kUserErrorMessage = internal global i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.40, i32 0, i32 0), align 8 | |
@_ZTVN10__cxxabiv116__enum_type_infoE = external dso_local global i8* | |
@_ZTSN9NExitCode5EEnumE = linkonce_odr dso_local constant [19 x i8] c"N9NExitCode5EEnumE\00", comdat, align 1 | |
@_ZTIN9NExitCode5EEnumE = linkonce_odr dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv116__enum_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @_ZTSN9NExitCode5EEnumE, i32 0, i32 0) }, comdat, align 8 | |
@.str.40 = private unnamed_addr constant [23 x i8] c"Incorrect command line\00", align 1 | |
@_ZTV13CObjectVectorI11CStringBaseIwEE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CObjectVectorI11CStringBaseIwEE to i8*), i8* bitcast (void (%class.CObjectVector*)* @_ZN13CObjectVectorI11CStringBaseIwEED2Ev to i8*), i8* bitcast (void (%class.CObjectVector*)* @_ZN13CObjectVectorI11CStringBaseIwEED0Ev to i8*), i8* bitcast (void (%class.CObjectVector*, i32, i32)* @_ZN13CObjectVectorI11CStringBaseIwEE6DeleteEii to i8*)] }, comdat, align 8 | |
@_ZTS13CObjectVectorI11CStringBaseIwEE = linkonce_odr dso_local constant [34 x i8] c"13CObjectVectorI11CStringBaseIwEE\00", comdat, align 1 | |
@_ZTI13CObjectVectorI11CStringBaseIwEE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([34 x i8], [34 x i8]* @_ZTS13CObjectVectorI11CStringBaseIwEE, i32 0, i32 0), i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIPvE to i8*) }, comdat, align 8 | |
@_ZTV13CRecordVectorIiE = linkonce_odr dso_local unnamed_addr constant { [5 x i8*] } { [5 x i8*] [i8* null, i8* bitcast ({ i8*, i8*, i8* }* @_ZTI13CRecordVectorIiE to i8*), i8* bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to i8*), i8* bitcast (void (%class.CRecordVector.5*)* @_ZN13CRecordVectorIiED0Ev to i8*), i8* bitcast (void (%class.CBaseRecordVector*, i32, i32)* @_ZN17CBaseRecordVector6DeleteEii to i8*)] }, comdat, align 8 | |
@_ZTS13CRecordVectorIiE = linkonce_odr dso_local constant [19 x i8] c"13CRecordVectorIiE\00", comdat, align 1 | |
@_ZTI13CRecordVectorIiE = linkonce_odr dso_local constant { i8*, i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @_ZTS13CRecordVectorIiE, i32 0, i32 0), i8* bitcast (i8** @_ZTI17CBaseRecordVector to i8*) }, comdat, align 8 | |
; Function Attrs: mustprogress uwtable | |
define dso_local i32 @_Z5Main2iPPKc(i32 %numArgs, i8** %args) #0 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%retval = alloca i32, align 4 | |
%numArgs.addr = alloca i32, align 4 | |
%args.addr = alloca i8**, align 8 | |
%commandStrings = alloca %class.CObjectVector, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
%cleanup.dest.slot = alloca i32, align 4 | |
%options = alloca %struct.CArchiveCommandLineOptions, align 8 | |
%parser = alloca %class.CArchiveCommandLineParser, align 8 | |
%stdStream = alloca %class.CStdOutStream*, align 8 | |
%codecs = alloca %class.CCodecs*, align 8 | |
%compressCodecsInfo = alloca %class.CMyComPtr, align 8 | |
%result = alloca i32, align 4 | |
%isExtractGroupCommand = alloca i8, align 1 | |
%formatIndices = alloca %class.CRecordVector.5, align 8 | |
%i = alloca i32, align 4 | |
%arc = alloca %struct.CArcInfoEx*, align 8 | |
%s = alloca %class.CStringBase, align 8 | |
%t = alloca i32, align 4 | |
%ext = alloca %struct.CArcExtInfo*, align 8 | |
%sig = alloca %class.CBuffer*, align 8 | |
%j = alloca i64, align 8 | |
%b = alloca i8, align 1 | |
%res = alloca i32, align 4 | |
%res212 = alloca i32, align 4 | |
%ecs = alloca %class.CExtractCallbackConsole*, align 8 | |
%extractCallback = alloca %class.CMyComPtr.7, align 8 | |
%openCallback = alloca %class.COpenCallbackConsole, align 8 | |
%eo = alloca %struct.CExtractOptions, align 8 | |
%errorMessage = alloca %class.CStringBase, align 8 | |
%stat = alloca %struct.CDecompressStat, align 8 | |
%result305 = alloca i32, align 4 | |
%s423 = alloca [16 x i8], align 16 | |
%numErrors = alloca i64, align 8 | |
%result460 = alloca i32, align 4 | |
%uo = alloca %struct.CUpdateOptions*, align 8 | |
%openCallback516 = alloca %class.COpenCallbackConsole, align 8 | |
%passwordIsDefined = alloca i8, align 1 | |
%callback = alloca %class.CUpdateCallbackConsole, align 8 | |
%errorInfo = alloca %struct.CUpdateErrorInfo, align 8 | |
%result568 = alloca i32, align 4 | |
%i576 = alloca i32, align 4 | |
%command = alloca %struct.CUpdateArchiveCommand*, align 8 | |
%ref.tmp = alloca %class.CStringBase, align 8 | |
%exitCode = alloca i32, align 4 | |
%numErrors618 = alloca i32, align 4 | |
%i623 = alloca i32, align 4 | |
%ref.tmp638 = alloca %class.CStringBase, align 8 | |
%message = alloca %class.CStringBase, align 8 | |
%ref.tmp710 = alloca %class.CStringBase, align 8 | |
%numErrors739 = alloca i32, align 4 | |
%i764 = alloca i32, align 4 | |
%ref.tmp779 = alloca %class.CStringBase, align 8 | |
store i32 %numArgs, i32* %numArgs.addr, align 4, !tbaa !3 | |
store i8** %args, i8*** %args.addr, align 8, !tbaa !7 | |
%0 = bitcast %class.CObjectVector* %commandStrings to i8* | |
call void @llvm.lifetime.start.p0i8(i64 32, i8* %0) #16 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %commandStrings) | |
%1 = load i32, i32* %numArgs.addr, align 4, !tbaa !3 | |
%2 = load i8**, i8*** %args.addr, align 8, !tbaa !7 | |
invoke void @_Z18mySplitCommandLineiPPKcR13CObjectVectorI11CStringBaseIwEE(i32 %1, i8** %2, %class.CObjectVector* nonnull align 8 dereferenceable(32) %commandStrings) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%3 = bitcast %class.CObjectVector* %commandStrings to %class.CBaseRecordVector* | |
%call = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %3) | |
to label %invoke.cont1 unwind label %lpad | |
invoke.cont1: ; preds = %invoke.cont | |
%cmp = icmp eq i32 %call, 1 | |
br i1 %cmp, label %if.then, label %if.end | |
if.then: ; preds = %invoke.cont1 | |
invoke void @_ZL20ShowCopyrightAndHelpR13CStdOutStreamb(%class.CStdOutStream* nonnull align 8 dereferenceable(16) @g_StdOut, i1 zeroext true) | |
to label %invoke.cont2 unwind label %lpad | |
invoke.cont2: ; preds = %if.then | |
store i32 0, i32* %retval, align 4 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup868 | |
lpad: ; preds = %if.end, %if.then, %invoke.cont, %entry | |
%4 = landingpad { i8*, i32 } | |
cleanup | |
%5 = extractvalue { i8*, i32 } %4, 0 | |
store i8* %5, i8** %exn.slot, align 8 | |
%6 = extractvalue { i8*, i32 } %4, 1 | |
store i32 %6, i32* %ehselector.slot, align 4 | |
br label %ehcleanup869 | |
if.end: ; preds = %invoke.cont1 | |
invoke void @_ZN13CObjectVectorI11CStringBaseIwEE6DeleteEii(%class.CObjectVector* nonnull align 8 dereferenceable(32) %commandStrings, i32 0, i32 1) | |
to label %invoke.cont3 unwind label %lpad | |
invoke.cont3: ; preds = %if.end | |
%7 = bitcast %struct.CArchiveCommandLineOptions* %options to i8* | |
call void @llvm.lifetime.start.p0i8(i64 592, i8* %7) #16 | |
invoke void @_ZN26CArchiveCommandLineOptionsC2Ev(%struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592) %options) | |
to label %invoke.cont5 unwind label %lpad4 | |
invoke.cont5: ; preds = %invoke.cont3 | |
%8 = bitcast %class.CArchiveCommandLineParser* %parser to i8* | |
call void @llvm.lifetime.start.p0i8(i64 48, i8* %8) #16 | |
invoke void @_ZN25CArchiveCommandLineParserC1Ev(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48) %parser) | |
to label %invoke.cont7 unwind label %lpad6 | |
invoke.cont7: ; preds = %invoke.cont5 | |
invoke void @_ZN25CArchiveCommandLineParser6Parse1ERK13CObjectVectorI11CStringBaseIwEER26CArchiveCommandLineOptions(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48) %parser, %class.CObjectVector* nonnull align 8 dereferenceable(32) %commandStrings, %struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592) %options) | |
to label %invoke.cont9 unwind label %lpad8 | |
invoke.cont9: ; preds = %invoke.cont7 | |
%HelpMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 0 | |
%9 = load i8, i8* %HelpMode, align 8, !tbaa !9, !range !25 | |
%tobool = trunc i8 %9 to i1 | |
br i1 %tobool, label %if.then10, label %if.end12 | |
if.then10: ; preds = %invoke.cont9 | |
invoke void @_ZL20ShowCopyrightAndHelpR13CStdOutStreamb(%class.CStdOutStream* nonnull align 8 dereferenceable(16) @g_StdOut, i1 zeroext true) | |
to label %invoke.cont11 unwind label %lpad8 | |
invoke.cont11: ; preds = %if.then10 | |
store i32 0, i32* %retval, align 4 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup860 | |
lpad4: ; preds = %invoke.cont3 | |
%10 = landingpad { i8*, i32 } | |
cleanup | |
%11 = extractvalue { i8*, i32 } %10, 0 | |
store i8* %11, i8** %exn.slot, align 8 | |
%12 = extractvalue { i8*, i32 } %10, 1 | |
store i32 %12, i32* %ehselector.slot, align 4 | |
br label %ehcleanup867 | |
lpad6: ; preds = %invoke.cont5 | |
%13 = landingpad { i8*, i32 } | |
cleanup | |
%14 = extractvalue { i8*, i32 } %13, 0 | |
store i8* %14, i8** %exn.slot, align 8 | |
%15 = extractvalue { i8*, i32 } %13, 1 | |
store i32 %15, i32* %ehselector.slot, align 4 | |
br label %ehcleanup863 | |
lpad8: ; preds = %if.then14, %if.then10, %invoke.cont7 | |
%16 = landingpad { i8*, i32 } | |
cleanup | |
%17 = extractvalue { i8*, i32 } %16, 0 | |
store i8* %17, i8** %exn.slot, align 8 | |
%18 = extractvalue { i8*, i32 } %16, 1 | |
store i32 %18, i32* %ehselector.slot, align 4 | |
br label %ehcleanup861 | |
if.end12: ; preds = %invoke.cont9 | |
%LargePages = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 1 | |
%19 = load i8, i8* %LargePages, align 1, !tbaa !26, !range !25 | |
%tobool13 = trunc i8 %19 to i1 | |
br i1 %tobool13, label %if.then14, label %if.end16 | |
if.then14: ; preds = %if.end12 | |
invoke void @SetLargePageSize() | |
to label %invoke.cont15 unwind label %lpad8 | |
invoke.cont15: ; preds = %if.then14 | |
br label %if.end16 | |
if.end16: ; preds = %invoke.cont15, %if.end12 | |
%20 = bitcast %class.CStdOutStream** %stdStream to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %20) #16 | |
%StdOutMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 6 | |
%21 = load i8, i8* %StdOutMode, align 2, !tbaa !27, !range !25 | |
%tobool17 = trunc i8 %21 to i1 | |
br i1 %tobool17, label %cond.true, label %cond.false | |
cond.true: ; preds = %if.end16 | |
br label %cond.end | |
cond.false: ; preds = %if.end16 | |
br label %cond.end | |
cond.end: ; preds = %cond.false, %cond.true | |
%cond-lvalue = phi %class.CStdOutStream* [ @g_StdErr, %cond.true ], [ @g_StdOut, %cond.false ] | |
store %class.CStdOutStream* %cond-lvalue, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%22 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
store %class.CStdOutStream* %22, %class.CStdOutStream** @g_StdStream, align 8, !tbaa !7 | |
%EnableHeaders = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 7 | |
%23 = load i8, i8* %EnableHeaders, align 1, !tbaa !28, !range !25 | |
%tobool18 = trunc i8 %23 to i1 | |
br i1 %tobool18, label %if.then19, label %if.end22 | |
if.then19: ; preds = %cond.end | |
%24 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
invoke void @_ZL20ShowCopyrightAndHelpR13CStdOutStreamb(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %24, i1 zeroext false) | |
to label %invoke.cont21 unwind label %lpad20 | |
invoke.cont21: ; preds = %if.then19 | |
br label %if.end22 | |
lpad20: ; preds = %if.end22, %if.then19 | |
%25 = landingpad { i8*, i32 } | |
cleanup | |
%26 = extractvalue { i8*, i32 } %25, 0 | |
store i8* %26, i8** %exn.slot, align 8 | |
%27 = extractvalue { i8*, i32 } %25, 1 | |
store i32 %27, i32* %ehselector.slot, align 4 | |
br label %ehcleanup859 | |
if.end22: ; preds = %invoke.cont21, %cond.end | |
invoke void @_ZN25CArchiveCommandLineParser6Parse2ER26CArchiveCommandLineOptions(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48) %parser, %struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592) %options) | |
to label %invoke.cont23 unwind label %lpad20 | |
invoke.cont23: ; preds = %if.end22 | |
%28 = bitcast %class.CCodecs** %codecs to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %28) #16 | |
%call26 = invoke noalias nonnull i8* @_Znwm(i64 48) #17 | |
to label %invoke.cont25 unwind label %lpad24 | |
invoke.cont25: ; preds = %invoke.cont23 | |
%29 = bitcast i8* %call26 to %class.CCodecs* | |
invoke void @_ZN7CCodecsC2Ev(%class.CCodecs* nonnull align 8 dereferenceable(48) %29) | |
to label %invoke.cont28 unwind label %lpad27 | |
invoke.cont28: ; preds = %invoke.cont25 | |
store %class.CCodecs* %29, %class.CCodecs** %codecs, align 8, !tbaa !7 | |
%30 = bitcast %class.CMyComPtr* %compressCodecsInfo to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %30) #16 | |
%31 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7 | |
%32 = bitcast %class.CCodecs* %31 to %struct.IUnknown* | |
invoke void @_ZN9CMyComPtrI8IUnknownEC2EPS0_(%class.CMyComPtr* nonnull align 8 dereferenceable(8) %compressCodecsInfo, %struct.IUnknown* %32) | |
to label %invoke.cont30 unwind label %lpad29 | |
invoke.cont30: ; preds = %invoke.cont28 | |
%33 = bitcast i32* %result to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %33) #16 | |
%34 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7 | |
%call33 = invoke i32 @_ZN7CCodecs4LoadEv(%class.CCodecs* nonnull align 8 dereferenceable(48) %34) | |
to label %invoke.cont32 unwind label %lpad31 | |
invoke.cont32: ; preds = %invoke.cont30 | |
store i32 %call33, i32* %result, align 4, !tbaa !3 | |
%35 = load i32, i32* %result, align 4, !tbaa !3 | |
%cmp34 = icmp ne i32 %35, 0 | |
br i1 %cmp34, label %if.then35, label %if.end38 | |
if.then35: ; preds = %invoke.cont32 | |
%exception = call i8* @__cxa_allocate_exception(i64 4) #16 | |
%36 = bitcast i8* %exception to %struct.CSystemException* | |
%37 = load i32, i32* %result, align 4, !tbaa !3 | |
invoke void @_ZN16CSystemExceptionC2Ei(%struct.CSystemException* nonnull align 4 dereferenceable(4) %36, i32 %37) | |
to label %invoke.cont37 unwind label %lpad36 | |
invoke.cont37: ; preds = %if.then35 | |
invoke void @__cxa_throw(i8* %exception, i8* bitcast ({ i8*, i8* }* @_ZTI16CSystemException to i8*), i8* null) #18 | |
to label %unreachable unwind label %lpad31 | |
lpad24: ; preds = %invoke.cont23 | |
%38 = landingpad { i8*, i32 } | |
cleanup | |
%39 = extractvalue { i8*, i32 } %38, 0 | |
store i8* %39, i8** %exn.slot, align 8 | |
%40 = extractvalue { i8*, i32 } %38, 1 | |
store i32 %40, i32* %ehselector.slot, align 4 | |
br label %ehcleanup857 | |
lpad27: ; preds = %invoke.cont25 | |
%41 = landingpad { i8*, i32 } | |
cleanup | |
%42 = extractvalue { i8*, i32 } %41, 0 | |
store i8* %42, i8** %exn.slot, align 8 | |
%43 = extractvalue { i8*, i32 } %41, 1 | |
store i32 %43, i32* %ehselector.slot, align 4 | |
call void @_ZdlPv(i8* %call26) #19 | |
br label %ehcleanup857 | |
lpad29: ; preds = %invoke.cont28 | |
%44 = landingpad { i8*, i32 } | |
cleanup | |
%45 = extractvalue { i8*, i32 } %44, 0 | |
store i8* %45, i8** %exn.slot, align 8 | |
%46 = extractvalue { i8*, i32 } %44, 1 | |
store i32 %46, i32* %ehselector.slot, align 4 | |
br label %ehcleanup855 | |
lpad31: ; preds = %invoke.cont37, %invoke.cont30 | |
%47 = landingpad { i8*, i32 } | |
cleanup | |
%48 = extractvalue { i8*, i32 } %47, 0 | |
store i8* %48, i8** %exn.slot, align 8 | |
%49 = extractvalue { i8*, i32 } %47, 1 | |
store i32 %49, i32* %ehselector.slot, align 4 | |
br label %ehcleanup851 | |
lpad36: ; preds = %if.then35 | |
%50 = landingpad { i8*, i32 } | |
cleanup | |
%51 = extractvalue { i8*, i32 } %50, 0 | |
store i8* %51, i8** %exn.slot, align 8 | |
%52 = extractvalue { i8*, i32 } %50, 1 | |
store i32 %52, i32* %ehselector.slot, align 4 | |
call void @__cxa_free_exception(i8* %exception) #16 | |
br label %ehcleanup851 | |
if.end38: ; preds = %invoke.cont32 | |
call void @llvm.lifetime.start.p0i8(i64 1, i8* %isExtractGroupCommand) #16 | |
%Command = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 11 | |
%call41 = invoke zeroext i1 @_ZNK15CArchiveCommand18IsFromExtractGroupEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %Command) | |
to label %invoke.cont40 unwind label %lpad39 | |
invoke.cont40: ; preds = %if.end38 | |
%frombool = zext i1 %call41 to i8 | |
store i8 %frombool, i8* %isExtractGroupCommand, align 1, !tbaa !29 | |
%53 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7 | |
%Formats = getelementptr inbounds %class.CCodecs, %class.CCodecs* %53, i32 0, i32 2 | |
%54 = bitcast %class.CObjectVector.4* %Formats to %class.CBaseRecordVector* | |
%call43 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %54) | |
to label %invoke.cont42 unwind label %lpad39 | |
invoke.cont42: ; preds = %invoke.cont40 | |
%cmp44 = icmp eq i32 %call43, 0 | |
br i1 %cmp44, label %land.lhs.true, label %if.end54 | |
land.lhs.true: ; preds = %invoke.cont42 | |
%55 = load i8, i8* %isExtractGroupCommand, align 1, !tbaa !29, !range !25 | |
%tobool45 = trunc i8 %55 to i1 | |
br i1 %tobool45, label %if.then52, label %lor.lhs.false | |
lor.lhs.false: ; preds = %land.lhs.true | |
%Command46 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 11 | |
%CommandType = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command46, i32 0, i32 0 | |
%56 = load i32, i32* %CommandType, align 8, !tbaa !30 | |
%cmp47 = icmp eq i32 %56, 6 | |
br i1 %cmp47, label %if.then52, label %lor.lhs.false48 | |
lor.lhs.false48: ; preds = %lor.lhs.false | |
%Command49 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 11 | |
%call51 = invoke zeroext i1 @_ZNK15CArchiveCommand17IsFromUpdateGroupEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %Command49) | |
to label %invoke.cont50 unwind label %lpad39 | |
invoke.cont50: ; preds = %lor.lhs.false48 | |
br i1 %call51, label %if.then52, label %if.end54 | |
if.then52: ; preds = %invoke.cont50, %lor.lhs.false, %land.lhs.true | |
%exception53 = call i8* @__cxa_allocate_exception(i64 8) #16 | |
%57 = bitcast i8* %exception53 to i8** | |
%58 = load i8*, i8** @_ZL10kNoFormats, align 8, !tbaa !7 | |
store i8* %58, i8** %57, align 16, !tbaa !7 | |
invoke void @__cxa_throw(i8* %exception53, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18 | |
to label %unreachable unwind label %lpad39 | |
lpad39: ; preds = %if.then52, %lor.lhs.false48, %invoke.cont40, %if.end38 | |
%59 = landingpad { i8*, i32 } | |
cleanup | |
%60 = extractvalue { i8*, i32 } %59, 0 | |
store i8* %60, i8** %exn.slot, align 8 | |
%61 = extractvalue { i8*, i32 } %59, 1 | |
store i32 %61, i32* %ehselector.slot, align 4 | |
br label %ehcleanup849 | |
if.end54: ; preds = %invoke.cont50, %invoke.cont42 | |
%62 = bitcast %class.CRecordVector.5* %formatIndices to i8* | |
call void @llvm.lifetime.start.p0i8(i64 32, i8* %62) #16 | |
invoke void @_ZN13CRecordVectorIiEC2Ev(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %formatIndices) | |
to label %invoke.cont56 unwind label %lpad55 | |
invoke.cont56: ; preds = %if.end54 | |
%63 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7 | |
%ArcType = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 24 | |
%call59 = invoke zeroext i1 @_ZNK7CCodecs24FindFormatForArchiveTypeERK11CStringBaseIwER13CRecordVectorIiE(%class.CCodecs* nonnull align 8 dereferenceable(48) %63, %class.CStringBase* nonnull align 8 dereferenceable(16) %ArcType, %class.CRecordVector.5* nonnull align 8 dereferenceable(32) %formatIndices) | |
to label %invoke.cont58 unwind label %lpad57 | |
invoke.cont58: ; preds = %invoke.cont56 | |
br i1 %call59, label %if.end62, label %if.then60 | |
if.then60: ; preds = %invoke.cont58 | |
%exception61 = call i8* @__cxa_allocate_exception(i64 8) #16 | |
%64 = bitcast i8* %exception61 to i8** | |
%65 = load i8*, i8** @_ZL26kUnsupportedArcTypeMessage, align 8, !tbaa !7 | |
store i8* %65, i8** %64, align 16, !tbaa !7 | |
invoke void @__cxa_throw(i8* %exception61, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18 | |
to label %unreachable unwind label %lpad57 | |
lpad55: ; preds = %if.end54 | |
%66 = landingpad { i8*, i32 } | |
cleanup | |
%67 = extractvalue { i8*, i32 } %66, 0 | |
store i8* %67, i8** %exn.slot, align 8 | |
%68 = extractvalue { i8*, i32 } %66, 1 | |
store i32 %68, i32* %ehselector.slot, align 4 | |
br label %ehcleanup847 | |
lpad57: ; preds = %if.else838, %if.else501, %if.then188, %invoke.cont69, %invoke.cont67, %if.then66, %if.then60, %invoke.cont56 | |
%69 = landingpad { i8*, i32 } | |
cleanup | |
%70 = extractvalue { i8*, i32 } %69, 0 | |
store i8* %70, i8** %exn.slot, align 8 | |
%71 = extractvalue { i8*, i32 } %69, 1 | |
store i32 %71, i32* %ehselector.slot, align 4 | |
br label %ehcleanup845 | |
if.end62: ; preds = %invoke.cont58 | |
%Command63 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 11 | |
%CommandType64 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command63, i32 0, i32 0 | |
%72 = load i32, i32* %CommandType64, align 8, !tbaa !30 | |
%cmp65 = icmp eq i32 %72, 8 | |
br i1 %cmp65, label %if.then66, label %if.else184 | |
if.then66: ; preds = %if.end62 | |
%73 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call68 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %73, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont67 unwind label %lpad57 | |
invoke.cont67: ; preds = %if.then66 | |
%call70 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call68, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i64 0, i64 0)) | |
to label %invoke.cont69 unwind label %lpad57 | |
invoke.cont69: ; preds = %invoke.cont67 | |
%call72 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call70, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont71 unwind label %lpad57 | |
invoke.cont71: ; preds = %invoke.cont69 | |
%74 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %74) #16 | |
store i32 0, i32* %i, align 4, !tbaa !3 | |
br label %for.cond | |
for.cond: ; preds = %for.inc174, %invoke.cont71 | |
%75 = load i32, i32* %i, align 4, !tbaa !3 | |
%76 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7 | |
%Formats73 = getelementptr inbounds %class.CCodecs, %class.CCodecs* %76, i32 0, i32 2 | |
%77 = bitcast %class.CObjectVector.4* %Formats73 to %class.CBaseRecordVector* | |
%call76 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %77) | |
to label %invoke.cont75 unwind label %lpad74 | |
invoke.cont75: ; preds = %for.cond | |
%cmp77 = icmp slt i32 %75, %call76 | |
br i1 %cmp77, label %for.body, label %for.end176 | |
for.body: ; preds = %invoke.cont75 | |
%78 = bitcast %struct.CArcInfoEx** %arc to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %78) #16 | |
%79 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7 | |
%Formats78 = getelementptr inbounds %class.CCodecs, %class.CCodecs* %79, i32 0, i32 2 | |
%80 = load i32, i32* %i, align 4, !tbaa !3 | |
%call81 = invoke nonnull align 8 dereferenceable(97) %struct.CArcInfoEx* @_ZN13CObjectVectorI10CArcInfoExEixEi(%class.CObjectVector.4* nonnull align 8 dereferenceable(32) %Formats78, i32 %80) | |
to label %invoke.cont80 unwind label %lpad79 | |
invoke.cont80: ; preds = %for.body | |
store %struct.CArcInfoEx* %call81, %struct.CArcInfoEx** %arc, align 8, !tbaa !7 | |
%81 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call83 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %81, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0)) | |
to label %invoke.cont82 unwind label %lpad79 | |
invoke.cont82: ; preds = %invoke.cont80 | |
%82 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call85 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %82, i8 signext 32) | |
to label %invoke.cont84 unwind label %lpad79 | |
invoke.cont84: ; preds = %invoke.cont82 | |
%83 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%84 = load %struct.CArcInfoEx*, %struct.CArcInfoEx** %arc, align 8, !tbaa !7 | |
%UpdateEnabled = getelementptr inbounds %struct.CArcInfoEx, %struct.CArcInfoEx* %84, i32 0, i32 0 | |
%85 = load i8, i8* %UpdateEnabled, align 8, !tbaa !31, !range !25 | |
%tobool86 = trunc i8 %85 to i1 | |
%86 = zext i1 %tobool86 to i64 | |
%cond = select i1 %tobool86, i8 67, i8 32 | |
%call88 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %83, i8 signext %cond) | |
to label %invoke.cont87 unwind label %lpad79 | |
invoke.cont87: ; preds = %invoke.cont84 | |
%87 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%88 = load %struct.CArcInfoEx*, %struct.CArcInfoEx** %arc, align 8, !tbaa !7 | |
%KeepName = getelementptr inbounds %struct.CArcInfoEx, %struct.CArcInfoEx* %88, i32 0, i32 7 | |
%89 = load i8, i8* %KeepName, align 8, !tbaa !36, !range !25 | |
%tobool89 = trunc i8 %89 to i1 | |
%90 = zext i1 %tobool89 to i64 | |
%cond90 = select i1 %tobool89, i8 75, i8 32 | |
%call92 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %87, i8 signext %cond90) | |
to label %invoke.cont91 unwind label %lpad79 | |
invoke.cont91: ; preds = %invoke.cont87 | |
%91 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call94 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %91, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0)) | |
to label %invoke.cont93 unwind label %lpad79 | |
invoke.cont93: ; preds = %invoke.cont91 | |
%92 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%93 = load %struct.CArcInfoEx*, %struct.CArcInfoEx** %arc, align 8, !tbaa !7 | |
%Name = getelementptr inbounds %struct.CArcInfoEx, %struct.CArcInfoEx* %93, i32 0, i32 4 | |
invoke void @_ZL11PrintStringR13CStdOutStreamRK11CStringBaseIwEi(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %92, %class.CStringBase* nonnull align 8 dereferenceable(16) %Name, i32 6) | |
to label %invoke.cont95 unwind label %lpad79 | |
invoke.cont95: ; preds = %invoke.cont93 | |
%94 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call97 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %94, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0)) | |
to label %invoke.cont96 unwind label %lpad79 | |
invoke.cont96: ; preds = %invoke.cont95 | |
%95 = bitcast %class.CStringBase* %s to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %95) #16 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %s) | |
to label %invoke.cont99 unwind label %lpad98 | |
invoke.cont99: ; preds = %invoke.cont96 | |
%96 = bitcast i32* %t to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %96) #16 | |
store i32 0, i32* %t, align 4, !tbaa !3 | |
br label %for.cond100 | |
for.cond100: ; preds = %for.inc, %invoke.cont99 | |
%97 = load i32, i32* %t, align 4, !tbaa !3 | |
%98 = load %struct.CArcInfoEx*, %struct.CArcInfoEx** %arc, align 8, !tbaa !7 | |
%Exts = getelementptr inbounds %struct.CArcInfoEx, %struct.CArcInfoEx* %98, i32 0, i32 5 | |
%99 = bitcast %class.CObjectVector.6* %Exts to %class.CBaseRecordVector* | |
%call103 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %99) | |
to label %invoke.cont102 unwind label %lpad101 | |
invoke.cont102: ; preds = %for.cond100 | |
%cmp104 = icmp slt i32 %97, %call103 | |
br i1 %cmp104, label %for.body105, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %invoke.cont102 | |
store i32 5, i32* %cleanup.dest.slot, align 4 | |
%100 = bitcast i32* %t to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %100) #16 | |
br label %for.end | |
lpad74: ; preds = %invoke.cont179, %invoke.cont177, %for.end176, %for.cond | |
%101 = landingpad { i8*, i32 } | |
cleanup | |
%102 = extractvalue { i8*, i32 } %101, 0 | |
store i8* %102, i8** %exn.slot, align 8 | |
%103 = extractvalue { i8*, i32 } %101, 1 | |
store i32 %103, i32* %ehselector.slot, align 4 | |
br label %ehcleanup183 | |
lpad79: ; preds = %invoke.cont95, %invoke.cont93, %invoke.cont91, %invoke.cont87, %invoke.cont84, %invoke.cont82, %invoke.cont80, %for.body | |
%104 = landingpad { i8*, i32 } | |
cleanup | |
%105 = extractvalue { i8*, i32 } %104, 0 | |
store i8* %105, i8** %exn.slot, align 8 | |
%106 = extractvalue { i8*, i32 } %104, 1 | |
store i32 %106, i32* %ehselector.slot, align 4 | |
br label %ehcleanup173 | |
lpad98: ; preds = %invoke.cont96 | |
%107 = landingpad { i8*, i32 } | |
cleanup | |
%108 = extractvalue { i8*, i32 } %107, 0 | |
store i8* %108, i8** %exn.slot, align 8 | |
%109 = extractvalue { i8*, i32 } %107, 1 | |
store i32 %109, i32* %ehselector.slot, align 4 | |
br label %ehcleanup172 | |
lpad101: ; preds = %for.cond100 | |
%110 = landingpad { i8*, i32 } | |
cleanup | |
%111 = extractvalue { i8*, i32 } %110, 0 | |
store i8* %111, i8** %exn.slot, align 8 | |
%112 = extractvalue { i8*, i32 } %110, 1 | |
store i32 %112, i32* %ehselector.slot, align 4 | |
br label %ehcleanup | |
for.body105: ; preds = %invoke.cont102 | |
%113 = bitcast %struct.CArcExtInfo** %ext to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %113) #16 | |
%114 = load %struct.CArcInfoEx*, %struct.CArcInfoEx** %arc, align 8, !tbaa !7 | |
%Exts106 = getelementptr inbounds %struct.CArcInfoEx, %struct.CArcInfoEx* %114, i32 0, i32 5 | |
%115 = load i32, i32* %t, align 4, !tbaa !3 | |
%call109 = invoke nonnull align 8 dereferenceable(32) %struct.CArcExtInfo* @_ZNK13CObjectVectorI11CArcExtInfoEixEi(%class.CObjectVector.6* nonnull align 8 dereferenceable(32) %Exts106, i32 %115) | |
to label %invoke.cont108 unwind label %lpad107 | |
invoke.cont108: ; preds = %for.body105 | |
store %struct.CArcExtInfo* %call109, %struct.CArcExtInfo** %ext, align 8, !tbaa !7 | |
%116 = load %struct.CArcExtInfo*, %struct.CArcExtInfo** %ext, align 8, !tbaa !7 | |
%Ext = getelementptr inbounds %struct.CArcExtInfo, %struct.CArcExtInfo* %116, i32 0, i32 0 | |
%call111 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %s, %class.CStringBase* nonnull align 8 dereferenceable(16) %Ext) | |
to label %invoke.cont110 unwind label %lpad107 | |
invoke.cont110: ; preds = %invoke.cont108 | |
%117 = load %struct.CArcExtInfo*, %struct.CArcExtInfo** %ext, align 8, !tbaa !7 | |
%AddExt = getelementptr inbounds %struct.CArcExtInfo, %struct.CArcExtInfo* %117, i32 0, i32 1 | |
%call113 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %AddExt) | |
to label %invoke.cont112 unwind label %lpad107 | |
invoke.cont112: ; preds = %invoke.cont110 | |
br i1 %call113, label %if.end122, label %if.then114 | |
if.then114: ; preds = %invoke.cont112 | |
%call116 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %s, i32* getelementptr inbounds ([3 x i32], [3 x i32]* @.str.2, i64 0, i64 0)) | |
to label %invoke.cont115 unwind label %lpad107 | |
invoke.cont115: ; preds = %if.then114 | |
%118 = load %struct.CArcExtInfo*, %struct.CArcExtInfo** %ext, align 8, !tbaa !7 | |
%AddExt117 = getelementptr inbounds %struct.CArcExtInfo, %struct.CArcExtInfo* %118, i32 0, i32 1 | |
%call119 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %s, %class.CStringBase* nonnull align 8 dereferenceable(16) %AddExt117) | |
to label %invoke.cont118 unwind label %lpad107 | |
invoke.cont118: ; preds = %invoke.cont115 | |
%call121 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLEw(%class.CStringBase* nonnull align 8 dereferenceable(16) %s, i32 signext 41) | |
to label %invoke.cont120 unwind label %lpad107 | |
invoke.cont120: ; preds = %invoke.cont118 | |
br label %if.end122 | |
lpad107: ; preds = %if.end122, %invoke.cont118, %invoke.cont115, %if.then114, %invoke.cont110, %invoke.cont108, %for.body105 | |
%119 = landingpad { i8*, i32 } | |
cleanup | |
%120 = extractvalue { i8*, i32 } %119, 0 | |
store i8* %120, i8** %exn.slot, align 8 | |
%121 = extractvalue { i8*, i32 } %119, 1 | |
store i32 %121, i32* %ehselector.slot, align 4 | |
%122 = bitcast %struct.CArcExtInfo** %ext to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %122) #16 | |
br label %ehcleanup | |
if.end122: ; preds = %invoke.cont120, %invoke.cont112 | |
%call124 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLEw(%class.CStringBase* nonnull align 8 dereferenceable(16) %s, i32 signext 32) | |
to label %invoke.cont123 unwind label %lpad107 | |
invoke.cont123: ; preds = %if.end122 | |
%123 = bitcast %struct.CArcExtInfo** %ext to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %123) #16 | |
br label %for.inc | |
for.inc: ; preds = %invoke.cont123 | |
%124 = load i32, i32* %t, align 4, !tbaa !3 | |
%inc = add nsw i32 %124, 1 | |
store i32 %inc, i32* %t, align 4, !tbaa !3 | |
br label %for.cond100, !llvm.loop !37 | |
ehcleanup: ; preds = %lpad107, %lpad101 | |
%125 = bitcast i32* %t to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %125) #16 | |
br label %ehcleanup171 | |
for.end: ; preds = %for.cond.cleanup | |
%126 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
invoke void @_ZL11PrintStringR13CStdOutStreamRK11CStringBaseIwEi(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %126, %class.CStringBase* nonnull align 8 dereferenceable(16) %s, i32 14) | |
to label %invoke.cont126 unwind label %lpad125 | |
invoke.cont126: ; preds = %for.end | |
%127 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call128 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %127, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0)) | |
to label %invoke.cont127 unwind label %lpad125 | |
invoke.cont127: ; preds = %invoke.cont126 | |
%128 = bitcast %class.CBuffer** %sig to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %128) #16 | |
%129 = load %struct.CArcInfoEx*, %struct.CArcInfoEx** %arc, align 8, !tbaa !7 | |
%StartSignature = getelementptr inbounds %struct.CArcInfoEx, %struct.CArcInfoEx* %129, i32 0, i32 6 | |
store %class.CBuffer* %StartSignature, %class.CBuffer** %sig, align 8, !tbaa !7 | |
%130 = bitcast i64* %j to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %130) #16 | |
store i64 0, i64* %j, align 8, !tbaa !39 | |
br label %for.cond129 | |
for.cond129: ; preds = %for.inc163, %invoke.cont127 | |
%131 = load i64, i64* %j, align 8, !tbaa !39 | |
%132 = load %class.CBuffer*, %class.CBuffer** %sig, align 8, !tbaa !7 | |
%call132 = invoke i64 @_ZNK7CBufferIhE11GetCapacityEv(%class.CBuffer* nonnull align 8 dereferenceable(24) %132) | |
to label %invoke.cont131 unwind label %lpad130 | |
invoke.cont131: ; preds = %for.cond129 | |
%cmp133 = icmp ult i64 %131, %call132 | |
br i1 %cmp133, label %for.body135, label %for.cond.cleanup134 | |
for.cond.cleanup134: ; preds = %invoke.cont131 | |
store i32 8, i32* %cleanup.dest.slot, align 4 | |
%133 = bitcast i64* %j to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %133) #16 | |
br label %for.end166 | |
lpad125: ; preds = %invoke.cont126, %for.end | |
%134 = landingpad { i8*, i32 } | |
cleanup | |
%135 = extractvalue { i8*, i32 } %134, 0 | |
store i8* %135, i8** %exn.slot, align 8 | |
%136 = extractvalue { i8*, i32 } %134, 1 | |
store i32 %136, i32* %ehselector.slot, align 4 | |
br label %ehcleanup171 | |
lpad130: ; preds = %for.cond129 | |
%137 = landingpad { i8*, i32 } | |
cleanup | |
%138 = extractvalue { i8*, i32 } %137, 0 | |
store i8* %138, i8** %exn.slot, align 8 | |
%139 = extractvalue { i8*, i32 } %137, 1 | |
store i32 %139, i32* %ehselector.slot, align 4 | |
br label %ehcleanup165 | |
for.body135: ; preds = %invoke.cont131 | |
call void @llvm.lifetime.start.p0i8(i64 1, i8* %b) #16 | |
%140 = load %class.CBuffer*, %class.CBuffer** %sig, align 8, !tbaa !7 | |
%call138 = invoke i8* @_ZNK7CBufferIhEcvPKhEv(%class.CBuffer* nonnull align 8 dereferenceable(24) %140) | |
to label %invoke.cont137 unwind label %lpad136 | |
invoke.cont137: ; preds = %for.body135 | |
%141 = load i64, i64* %j, align 8, !tbaa !39 | |
%arrayidx = getelementptr inbounds i8, i8* %call138, i64 %141 | |
%142 = load i8, i8* %arrayidx, align 1, !tbaa !40 | |
store i8 %142, i8* %b, align 1, !tbaa !40 | |
%143 = load i8, i8* %b, align 1, !tbaa !40 | |
%conv = zext i8 %143 to i32 | |
%cmp139 = icmp sgt i32 %conv, 32 | |
br i1 %cmp139, label %land.lhs.true140, label %if.else | |
land.lhs.true140: ; preds = %invoke.cont137 | |
%144 = load i8, i8* %b, align 1, !tbaa !40 | |
%conv141 = zext i8 %144 to i32 | |
%cmp142 = icmp slt i32 %conv141, 128 | |
br i1 %cmp142, label %if.then143, label %if.else | |
if.then143: ; preds = %land.lhs.true140 | |
%145 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%146 = load i8, i8* %b, align 1, !tbaa !40 | |
%call145 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %145, i8 signext %146) | |
to label %invoke.cont144 unwind label %lpad136 | |
invoke.cont144: ; preds = %if.then143 | |
br label %if.end159 | |
lpad136: ; preds = %if.end159, %invoke.cont155, %invoke.cont150, %invoke.cont148, %if.else, %if.then143, %for.body135 | |
%147 = landingpad { i8*, i32 } | |
cleanup | |
%148 = extractvalue { i8*, i32 } %147, 0 | |
store i8* %148, i8** %exn.slot, align 8 | |
%149 = extractvalue { i8*, i32 } %147, 1 | |
store i32 %149, i32* %ehselector.slot, align 4 | |
call void @llvm.lifetime.end.p0i8(i64 1, i8* %b) #16 | |
br label %ehcleanup165 | |
if.else: ; preds = %land.lhs.true140, %invoke.cont137 | |
%150 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%151 = load i8, i8* %b, align 1, !tbaa !40 | |
%conv146 = zext i8 %151 to i32 | |
%shr = ashr i32 %conv146, 4 | |
%and = and i32 %shr, 15 | |
%conv147 = trunc i32 %and to i8 | |
%call149 = invoke signext i8 @_ZL6GetHexh(i8 zeroext %conv147) | |
to label %invoke.cont148 unwind label %lpad136 | |
invoke.cont148: ; preds = %if.else | |
%call151 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %150, i8 signext %call149) | |
to label %invoke.cont150 unwind label %lpad136 | |
invoke.cont150: ; preds = %invoke.cont148 | |
%152 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%153 = load i8, i8* %b, align 1, !tbaa !40 | |
%conv152 = zext i8 %153 to i32 | |
%and153 = and i32 %conv152, 15 | |
%conv154 = trunc i32 %and153 to i8 | |
%call156 = invoke signext i8 @_ZL6GetHexh(i8 zeroext %conv154) | |
to label %invoke.cont155 unwind label %lpad136 | |
invoke.cont155: ; preds = %invoke.cont150 | |
%call158 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %152, i8 signext %call156) | |
to label %invoke.cont157 unwind label %lpad136 | |
invoke.cont157: ; preds = %invoke.cont155 | |
br label %if.end159 | |
if.end159: ; preds = %invoke.cont157, %invoke.cont144 | |
%154 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call161 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %154, i8 signext 32) | |
to label %invoke.cont160 unwind label %lpad136 | |
invoke.cont160: ; preds = %if.end159 | |
call void @llvm.lifetime.end.p0i8(i64 1, i8* %b) #16 | |
br label %for.inc163 | |
for.inc163: ; preds = %invoke.cont160 | |
%155 = load i64, i64* %j, align 8, !tbaa !39 | |
%inc164 = add i64 %155, 1 | |
store i64 %inc164, i64* %j, align 8, !tbaa !39 | |
br label %for.cond129, !llvm.loop !41 | |
ehcleanup165: ; preds = %lpad136, %lpad130 | |
%156 = bitcast i64* %j to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %156) #16 | |
br label %ehcleanup170 | |
for.end166: ; preds = %for.cond.cleanup134 | |
%157 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call169 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %157, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont168 unwind label %lpad167 | |
invoke.cont168: ; preds = %for.end166 | |
%158 = bitcast %class.CBuffer** %sig to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %158) #16 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %s) #16 | |
%159 = bitcast %class.CStringBase* %s to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %159) #16 | |
%160 = bitcast %struct.CArcInfoEx** %arc to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %160) #16 | |
br label %for.inc174 | |
for.inc174: ; preds = %invoke.cont168 | |
%161 = load i32, i32* %i, align 4, !tbaa !3 | |
%inc175 = add nsw i32 %161, 1 | |
store i32 %inc175, i32* %i, align 4, !tbaa !3 | |
br label %for.cond, !llvm.loop !42 | |
lpad167: ; preds = %for.end166 | |
%162 = landingpad { i8*, i32 } | |
cleanup | |
%163 = extractvalue { i8*, i32 } %162, 0 | |
store i8* %163, i8** %exn.slot, align 8 | |
%164 = extractvalue { i8*, i32 } %162, 1 | |
store i32 %164, i32* %ehselector.slot, align 4 | |
br label %ehcleanup170 | |
ehcleanup170: ; preds = %lpad167, %ehcleanup165 | |
%165 = bitcast %class.CBuffer** %sig to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %165) #16 | |
br label %ehcleanup171 | |
ehcleanup171: ; preds = %ehcleanup170, %lpad125, %ehcleanup | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %s) #16 | |
br label %ehcleanup172 | |
ehcleanup172: ; preds = %ehcleanup171, %lpad98 | |
%166 = bitcast %class.CStringBase* %s to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %166) #16 | |
br label %ehcleanup173 | |
ehcleanup173: ; preds = %ehcleanup172, %lpad79 | |
%167 = bitcast %struct.CArcInfoEx** %arc to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %167) #16 | |
br label %ehcleanup183 | |
for.end176: ; preds = %invoke.cont75 | |
%168 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call178 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %168, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont177 unwind label %lpad74 | |
invoke.cont177: ; preds = %for.end176 | |
%call180 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call178, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.3, i64 0, i64 0)) | |
to label %invoke.cont179 unwind label %lpad74 | |
invoke.cont179: ; preds = %invoke.cont177 | |
%call182 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call180, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont181 unwind label %lpad74 | |
invoke.cont181: ; preds = %invoke.cont179 | |
store i32 0, i32* %retval, align 4 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
%169 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %169) #16 | |
br label %cleanup844 | |
ehcleanup183: ; preds = %ehcleanup173, %lpad74 | |
%170 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %170) #16 | |
br label %ehcleanup845 | |
if.else184: ; preds = %if.end62 | |
%Command185 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 11 | |
%CommandType186 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command185, i32 0, i32 0 | |
%171 = load i32, i32* %CommandType186, align 8, !tbaa !30 | |
%cmp187 = icmp eq i32 %171, 7 | |
br i1 %cmp187, label %if.then188, label %if.else238 | |
if.then188: ; preds = %if.else184 | |
%Method = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 29 | |
%call190 = invoke i32 @_ZNK11CStringBaseIwE13CompareNoCaseEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %Method, i32* getelementptr inbounds ([4 x i32], [4 x i32]* @.str.4, i64 0, i64 0)) | |
to label %invoke.cont189 unwind label %lpad57 | |
invoke.cont189: ; preds = %if.then188 | |
%cmp191 = icmp eq i32 %call190, 0 | |
br i1 %cmp191, label %if.then192, label %if.else211 | |
if.then192: ; preds = %invoke.cont189 | |
%172 = bitcast i32* %res to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %172) #16 | |
%173 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call195 = invoke %struct._IO_FILE* @_ZN13CStdOutStreamcvP8_IO_FILEEv(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %173) | |
to label %invoke.cont194 unwind label %lpad193 | |
invoke.cont194: ; preds = %if.then192 | |
%NumIterations = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 26 | |
%174 = load i32, i32* %NumIterations, align 4, !tbaa !43 | |
%NumThreads = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 27 | |
%175 = load i32, i32* %NumThreads, align 8, !tbaa !44 | |
%DictionarySize = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 28 | |
%176 = load i32, i32* %DictionarySize, align 4, !tbaa !45 | |
%call197 = invoke i32 @_Z11CrcBenchConP8_IO_FILEjjj(%struct._IO_FILE* %call195, i32 %174, i32 %175, i32 %176) | |
to label %invoke.cont196 unwind label %lpad193 | |
invoke.cont196: ; preds = %invoke.cont194 | |
store i32 %call197, i32* %res, align 4, !tbaa !3 | |
%177 = load i32, i32* %res, align 4, !tbaa !3 | |
%cmp198 = icmp ne i32 %177, 0 | |
br i1 %cmp198, label %if.then199, label %if.end209 | |
if.then199: ; preds = %invoke.cont196 | |
%178 = load i32, i32* %res, align 4, !tbaa !3 | |
%cmp200 = icmp eq i32 %178, 1 | |
br i1 %cmp200, label %if.then201, label %if.end204 | |
if.then201: ; preds = %if.then199 | |
%179 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call203 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %179, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.5, i64 0, i64 0)) | |
to label %invoke.cont202 unwind label %lpad193 | |
invoke.cont202: ; preds = %if.then201 | |
store i32 2, i32* %retval, align 4 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
lpad193: ; preds = %invoke.cont207, %if.then201, %invoke.cont194, %if.then192 | |
%180 = landingpad { i8*, i32 } | |
cleanup | |
%181 = extractvalue { i8*, i32 } %180, 0 | |
store i8* %181, i8** %exn.slot, align 8 | |
%182 = extractvalue { i8*, i32 } %180, 1 | |
store i32 %182, i32* %ehselector.slot, align 4 | |
br label %ehcleanup210 | |
if.end204: ; preds = %if.then199 | |
%exception205 = call i8* @__cxa_allocate_exception(i64 4) #16 | |
%183 = bitcast i8* %exception205 to %struct.CSystemException* | |
%184 = load i32, i32* %res, align 4, !tbaa !3 | |
invoke void @_ZN16CSystemExceptionC2Ei(%struct.CSystemException* nonnull align 4 dereferenceable(4) %183, i32 %184) | |
to label %invoke.cont207 unwind label %lpad206 | |
invoke.cont207: ; preds = %if.end204 | |
invoke void @__cxa_throw(i8* %exception205, i8* bitcast ({ i8*, i8* }* @_ZTI16CSystemException to i8*), i8* null) #18 | |
to label %unreachable unwind label %lpad193 | |
lpad206: ; preds = %if.end204 | |
%185 = landingpad { i8*, i32 } | |
cleanup | |
%186 = extractvalue { i8*, i32 } %185, 0 | |
store i8* %186, i8** %exn.slot, align 8 | |
%187 = extractvalue { i8*, i32 } %185, 1 | |
store i32 %187, i32* %ehselector.slot, align 4 | |
call void @__cxa_free_exception(i8* %exception205) #16 | |
br label %ehcleanup210 | |
if.end209: ; preds = %invoke.cont196 | |
store i32 0, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup | |
cleanup: ; preds = %if.end209, %invoke.cont202 | |
%188 = bitcast i32* %res to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %188) #16 | |
%cleanup.dest = load i32, i32* %cleanup.dest.slot, align 4 | |
switch i32 %cleanup.dest, label %cleanup844 [ | |
i32 0, label %cleanup.cont | |
] | |
cleanup.cont: ; preds = %cleanup | |
br label %if.end237 | |
ehcleanup210: ; preds = %lpad206, %lpad193 | |
%189 = bitcast i32* %res to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %189) #16 | |
br label %ehcleanup845 | |
if.else211: ; preds = %invoke.cont189 | |
%190 = bitcast i32* %res212 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %190) #16 | |
%191 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call215 = invoke %struct._IO_FILE* @_ZN13CStdOutStreamcvP8_IO_FILEEv(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %191) | |
to label %invoke.cont214 unwind label %lpad213 | |
invoke.cont214: ; preds = %if.else211 | |
%NumIterations216 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 26 | |
%192 = load i32, i32* %NumIterations216, align 4, !tbaa !43 | |
%NumThreads217 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 27 | |
%193 = load i32, i32* %NumThreads217, align 8, !tbaa !44 | |
%DictionarySize218 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 28 | |
%194 = load i32, i32* %DictionarySize218, align 4, !tbaa !45 | |
%call220 = invoke i32 @_Z12LzmaBenchConP8_IO_FILEjjj(%struct._IO_FILE* %call215, i32 %192, i32 %193, i32 %194) | |
to label %invoke.cont219 unwind label %lpad213 | |
invoke.cont219: ; preds = %invoke.cont214 | |
store i32 %call220, i32* %res212, align 4, !tbaa !3 | |
%195 = load i32, i32* %res212, align 4, !tbaa !3 | |
%cmp221 = icmp ne i32 %195, 0 | |
br i1 %cmp221, label %if.then222, label %if.end232 | |
if.then222: ; preds = %invoke.cont219 | |
%196 = load i32, i32* %res212, align 4, !tbaa !3 | |
%cmp223 = icmp eq i32 %196, 1 | |
br i1 %cmp223, label %if.then224, label %if.end227 | |
if.then224: ; preds = %if.then222 | |
%197 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call226 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %197, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.6, i64 0, i64 0)) | |
to label %invoke.cont225 unwind label %lpad213 | |
invoke.cont225: ; preds = %if.then224 | |
store i32 2, i32* %retval, align 4 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup233 | |
lpad213: ; preds = %invoke.cont230, %if.then224, %invoke.cont214, %if.else211 | |
%198 = landingpad { i8*, i32 } | |
cleanup | |
%199 = extractvalue { i8*, i32 } %198, 0 | |
store i8* %199, i8** %exn.slot, align 8 | |
%200 = extractvalue { i8*, i32 } %198, 1 | |
store i32 %200, i32* %ehselector.slot, align 4 | |
br label %ehcleanup236 | |
if.end227: ; preds = %if.then222 | |
%exception228 = call i8* @__cxa_allocate_exception(i64 4) #16 | |
%201 = bitcast i8* %exception228 to %struct.CSystemException* | |
%202 = load i32, i32* %res212, align 4, !tbaa !3 | |
invoke void @_ZN16CSystemExceptionC2Ei(%struct.CSystemException* nonnull align 4 dereferenceable(4) %201, i32 %202) | |
to label %invoke.cont230 unwind label %lpad229 | |
invoke.cont230: ; preds = %if.end227 | |
invoke void @__cxa_throw(i8* %exception228, i8* bitcast ({ i8*, i8* }* @_ZTI16CSystemException to i8*), i8* null) #18 | |
to label %unreachable unwind label %lpad213 | |
lpad229: ; preds = %if.end227 | |
%203 = landingpad { i8*, i32 } | |
cleanup | |
%204 = extractvalue { i8*, i32 } %203, 0 | |
store i8* %204, i8** %exn.slot, align 8 | |
%205 = extractvalue { i8*, i32 } %203, 1 | |
store i32 %205, i32* %ehselector.slot, align 4 | |
call void @__cxa_free_exception(i8* %exception228) #16 | |
br label %ehcleanup236 | |
if.end232: ; preds = %invoke.cont219 | |
store i32 0, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup233 | |
cleanup233: ; preds = %if.end232, %invoke.cont225 | |
%206 = bitcast i32* %res212 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %206) #16 | |
%cleanup.dest234 = load i32, i32* %cleanup.dest.slot, align 4 | |
switch i32 %cleanup.dest234, label %cleanup844 [ | |
i32 0, label %cleanup.cont235 | |
] | |
cleanup.cont235: ; preds = %cleanup233 | |
br label %if.end237 | |
ehcleanup236: ; preds = %lpad229, %lpad213 | |
%207 = bitcast i32* %res212 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %207) #16 | |
br label %ehcleanup845 | |
if.end237: ; preds = %cleanup.cont235, %cleanup.cont | |
br label %if.end842 | |
if.else238: ; preds = %if.else184 | |
%208 = load i8, i8* %isExtractGroupCommand, align 1, !tbaa !29, !range !25 | |
%tobool239 = trunc i8 %208 to i1 | |
br i1 %tobool239, label %if.then244, label %lor.lhs.false240 | |
lor.lhs.false240: ; preds = %if.else238 | |
%Command241 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 11 | |
%CommandType242 = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %Command241, i32 0, i32 0 | |
%209 = load i32, i32* %CommandType242, align 8, !tbaa !30 | |
%cmp243 = icmp eq i32 %209, 6 | |
br i1 %cmp243, label %if.then244, label %if.else501 | |
if.then244: ; preds = %lor.lhs.false240, %if.else238 | |
%210 = load i8, i8* %isExtractGroupCommand, align 1, !tbaa !29, !range !25 | |
%tobool245 = trunc i8 %210 to i1 | |
br i1 %tobool245, label %if.then246, label %if.else459 | |
if.then246: ; preds = %if.then244 | |
%211 = bitcast %class.CExtractCallbackConsole** %ecs to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %211) #16 | |
%call249 = invoke noalias nonnull i8* @_Znwm(i64 80) #17 | |
to label %invoke.cont248 unwind label %lpad247 | |
invoke.cont248: ; preds = %if.then246 | |
%212 = bitcast i8* %call249 to %class.CExtractCallbackConsole* | |
invoke void @_ZN23CExtractCallbackConsoleC2Ev(%class.CExtractCallbackConsole* nonnull align 8 dereferenceable(80) %212) | |
to label %invoke.cont251 unwind label %lpad250 | |
invoke.cont251: ; preds = %invoke.cont248 | |
store %class.CExtractCallbackConsole* %212, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7 | |
%213 = bitcast %class.CMyComPtr.7* %extractCallback to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %213) #16 | |
%214 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7 | |
%215 = bitcast %class.CExtractCallbackConsole* %214 to %struct.IFolderArchiveExtractCallback* | |
invoke void @_ZN9CMyComPtrI29IFolderArchiveExtractCallbackEC2EPS0_(%class.CMyComPtr.7* nonnull align 8 dereferenceable(8) %extractCallback, %struct.IFolderArchiveExtractCallback* %215) | |
to label %invoke.cont254 unwind label %lpad253 | |
invoke.cont254: ; preds = %invoke.cont251 | |
%216 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%217 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7 | |
%OutStream = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %217, i32 0, i32 9 | |
store %class.CStdOutStream* %216, %class.CStdOutStream** %OutStream, align 8, !tbaa !46 | |
%PasswordEnabled = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 13 | |
%218 = load i8, i8* %PasswordEnabled, align 8, !tbaa !49, !range !25 | |
%tobool255 = trunc i8 %218 to i1 | |
%219 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7 | |
%PasswordIsDefined = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %219, i32 0, i32 3 | |
%frombool256 = zext i1 %tobool255 to i8 | |
store i8 %frombool256, i8* %PasswordIsDefined, align 4, !tbaa !50 | |
%Password = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 14 | |
%220 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7 | |
%Password257 = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %220, i32 0, i32 4 | |
%call260 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password257, %class.CStringBase* nonnull align 8 dereferenceable(16) %Password) | |
to label %invoke.cont259 unwind label %lpad258 | |
invoke.cont259: ; preds = %invoke.cont254 | |
%221 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7 | |
invoke void @_ZN23CExtractCallbackConsole4InitEv(%class.CExtractCallbackConsole* nonnull align 8 dereferenceable(80) %221) | |
to label %invoke.cont261 unwind label %lpad258 | |
invoke.cont261: ; preds = %invoke.cont259 | |
%222 = bitcast %class.COpenCallbackConsole* %openCallback to i8* | |
call void @llvm.lifetime.start.p0i8(i64 40, i8* %222) #16 | |
invoke void @_ZN20COpenCallbackConsoleC2Ev(%class.COpenCallbackConsole* nonnull align 8 dereferenceable(40) %openCallback) | |
to label %invoke.cont263 unwind label %lpad262 | |
invoke.cont263: ; preds = %invoke.cont261 | |
%223 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%OutStream264 = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %openCallback, i32 0, i32 1 | |
store %class.CStdOutStream* %223, %class.CStdOutStream** %OutStream264, align 8, !tbaa !51 | |
%PasswordEnabled265 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 13 | |
%224 = load i8, i8* %PasswordEnabled265, align 8, !tbaa !49, !range !25 | |
%tobool266 = trunc i8 %224 to i1 | |
%PasswordIsDefined267 = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %openCallback, i32 0, i32 2 | |
%frombool268 = zext i1 %tobool266 to i8 | |
store i8 %frombool268, i8* %PasswordIsDefined267, align 8, !tbaa !53 | |
%Password269 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 14 | |
%Password270 = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %openCallback, i32 0, i32 4 | |
%call273 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password270, %class.CStringBase* nonnull align 8 dereferenceable(16) %Password269) | |
to label %invoke.cont272 unwind label %lpad271 | |
invoke.cont272: ; preds = %invoke.cont263 | |
%225 = bitcast %struct.CExtractOptions* %eo to i8* | |
call void @llvm.lifetime.start.p0i8(i64 64, i8* %225) #16 | |
invoke void @_ZN15CExtractOptionsC2Ev(%struct.CExtractOptions* nonnull align 8 dereferenceable(64) %eo) | |
to label %invoke.cont275 unwind label %lpad274 | |
invoke.cont275: ; preds = %invoke.cont272 | |
%StdInMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 5 | |
%226 = load i8, i8* %StdInMode, align 1, !tbaa !54, !range !25 | |
%tobool276 = trunc i8 %226 to i1 | |
%StdInMode277 = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %eo, i32 0, i32 0 | |
%frombool278 = zext i1 %tobool276 to i8 | |
store i8 %frombool278, i8* %StdInMode277, align 8, !tbaa !55 | |
%StdOutMode279 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 6 | |
%227 = load i8, i8* %StdOutMode279, align 2, !tbaa !27, !range !25 | |
%tobool280 = trunc i8 %227 to i1 | |
%StdOutMode281 = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %eo, i32 0, i32 1 | |
%frombool282 = zext i1 %tobool280 to i8 | |
store i8 %frombool282, i8* %StdOutMode281, align 1, !tbaa !58 | |
%Command283 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 11 | |
%call286 = invoke i32 @_ZNK15CArchiveCommand11GetPathModeEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %Command283) | |
to label %invoke.cont285 unwind label %lpad284 | |
invoke.cont285: ; preds = %invoke.cont275 | |
%PathMode = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %eo, i32 0, i32 5 | |
store i32 %call286, i32* %PathMode, align 8, !tbaa !59 | |
%Command287 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 11 | |
%call289 = invoke zeroext i1 @_ZNK15CArchiveCommand10IsTestModeEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %Command287) | |
to label %invoke.cont288 unwind label %lpad284 | |
invoke.cont288: ; preds = %invoke.cont285 | |
%TestMode = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %eo, i32 0, i32 3 | |
%frombool290 = zext i1 %call289 to i8 | |
store i8 %frombool290, i8* %TestMode, align 1, !tbaa !60 | |
%OverwriteMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 19 | |
%228 = load i32, i32* %OverwriteMode, align 8, !tbaa !61 | |
%OverwriteMode291 = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %eo, i32 0, i32 6 | |
store i32 %228, i32* %OverwriteMode291, align 4, !tbaa !62 | |
%OutputDir = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 18 | |
%OutputDir292 = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %eo, i32 0, i32 7 | |
%call294 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir292, %class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir) | |
to label %invoke.cont293 unwind label %lpad284 | |
invoke.cont293: ; preds = %invoke.cont288 | |
%YesToAll = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 8 | |
%229 = load i8, i8* %YesToAll, align 8, !tbaa !63, !range !25 | |
%tobool295 = trunc i8 %229 to i1 | |
%YesToAll296 = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %eo, i32 0, i32 2 | |
%frombool297 = zext i1 %tobool295 to i8 | |
store i8 %frombool297, i8* %YesToAll296, align 2, !tbaa !64 | |
%CalcCrc = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 16 | |
%230 = load i8, i8* %CalcCrc, align 1, !tbaa !65, !range !25 | |
%tobool298 = trunc i8 %230 to i1 | |
%CalcCrc299 = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %eo, i32 0, i32 4 | |
%frombool300 = zext i1 %tobool298 to i8 | |
store i8 %frombool300, i8* %CalcCrc299, align 4, !tbaa !66 | |
%ExtractProperties = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 22 | |
%Properties = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %eo, i32 0, i32 8 | |
%call302 = invoke nonnull align 8 dereferenceable(32) %class.CObjectVector.1* @_ZN13CObjectVectorI9CPropertyEaSERKS1_(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %Properties, %class.CObjectVector.1* nonnull align 8 dereferenceable(32) %ExtractProperties) | |
to label %invoke.cont301 unwind label %lpad284 | |
invoke.cont301: ; preds = %invoke.cont293 | |
%231 = bitcast %class.CStringBase* %errorMessage to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %231) #16 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %errorMessage) | |
to label %invoke.cont304 unwind label %lpad303 | |
invoke.cont304: ; preds = %invoke.cont301 | |
%232 = bitcast %struct.CDecompressStat* %stat to i8* | |
call void @llvm.lifetime.start.p0i8(i64 48, i8* %232) #16 | |
%233 = bitcast i32* %result305 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %233) #16 | |
%234 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7 | |
%ArchivePathsSorted = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 20 | |
%ArchivePathsFullSorted = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 21 | |
%WildcardCensor = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 10 | |
%Pairs = getelementptr inbounds %"class.NWildcard::CCensor", %"class.NWildcard::CCensor"* %WildcardCensor, i32 0, i32 0 | |
%call308 = invoke nonnull align 8 dereferenceable(136) %"struct.NWildcard::CPair"* @_ZN13CObjectVectorIN9NWildcard5CPairEE5FrontEv(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %Pairs) | |
to label %invoke.cont307 unwind label %lpad306 | |
invoke.cont307: ; preds = %invoke.cont304 | |
%Head = getelementptr inbounds %"struct.NWildcard::CPair", %"struct.NWildcard::CPair"* %call308, i32 0, i32 1 | |
%235 = bitcast %class.COpenCallbackConsole* %openCallback to %struct.IOpenCallbackUI* | |
%236 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7 | |
%237 = bitcast %class.CExtractCallbackConsole* %236 to %struct.IExtractCallbackUI* | |
%call310 = invoke i32 @_Z18DecompressArchivesP7CCodecsRK13CRecordVectorIiER13CObjectVectorI11CStringBaseIwEES9_RKN9NWildcard11CCensorNodeERK15CExtractOptionsP15IOpenCallbackUIP18IExtractCallbackUIRS7_R15CDecompressStat(%class.CCodecs* %234, %class.CRecordVector.5* nonnull align 8 dereferenceable(32) %formatIndices, %class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsSorted, %class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsFullSorted, %"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120) %Head, %struct.CExtractOptions* nonnull align 8 dereferenceable(64) %eo, %struct.IOpenCallbackUI* %235, %struct.IExtractCallbackUI* %237, %class.CStringBase* nonnull align 8 dereferenceable(16) %errorMessage, %struct.CDecompressStat* nonnull align 8 dereferenceable(48) %stat) | |
to label %invoke.cont309 unwind label %lpad306 | |
invoke.cont309: ; preds = %invoke.cont307 | |
store i32 %call310, i32* %result305, align 4, !tbaa !3 | |
%call312 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %errorMessage) | |
to label %invoke.cont311 unwind label %lpad306 | |
invoke.cont311: ; preds = %invoke.cont309 | |
br i1 %call312, label %if.end325, label %if.then313 | |
if.then313: ; preds = %invoke.cont311 | |
%238 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call315 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %238, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont314 unwind label %lpad306 | |
invoke.cont314: ; preds = %if.then313 | |
%call317 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call315, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.7, i64 0, i64 0)) | |
to label %invoke.cont316 unwind label %lpad306 | |
invoke.cont316: ; preds = %invoke.cont314 | |
%call319 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %errorMessage) | |
to label %invoke.cont318 unwind label %lpad306 | |
invoke.cont318: ; preds = %invoke.cont316 | |
%call321 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKw(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call317, i32* %call319) | |
to label %invoke.cont320 unwind label %lpad306 | |
invoke.cont320: ; preds = %invoke.cont318 | |
%239 = load i32, i32* %result305, align 4, !tbaa !3 | |
%cmp322 = icmp eq i32 %239, 0 | |
br i1 %cmp322, label %if.then323, label %if.end324 | |
if.then323: ; preds = %invoke.cont320 | |
store i32 -2147467259, i32* %result305, align 4, !tbaa !3 | |
br label %if.end324 | |
lpad247: ; preds = %if.then246 | |
%240 = landingpad { i8*, i32 } | |
cleanup | |
%241 = extractvalue { i8*, i32 } %240, 0 | |
store i8* %241, i8** %exn.slot, align 8 | |
%242 = extractvalue { i8*, i32 } %240, 1 | |
store i32 %242, i32* %ehselector.slot, align 4 | |
br label %ehcleanup458 | |
lpad250: ; preds = %invoke.cont248 | |
%243 = landingpad { i8*, i32 } | |
cleanup | |
%244 = extractvalue { i8*, i32 } %243, 0 | |
store i8* %244, i8** %exn.slot, align 8 | |
%245 = extractvalue { i8*, i32 } %243, 1 | |
store i32 %245, i32* %ehselector.slot, align 4 | |
call void @_ZdlPv(i8* %call249) #19 | |
br label %ehcleanup458 | |
lpad253: ; preds = %invoke.cont251 | |
%246 = landingpad { i8*, i32 } | |
cleanup | |
%247 = extractvalue { i8*, i32 } %246, 0 | |
store i8* %247, i8** %exn.slot, align 8 | |
%248 = extractvalue { i8*, i32 } %246, 1 | |
store i32 %248, i32* %ehselector.slot, align 4 | |
br label %ehcleanup454 | |
lpad258: ; preds = %invoke.cont259, %invoke.cont254 | |
%249 = landingpad { i8*, i32 } | |
cleanup | |
%250 = extractvalue { i8*, i32 } %249, 0 | |
store i8* %250, i8** %exn.slot, align 8 | |
%251 = extractvalue { i8*, i32 } %249, 1 | |
store i32 %251, i32* %ehselector.slot, align 4 | |
br label %ehcleanup452 | |
lpad262: ; preds = %invoke.cont261 | |
%252 = landingpad { i8*, i32 } | |
cleanup | |
%253 = extractvalue { i8*, i32 } %252, 0 | |
store i8* %253, i8** %exn.slot, align 8 | |
%254 = extractvalue { i8*, i32 } %252, 1 | |
store i32 %254, i32* %ehselector.slot, align 4 | |
br label %ehcleanup450 | |
lpad271: ; preds = %invoke.cont263 | |
%255 = landingpad { i8*, i32 } | |
cleanup | |
%256 = extractvalue { i8*, i32 } %255, 0 | |
store i8* %256, i8** %exn.slot, align 8 | |
%257 = extractvalue { i8*, i32 } %255, 1 | |
store i32 %257, i32* %ehselector.slot, align 4 | |
br label %ehcleanup448 | |
lpad274: ; preds = %invoke.cont272 | |
%258 = landingpad { i8*, i32 } | |
cleanup | |
%259 = extractvalue { i8*, i32 } %258, 0 | |
store i8* %259, i8** %exn.slot, align 8 | |
%260 = extractvalue { i8*, i32 } %258, 1 | |
store i32 %260, i32* %ehselector.slot, align 4 | |
br label %ehcleanup446 | |
lpad284: ; preds = %invoke.cont293, %invoke.cont288, %invoke.cont285, %invoke.cont275 | |
%261 = landingpad { i8*, i32 } | |
cleanup | |
%262 = extractvalue { i8*, i32 } %261, 0 | |
store i8* %262, i8** %exn.slot, align 8 | |
%263 = extractvalue { i8*, i32 } %261, 1 | |
store i32 %263, i32* %ehselector.slot, align 4 | |
br label %ehcleanup444 | |
lpad303: ; preds = %invoke.cont301 | |
%264 = landingpad { i8*, i32 } | |
cleanup | |
%265 = extractvalue { i8*, i32 } %264, 0 | |
store i8* %265, i8** %exn.slot, align 8 | |
%266 = extractvalue { i8*, i32 } %264, 1 | |
store i32 %266, i32* %ehselector.slot, align 4 | |
br label %ehcleanup442 | |
lpad306: ; preds = %invoke.cont416, %invoke.cont414, %invoke.cont412, %invoke.cont410, %invoke.cont408, %if.end407, %invoke.cont403, %invoke.cont400, %if.then399, %invoke.cont390, %invoke.cont387, %if.then386, %invoke.cont382, %invoke.cont374, %invoke.cont364, %invoke.cont361, %if.then360, %invoke.cont353, %invoke.cont350, %if.then349, %if.then344, %invoke.cont333, %invoke.cont330, %if.then329, %if.end325, %invoke.cont318, %invoke.cont316, %invoke.cont314, %if.then313, %invoke.cont309, %invoke.cont307, %invoke.cont304 | |
%267 = landingpad { i8*, i32 } | |
cleanup | |
%268 = extractvalue { i8*, i32 } %267, 0 | |
store i8* %268, i8** %exn.slot, align 8 | |
%269 = extractvalue { i8*, i32 } %267, 1 | |
store i32 %269, i32* %ehselector.slot, align 4 | |
br label %ehcleanup436 | |
if.end324: ; preds = %if.then323, %invoke.cont320 | |
br label %if.end325 | |
if.end325: ; preds = %if.end324, %invoke.cont311 | |
%270 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call327 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %270, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont326 unwind label %lpad306 | |
invoke.cont326: ; preds = %if.end325 | |
%271 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7 | |
%NumArchives = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %271, i32 0, i32 5 | |
%272 = load i64, i64* %NumArchives, align 8, !tbaa !67 | |
%cmp328 = icmp ugt i64 %272, 1 | |
br i1 %cmp328, label %if.then329, label %if.end337 | |
if.then329: ; preds = %invoke.cont326 | |
%273 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call331 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %273, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.8, i64 0, i64 0)) | |
to label %invoke.cont330 unwind label %lpad306 | |
invoke.cont330: ; preds = %if.then329 | |
%274 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7 | |
%NumArchives332 = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %274, i32 0, i32 5 | |
%275 = load i64, i64* %NumArchives332, align 8, !tbaa !67 | |
%call334 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEy(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call331, i64 %275) | |
to label %invoke.cont333 unwind label %lpad306 | |
invoke.cont333: ; preds = %invoke.cont330 | |
%call336 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call334, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont335 unwind label %lpad306 | |
invoke.cont335: ; preds = %invoke.cont333 | |
br label %if.end337 | |
if.end337: ; preds = %invoke.cont335, %invoke.cont326 | |
%276 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7 | |
%NumArchiveErrors = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %276, i32 0, i32 6 | |
%277 = load i64, i64* %NumArchiveErrors, align 8, !tbaa !68 | |
%cmp338 = icmp ne i64 %277, 0 | |
br i1 %cmp338, label %if.then341, label %lor.lhs.false339 | |
lor.lhs.false339: ; preds = %if.end337 | |
%278 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7 | |
%NumFileErrors = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %278, i32 0, i32 7 | |
%279 = load i64, i64* %NumFileErrors, align 8, !tbaa !69 | |
%cmp340 = icmp ne i64 %279, 0 | |
br i1 %cmp340, label %if.then341, label %if.end377 | |
if.then341: ; preds = %lor.lhs.false339, %if.end337 | |
%280 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7 | |
%NumArchives342 = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %280, i32 0, i32 5 | |
%281 = load i64, i64* %NumArchives342, align 8, !tbaa !67 | |
%cmp343 = icmp ugt i64 %281, 1 | |
br i1 %cmp343, label %if.then344, label %if.end369 | |
if.then344: ; preds = %if.then341 | |
%282 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call346 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %282, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont345 unwind label %lpad306 | |
invoke.cont345: ; preds = %if.then344 | |
%283 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7 | |
%NumArchiveErrors347 = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %283, i32 0, i32 6 | |
%284 = load i64, i64* %NumArchiveErrors347, align 8, !tbaa !68 | |
%cmp348 = icmp ne i64 %284, 0 | |
br i1 %cmp348, label %if.then349, label %if.end357 | |
if.then349: ; preds = %invoke.cont345 | |
%285 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call351 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %285, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.9, i64 0, i64 0)) | |
to label %invoke.cont350 unwind label %lpad306 | |
invoke.cont350: ; preds = %if.then349 | |
%286 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7 | |
%NumArchiveErrors352 = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %286, i32 0, i32 6 | |
%287 = load i64, i64* %NumArchiveErrors352, align 8, !tbaa !68 | |
%call354 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEy(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call351, i64 %287) | |
to label %invoke.cont353 unwind label %lpad306 | |
invoke.cont353: ; preds = %invoke.cont350 | |
%call356 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call354, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont355 unwind label %lpad306 | |
invoke.cont355: ; preds = %invoke.cont353 | |
br label %if.end357 | |
if.end357: ; preds = %invoke.cont355, %invoke.cont345 | |
%288 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7 | |
%NumFileErrors358 = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %288, i32 0, i32 7 | |
%289 = load i64, i64* %NumFileErrors358, align 8, !tbaa !69 | |
%cmp359 = icmp ne i64 %289, 0 | |
br i1 %cmp359, label %if.then360, label %if.end368 | |
if.then360: ; preds = %if.end357 | |
%290 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call362 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %290, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.10, i64 0, i64 0)) | |
to label %invoke.cont361 unwind label %lpad306 | |
invoke.cont361: ; preds = %if.then360 | |
%291 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %ecs, align 8, !tbaa !7 | |
%NumFileErrors363 = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %291, i32 0, i32 7 | |
%292 = load i64, i64* %NumFileErrors363, align 8, !tbaa !69 | |
%call365 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEy(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call362, i64 %292) | |
to label %invoke.cont364 unwind label %lpad306 | |
invoke.cont364: ; preds = %invoke.cont361 | |
%call367 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call365, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont366 unwind label %lpad306 | |
invoke.cont366: ; preds = %invoke.cont364 | |
br label %if.end368 | |
if.end368: ; preds = %invoke.cont366, %if.end357 | |
br label %if.end369 | |
if.end369: ; preds = %if.end368, %if.then341 | |
%293 = load i32, i32* %result305, align 4, !tbaa !3 | |
%cmp370 = icmp ne i32 %293, 0 | |
br i1 %cmp370, label %if.then371, label %if.end376 | |
if.then371: ; preds = %if.end369 | |
%exception372 = call i8* @__cxa_allocate_exception(i64 4) #16 | |
%294 = bitcast i8* %exception372 to %struct.CSystemException* | |
%295 = load i32, i32* %result305, align 4, !tbaa !3 | |
invoke void @_ZN16CSystemExceptionC2Ei(%struct.CSystemException* nonnull align 4 dereferenceable(4) %294, i32 %295) | |
to label %invoke.cont374 unwind label %lpad373 | |
invoke.cont374: ; preds = %if.then371 | |
invoke void @__cxa_throw(i8* %exception372, i8* bitcast ({ i8*, i8* }* @_ZTI16CSystemException to i8*), i8* null) #18 | |
to label %unreachable unwind label %lpad306 | |
lpad373: ; preds = %if.then371 | |
%296 = landingpad { i8*, i32 } | |
cleanup | |
%297 = extractvalue { i8*, i32 } %296, 0 | |
store i8* %297, i8** %exn.slot, align 8 | |
%298 = extractvalue { i8*, i32 } %296, 1 | |
store i32 %298, i32* %ehselector.slot, align 4 | |
call void @__cxa_free_exception(i8* %exception372) #16 | |
br label %ehcleanup436 | |
if.end376: ; preds = %if.end369 | |
store i32 2, i32* %retval, align 4 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup435 | |
if.end377: ; preds = %lor.lhs.false339 | |
%299 = load i32, i32* %result305, align 4, !tbaa !3 | |
%cmp378 = icmp ne i32 %299, 0 | |
br i1 %cmp378, label %if.then379, label %if.end384 | |
if.then379: ; preds = %if.end377 | |
%exception380 = call i8* @__cxa_allocate_exception(i64 4) #16 | |
%300 = bitcast i8* %exception380 to %struct.CSystemException* | |
%301 = load i32, i32* %result305, align 4, !tbaa !3 | |
invoke void @_ZN16CSystemExceptionC2Ei(%struct.CSystemException* nonnull align 4 dereferenceable(4) %300, i32 %301) | |
to label %invoke.cont382 unwind label %lpad381 | |
invoke.cont382: ; preds = %if.then379 | |
invoke void @__cxa_throw(i8* %exception380, i8* bitcast ({ i8*, i8* }* @_ZTI16CSystemException to i8*), i8* null) #18 | |
to label %unreachable unwind label %lpad306 | |
lpad381: ; preds = %if.then379 | |
%302 = landingpad { i8*, i32 } | |
cleanup | |
%303 = extractvalue { i8*, i32 } %302, 0 | |
store i8* %303, i8** %exn.slot, align 8 | |
%304 = extractvalue { i8*, i32 } %302, 1 | |
store i32 %304, i32* %ehselector.slot, align 4 | |
call void @__cxa_free_exception(i8* %exception380) #16 | |
br label %ehcleanup436 | |
if.end384: ; preds = %if.end377 | |
%NumFolders = getelementptr inbounds %struct.CDecompressStat, %struct.CDecompressStat* %stat, i32 0, i32 3 | |
%305 = load i64, i64* %NumFolders, align 8, !tbaa !70 | |
%cmp385 = icmp ne i64 %305, 0 | |
br i1 %cmp385, label %if.then386, label %if.end394 | |
if.then386: ; preds = %if.end384 | |
%306 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call388 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %306, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.11, i64 0, i64 0)) | |
to label %invoke.cont387 unwind label %lpad306 | |
invoke.cont387: ; preds = %if.then386 | |
%NumFolders389 = getelementptr inbounds %struct.CDecompressStat, %struct.CDecompressStat* %stat, i32 0, i32 3 | |
%307 = load i64, i64* %NumFolders389, align 8, !tbaa !70 | |
%call391 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEy(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call388, i64 %307) | |
to label %invoke.cont390 unwind label %lpad306 | |
invoke.cont390: ; preds = %invoke.cont387 | |
%call393 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call391, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont392 unwind label %lpad306 | |
invoke.cont392: ; preds = %invoke.cont390 | |
br label %if.end394 | |
if.end394: ; preds = %invoke.cont392, %if.end384 | |
%NumFiles = getelementptr inbounds %struct.CDecompressStat, %struct.CDecompressStat* %stat, i32 0, i32 4 | |
%308 = load i64, i64* %NumFiles, align 8, !tbaa !72 | |
%cmp395 = icmp ne i64 %308, 1 | |
br i1 %cmp395, label %if.then399, label %lor.lhs.false396 | |
lor.lhs.false396: ; preds = %if.end394 | |
%NumFolders397 = getelementptr inbounds %struct.CDecompressStat, %struct.CDecompressStat* %stat, i32 0, i32 3 | |
%309 = load i64, i64* %NumFolders397, align 8, !tbaa !70 | |
%cmp398 = icmp ne i64 %309, 0 | |
br i1 %cmp398, label %if.then399, label %if.end407 | |
if.then399: ; preds = %lor.lhs.false396, %if.end394 | |
%310 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call401 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %310, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.12, i64 0, i64 0)) | |
to label %invoke.cont400 unwind label %lpad306 | |
invoke.cont400: ; preds = %if.then399 | |
%NumFiles402 = getelementptr inbounds %struct.CDecompressStat, %struct.CDecompressStat* %stat, i32 0, i32 4 | |
%311 = load i64, i64* %NumFiles402, align 8, !tbaa !72 | |
%call404 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEy(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call401, i64 %311) | |
to label %invoke.cont403 unwind label %lpad306 | |
invoke.cont403: ; preds = %invoke.cont400 | |
%call406 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call404, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont405 unwind label %lpad306 | |
invoke.cont405: ; preds = %invoke.cont403 | |
br label %if.end407 | |
if.end407: ; preds = %invoke.cont405, %lor.lhs.false396 | |
%312 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call409 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %312, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.13, i64 0, i64 0)) | |
to label %invoke.cont408 unwind label %lpad306 | |
invoke.cont408: ; preds = %if.end407 | |
%UnpackSize = getelementptr inbounds %struct.CDecompressStat, %struct.CDecompressStat* %stat, i32 0, i32 1 | |
%313 = load i64, i64* %UnpackSize, align 8, !tbaa !73 | |
%call411 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEy(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call409, i64 %313) | |
to label %invoke.cont410 unwind label %lpad306 | |
invoke.cont410: ; preds = %invoke.cont408 | |
%call413 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call411, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont412 unwind label %lpad306 | |
invoke.cont412: ; preds = %invoke.cont410 | |
%call415 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call413, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0)) | |
to label %invoke.cont414 unwind label %lpad306 | |
invoke.cont414: ; preds = %invoke.cont412 | |
%PackSize = getelementptr inbounds %struct.CDecompressStat, %struct.CDecompressStat* %stat, i32 0, i32 2 | |
%314 = load i64, i64* %PackSize, align 8, !tbaa !74 | |
%call417 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEy(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call415, i64 %314) | |
to label %invoke.cont416 unwind label %lpad306 | |
invoke.cont416: ; preds = %invoke.cont414 | |
%call419 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call417, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont418 unwind label %lpad306 | |
invoke.cont418: ; preds = %invoke.cont416 | |
%CalcCrc420 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 16 | |
%315 = load i8, i8* %CalcCrc420, align 1, !tbaa !65, !range !25 | |
%tobool421 = trunc i8 %315 to i1 | |
br i1 %tobool421, label %if.then422, label %if.end434 | |
if.then422: ; preds = %invoke.cont418 | |
%316 = bitcast [16 x i8]* %s423 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %316) #16 | |
%CrcSum = getelementptr inbounds %struct.CDecompressStat, %struct.CDecompressStat* %stat, i32 0, i32 5 | |
%317 = load i32, i32* %CrcSum, align 8, !tbaa !75 | |
%arraydecay = getelementptr inbounds [16 x i8], [16 x i8]* %s423, i64 0, i64 0 | |
invoke void @_Z27ConvertUInt32ToHexWithZerosjPc(i32 %317, i8* %arraydecay) | |
to label %invoke.cont425 unwind label %lpad424 | |
invoke.cont425: ; preds = %if.then422 | |
%318 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call427 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %318, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.15, i64 0, i64 0)) | |
to label %invoke.cont426 unwind label %lpad424 | |
invoke.cont426: ; preds = %invoke.cont425 | |
%arraydecay428 = getelementptr inbounds [16 x i8], [16 x i8]* %s423, i64 0, i64 0 | |
%call430 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call427, i8* %arraydecay428) | |
to label %invoke.cont429 unwind label %lpad424 | |
invoke.cont429: ; preds = %invoke.cont426 | |
%call432 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call430, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont431 unwind label %lpad424 | |
invoke.cont431: ; preds = %invoke.cont429 | |
%319 = bitcast [16 x i8]* %s423 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %319) #16 | |
br label %if.end434 | |
lpad424: ; preds = %invoke.cont429, %invoke.cont426, %invoke.cont425, %if.then422 | |
%320 = landingpad { i8*, i32 } | |
cleanup | |
%321 = extractvalue { i8*, i32 } %320, 0 | |
store i8* %321, i8** %exn.slot, align 8 | |
%322 = extractvalue { i8*, i32 } %320, 1 | |
store i32 %322, i32* %ehselector.slot, align 4 | |
%323 = bitcast [16 x i8]* %s423 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %323) #16 | |
br label %ehcleanup436 | |
if.end434: ; preds = %invoke.cont431, %invoke.cont418 | |
store i32 0, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup435 | |
cleanup435: ; preds = %if.end434, %if.end376 | |
%324 = bitcast i32* %result305 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %324) #16 | |
%325 = bitcast %struct.CDecompressStat* %stat to i8* | |
call void @llvm.lifetime.end.p0i8(i64 48, i8* %325) #16 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %errorMessage) #16 | |
%326 = bitcast %class.CStringBase* %errorMessage to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %326) #16 | |
call void @_ZN15CExtractOptionsD2Ev(%struct.CExtractOptions* nonnull align 8 dereferenceable(64) %eo) #16 | |
%327 = bitcast %struct.CExtractOptions* %eo to i8* | |
call void @llvm.lifetime.end.p0i8(i64 64, i8* %327) #16 | |
call void @_ZN20COpenCallbackConsoleD2Ev(%class.COpenCallbackConsole* nonnull align 8 dereferenceable(40) %openCallback) #16 | |
%328 = bitcast %class.COpenCallbackConsole* %openCallback to i8* | |
call void @llvm.lifetime.end.p0i8(i64 40, i8* %328) #16 | |
call void @_ZN9CMyComPtrI29IFolderArchiveExtractCallbackED2Ev(%class.CMyComPtr.7* nonnull align 8 dereferenceable(8) %extractCallback) #16 | |
%329 = bitcast %class.CMyComPtr.7* %extractCallback to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %329) #16 | |
%330 = bitcast %class.CExtractCallbackConsole** %ecs to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %330) #16 | |
%cleanup.dest456 = load i32, i32* %cleanup.dest.slot, align 4 | |
switch i32 %cleanup.dest456, label %cleanup844 [ | |
i32 0, label %cleanup.cont457 | |
] | |
cleanup.cont457: ; preds = %cleanup435 | |
br label %if.end500 | |
ehcleanup436: ; preds = %lpad424, %lpad381, %lpad373, %lpad306 | |
%331 = bitcast i32* %result305 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %331) #16 | |
%332 = bitcast %struct.CDecompressStat* %stat to i8* | |
call void @llvm.lifetime.end.p0i8(i64 48, i8* %332) #16 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %errorMessage) #16 | |
br label %ehcleanup442 | |
ehcleanup442: ; preds = %ehcleanup436, %lpad303 | |
%333 = bitcast %class.CStringBase* %errorMessage to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %333) #16 | |
br label %ehcleanup444 | |
ehcleanup444: ; preds = %ehcleanup442, %lpad284 | |
call void @_ZN15CExtractOptionsD2Ev(%struct.CExtractOptions* nonnull align 8 dereferenceable(64) %eo) #16 | |
br label %ehcleanup446 | |
ehcleanup446: ; preds = %ehcleanup444, %lpad274 | |
%334 = bitcast %struct.CExtractOptions* %eo to i8* | |
call void @llvm.lifetime.end.p0i8(i64 64, i8* %334) #16 | |
br label %ehcleanup448 | |
ehcleanup448: ; preds = %ehcleanup446, %lpad271 | |
call void @_ZN20COpenCallbackConsoleD2Ev(%class.COpenCallbackConsole* nonnull align 8 dereferenceable(40) %openCallback) #16 | |
br label %ehcleanup450 | |
ehcleanup450: ; preds = %ehcleanup448, %lpad262 | |
%335 = bitcast %class.COpenCallbackConsole* %openCallback to i8* | |
call void @llvm.lifetime.end.p0i8(i64 40, i8* %335) #16 | |
br label %ehcleanup452 | |
ehcleanup452: ; preds = %ehcleanup450, %lpad258 | |
call void @_ZN9CMyComPtrI29IFolderArchiveExtractCallbackED2Ev(%class.CMyComPtr.7* nonnull align 8 dereferenceable(8) %extractCallback) #16 | |
br label %ehcleanup454 | |
ehcleanup454: ; preds = %ehcleanup452, %lpad253 | |
%336 = bitcast %class.CMyComPtr.7* %extractCallback to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %336) #16 | |
br label %ehcleanup458 | |
ehcleanup458: ; preds = %ehcleanup454, %lpad250, %lpad247 | |
%337 = bitcast %class.CExtractCallbackConsole** %ecs to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %337) #16 | |
br label %ehcleanup845 | |
if.else459: ; preds = %if.then244 | |
%338 = bitcast i64* %numErrors to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %338) #16 | |
store i64 0, i64* %numErrors, align 8, !tbaa !76 | |
%339 = bitcast i32* %result460 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %339) #16 | |
%340 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7 | |
%StdInMode461 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 5 | |
%341 = load i8, i8* %StdInMode461, align 1, !tbaa !54, !range !25 | |
%tobool462 = trunc i8 %341 to i1 | |
%ArchivePathsSorted463 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 20 | |
%ArchivePathsFullSorted464 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 21 | |
%WildcardCensor465 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 10 | |
%Pairs466 = getelementptr inbounds %"class.NWildcard::CCensor", %"class.NWildcard::CCensor"* %WildcardCensor465, i32 0, i32 0 | |
%call469 = invoke nonnull align 8 dereferenceable(136) %"struct.NWildcard::CPair"* @_ZN13CObjectVectorIN9NWildcard5CPairEE5FrontEv(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %Pairs466) | |
to label %invoke.cont468 unwind label %lpad467 | |
invoke.cont468: ; preds = %if.else459 | |
%Head470 = getelementptr inbounds %"struct.NWildcard::CPair", %"struct.NWildcard::CPair"* %call469, i32 0, i32 1 | |
%EnableHeaders471 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 7 | |
%342 = load i8, i8* %EnableHeaders471, align 1, !tbaa !28, !range !25 | |
%tobool472 = trunc i8 %342 to i1 | |
%TechMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 15 | |
%343 = load i8, i8* %TechMode, align 8, !tbaa !77, !range !25 | |
%tobool473 = trunc i8 %343 to i1 | |
%PasswordEnabled474 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 13 | |
%Password475 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 14 | |
%call477 = invoke i32 @_Z12ListArchivesP7CCodecsRK13CRecordVectorIiEbR13CObjectVectorI11CStringBaseIwEES9_RKN9NWildcard11CCensorNodeEbbRbRS7_Ry(%class.CCodecs* %340, %class.CRecordVector.5* nonnull align 8 dereferenceable(32) %formatIndices, i1 zeroext %tobool462, %class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsSorted463, %class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsFullSorted464, %"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120) %Head470, i1 zeroext %tobool472, i1 zeroext %tobool473, i8* nonnull align 1 dereferenceable(1) %PasswordEnabled474, %class.CStringBase* nonnull align 8 dereferenceable(16) %Password475, i64* nonnull align 8 dereferenceable(8) %numErrors) | |
to label %invoke.cont476 unwind label %lpad467 | |
invoke.cont476: ; preds = %invoke.cont468 | |
store i32 %call477, i32* %result460, align 4, !tbaa !3 | |
%344 = load i64, i64* %numErrors, align 8, !tbaa !76 | |
%cmp478 = icmp ugt i64 %344, 0 | |
br i1 %cmp478, label %if.then479, label %if.end486 | |
if.then479: ; preds = %invoke.cont476 | |
%call481 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) @g_StdOut, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont480 unwind label %lpad467 | |
invoke.cont480: ; preds = %if.then479 | |
%call483 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call481, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.16, i64 0, i64 0)) | |
to label %invoke.cont482 unwind label %lpad467 | |
invoke.cont482: ; preds = %invoke.cont480 | |
%345 = load i64, i64* %numErrors, align 8, !tbaa !76 | |
%call485 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEy(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call483, i64 %345) | |
to label %invoke.cont484 unwind label %lpad467 | |
invoke.cont484: ; preds = %invoke.cont482 | |
store i32 2, i32* %retval, align 4 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup494 | |
lpad467: ; preds = %invoke.cont491, %invoke.cont482, %invoke.cont480, %if.then479, %invoke.cont468, %if.else459 | |
%346 = landingpad { i8*, i32 } | |
cleanup | |
%347 = extractvalue { i8*, i32 } %346, 0 | |
store i8* %347, i8** %exn.slot, align 8 | |
%348 = extractvalue { i8*, i32 } %346, 1 | |
store i32 %348, i32* %ehselector.slot, align 4 | |
br label %ehcleanup495 | |
if.end486: ; preds = %invoke.cont476 | |
%349 = load i32, i32* %result460, align 4, !tbaa !3 | |
%cmp487 = icmp ne i32 %349, 0 | |
br i1 %cmp487, label %if.then488, label %if.end493 | |
if.then488: ; preds = %if.end486 | |
%exception489 = call i8* @__cxa_allocate_exception(i64 4) #16 | |
%350 = bitcast i8* %exception489 to %struct.CSystemException* | |
%351 = load i32, i32* %result460, align 4, !tbaa !3 | |
invoke void @_ZN16CSystemExceptionC2Ei(%struct.CSystemException* nonnull align 4 dereferenceable(4) %350, i32 %351) | |
to label %invoke.cont491 unwind label %lpad490 | |
invoke.cont491: ; preds = %if.then488 | |
invoke void @__cxa_throw(i8* %exception489, i8* bitcast ({ i8*, i8* }* @_ZTI16CSystemException to i8*), i8* null) #18 | |
to label %unreachable unwind label %lpad467 | |
lpad490: ; preds = %if.then488 | |
%352 = landingpad { i8*, i32 } | |
cleanup | |
%353 = extractvalue { i8*, i32 } %352, 0 | |
store i8* %353, i8** %exn.slot, align 8 | |
%354 = extractvalue { i8*, i32 } %352, 1 | |
store i32 %354, i32* %ehselector.slot, align 4 | |
call void @__cxa_free_exception(i8* %exception489) #16 | |
br label %ehcleanup495 | |
if.end493: ; preds = %if.end486 | |
store i32 0, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup494 | |
cleanup494: ; preds = %if.end493, %invoke.cont484 | |
%355 = bitcast i32* %result460 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %355) #16 | |
%356 = bitcast i64* %numErrors to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %356) #16 | |
%cleanup.dest497 = load i32, i32* %cleanup.dest.slot, align 4 | |
switch i32 %cleanup.dest497, label %cleanup844 [ | |
i32 0, label %cleanup.cont498 | |
] | |
cleanup.cont498: ; preds = %cleanup494 | |
br label %if.end500 | |
ehcleanup495: ; preds = %lpad490, %lpad467 | |
%357 = bitcast i32* %result460 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %357) #16 | |
%358 = bitcast i64* %numErrors to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %358) #16 | |
br label %ehcleanup845 | |
if.end500: ; preds = %cleanup.cont498, %cleanup.cont457 | |
br label %if.end841 | |
if.else501: ; preds = %lor.lhs.false240 | |
%Command502 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 11 | |
%call504 = invoke zeroext i1 @_ZNK15CArchiveCommand17IsFromUpdateGroupEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %Command502) | |
to label %invoke.cont503 unwind label %lpad57 | |
invoke.cont503: ; preds = %if.else501 | |
br i1 %call504, label %if.then505, label %if.else838 | |
if.then505: ; preds = %invoke.cont503 | |
%359 = bitcast %struct.CUpdateOptions** %uo to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %359) #16 | |
%UpdateOptions = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 23 | |
store %struct.CUpdateOptions* %UpdateOptions, %struct.CUpdateOptions** %uo, align 8, !tbaa !7 | |
%360 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7 | |
%SfxMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %360, i32 0, i32 4 | |
%361 = load i8, i8* %SfxMode, align 8, !tbaa !78, !range !25 | |
%tobool506 = trunc i8 %361 to i1 | |
br i1 %tobool506, label %land.lhs.true507, label %if.end515 | |
land.lhs.true507: ; preds = %if.then505 | |
%362 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7 | |
%SfxModule = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %362, i32 0, i32 5 | |
%call510 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %SfxModule) | |
to label %invoke.cont509 unwind label %lpad508 | |
invoke.cont509: ; preds = %land.lhs.true507 | |
br i1 %call510, label %if.then511, label %if.end515 | |
if.then511: ; preds = %invoke.cont509 | |
%363 = load i32*, i32** @_ZL17kDefaultSfxModule, align 8, !tbaa !7 | |
%364 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7 | |
%SfxModule512 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %364, i32 0, i32 5 | |
%call514 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %SfxModule512, i32* %363) | |
to label %invoke.cont513 unwind label %lpad508 | |
invoke.cont513: ; preds = %if.then511 | |
br label %if.end515 | |
lpad508: ; preds = %if.then511, %land.lhs.true507 | |
%365 = landingpad { i8*, i32 } | |
cleanup | |
%366 = extractvalue { i8*, i32 } %365, 0 | |
store i8* %366, i8** %exn.slot, align 8 | |
%367 = extractvalue { i8*, i32 } %365, 1 | |
store i32 %367, i32* %ehselector.slot, align 4 | |
br label %ehcleanup837 | |
if.end515: ; preds = %invoke.cont513, %invoke.cont509, %if.then505 | |
%368 = bitcast %class.COpenCallbackConsole* %openCallback516 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 40, i8* %368) #16 | |
invoke void @_ZN20COpenCallbackConsoleC2Ev(%class.COpenCallbackConsole* nonnull align 8 dereferenceable(40) %openCallback516) | |
to label %invoke.cont518 unwind label %lpad517 | |
invoke.cont518: ; preds = %if.end515 | |
%369 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%OutStream519 = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %openCallback516, i32 0, i32 1 | |
store %class.CStdOutStream* %369, %class.CStdOutStream** %OutStream519, align 8, !tbaa !51 | |
call void @llvm.lifetime.start.p0i8(i64 1, i8* %passwordIsDefined) #16 | |
%PasswordEnabled520 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 13 | |
%370 = load i8, i8* %PasswordEnabled520, align 8, !tbaa !49, !range !25 | |
%tobool521 = trunc i8 %370 to i1 | |
br i1 %tobool521, label %land.rhs, label %land.end | |
land.rhs: ; preds = %invoke.cont518 | |
%Password522 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 14 | |
%call525 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password522) | |
to label %invoke.cont524 unwind label %lpad523 | |
invoke.cont524: ; preds = %land.rhs | |
%lnot = xor i1 %call525, true | |
br label %land.end | |
land.end: ; preds = %invoke.cont524, %invoke.cont518 | |
%371 = phi i1 [ false, %invoke.cont518 ], [ %lnot, %invoke.cont524 ] | |
%frombool526 = zext i1 %371 to i8 | |
store i8 %frombool526, i8* %passwordIsDefined, align 1, !tbaa !29 | |
%372 = load i8, i8* %passwordIsDefined, align 1, !tbaa !29, !range !25 | |
%tobool527 = trunc i8 %372 to i1 | |
%PasswordIsDefined528 = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %openCallback516, i32 0, i32 2 | |
%frombool529 = zext i1 %tobool527 to i8 | |
store i8 %frombool529, i8* %PasswordIsDefined528, align 8, !tbaa !53 | |
%Password530 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 14 | |
%Password531 = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %openCallback516, i32 0, i32 4 | |
%call533 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password531, %class.CStringBase* nonnull align 8 dereferenceable(16) %Password530) | |
to label %invoke.cont532 unwind label %lpad523 | |
invoke.cont532: ; preds = %land.end | |
%373 = bitcast %class.CUpdateCallbackConsole* %callback to i8* | |
call void @llvm.lifetime.start.p0i8(i64 232, i8* %373) #16 | |
invoke void @_ZN22CUpdateCallbackConsoleC2Ev(%class.CUpdateCallbackConsole* nonnull align 8 dereferenceable(232) %callback) | |
to label %invoke.cont535 unwind label %lpad534 | |
invoke.cont535: ; preds = %invoke.cont532 | |
%EnablePercents = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 25 | |
%374 = load i8, i8* %EnablePercents, align 8, !tbaa !79, !range !25 | |
%tobool536 = trunc i8 %374 to i1 | |
%EnablePercents537 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 6 | |
%frombool538 = zext i1 %tobool536 to i8 | |
store i8 %frombool538, i8* %EnablePercents537, align 8, !tbaa !80 | |
%375 = load i8, i8* %passwordIsDefined, align 1, !tbaa !29, !range !25 | |
%tobool539 = trunc i8 %375 to i1 | |
%PasswordIsDefined540 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 8 | |
%frombool541 = zext i1 %tobool539 to i8 | |
store i8 %frombool541, i8* %PasswordIsDefined540, align 2, !tbaa !84 | |
%PasswordEnabled542 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 13 | |
%376 = load i8, i8* %PasswordEnabled542, align 8, !tbaa !49, !range !25 | |
%tobool543 = trunc i8 %376 to i1 | |
br i1 %tobool543, label %land.rhs544, label %land.end549 | |
land.rhs544: ; preds = %invoke.cont535 | |
%Password545 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 14 | |
%call548 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password545) | |
to label %invoke.cont547 unwind label %lpad546 | |
invoke.cont547: ; preds = %land.rhs544 | |
br label %land.end549 | |
land.end549: ; preds = %invoke.cont547, %invoke.cont535 | |
%377 = phi i1 [ false, %invoke.cont535 ], [ %call548, %invoke.cont547 ] | |
%AskPassword = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 10 | |
%frombool550 = zext i1 %377 to i8 | |
store i8 %frombool550, i8* %AskPassword, align 8, !tbaa !85 | |
%Password551 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 14 | |
%Password552 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 9 | |
%call554 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password552, %class.CStringBase* nonnull align 8 dereferenceable(16) %Password551) | |
to label %invoke.cont553 unwind label %lpad546 | |
invoke.cont553: ; preds = %land.end549 | |
%378 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7 | |
%StdOutMode555 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %378, i32 0, i32 9 | |
%379 = load i8, i8* %StdOutMode555, align 8, !tbaa !86, !range !25 | |
%tobool556 = trunc i8 %379 to i1 | |
%StdOutMode557 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 7 | |
%frombool558 = zext i1 %tobool556 to i8 | |
store i8 %frombool558, i8* %StdOutMode557, align 1, !tbaa !87 | |
%380 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
invoke void @_ZN22CUpdateCallbackConsole4InitEP13CStdOutStream(%class.CUpdateCallbackConsole* nonnull align 8 dereferenceable(232) %callback, %class.CStdOutStream* %380) | |
to label %invoke.cont559 unwind label %lpad546 | |
invoke.cont559: ; preds = %invoke.cont553 | |
%381 = bitcast %struct.CUpdateErrorInfo* %errorInfo to i8* | |
call void @llvm.lifetime.start.p0i8(i64 56, i8* %381) #16 | |
invoke void @_ZN16CUpdateErrorInfoC2Ev(%struct.CUpdateErrorInfo* nonnull align 8 dereferenceable(56) %errorInfo) | |
to label %invoke.cont561 unwind label %lpad560 | |
invoke.cont561: ; preds = %invoke.cont559 | |
%382 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7 | |
%383 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7 | |
%ArchiveName = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 12 | |
%call564 = invoke zeroext i1 @_ZN14CUpdateOptions4InitEPK7CCodecsRK13CRecordVectorIiERK11CStringBaseIwE(%struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %382, %class.CCodecs* %383, %class.CRecordVector.5* nonnull align 8 dereferenceable(32) %formatIndices, %class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName) | |
to label %invoke.cont563 unwind label %lpad562 | |
invoke.cont563: ; preds = %invoke.cont561 | |
br i1 %call564, label %if.end567, label %if.then565 | |
if.then565: ; preds = %invoke.cont563 | |
%exception566 = call i8* @__cxa_allocate_exception(i64 8) #16 | |
%384 = bitcast i8* %exception566 to i8** | |
%385 = load i8*, i8** @_ZL26kUnsupportedArcTypeMessage, align 8, !tbaa !7 | |
store i8* %385, i8** %384, align 16, !tbaa !7 | |
invoke void @__cxa_throw(i8* %exception566, i8* bitcast (i8** @_ZTIPKc to i8*), i8* null) #18 | |
to label %unreachable unwind label %lpad562 | |
lpad517: ; preds = %if.end515 | |
%386 = landingpad { i8*, i32 } | |
cleanup | |
%387 = extractvalue { i8*, i32 } %386, 0 | |
store i8* %387, i8** %exn.slot, align 8 | |
%388 = extractvalue { i8*, i32 } %386, 1 | |
store i32 %388, i32* %ehselector.slot, align 4 | |
br label %ehcleanup835 | |
lpad523: ; preds = %land.end, %land.rhs | |
%389 = landingpad { i8*, i32 } | |
cleanup | |
%390 = extractvalue { i8*, i32 } %389, 0 | |
store i8* %390, i8** %exn.slot, align 8 | |
%391 = extractvalue { i8*, i32 } %389, 1 | |
store i32 %391, i32* %ehselector.slot, align 4 | |
br label %ehcleanup831 | |
lpad534: ; preds = %invoke.cont532 | |
%392 = landingpad { i8*, i32 } | |
cleanup | |
%393 = extractvalue { i8*, i32 } %392, 0 | |
store i8* %393, i8** %exn.slot, align 8 | |
%394 = extractvalue { i8*, i32 } %392, 1 | |
store i32 %394, i32* %ehselector.slot, align 4 | |
br label %ehcleanup829 | |
lpad546: ; preds = %invoke.cont553, %land.end549, %land.rhs544 | |
%395 = landingpad { i8*, i32 } | |
cleanup | |
%396 = extractvalue { i8*, i32 } %395, 0 | |
store i8* %396, i8** %exn.slot, align 8 | |
%397 = extractvalue { i8*, i32 } %395, 1 | |
store i32 %397, i32* %ehselector.slot, align 4 | |
br label %ehcleanup827 | |
lpad560: ; preds = %invoke.cont559 | |
%398 = landingpad { i8*, i32 } | |
cleanup | |
%399 = extractvalue { i8*, i32 } %398, 0 | |
store i8* %399, i8** %exn.slot, align 8 | |
%400 = extractvalue { i8*, i32 } %398, 1 | |
store i32 %400, i32* %ehselector.slot, align 4 | |
br label %ehcleanup825 | |
lpad562: ; preds = %if.then565, %invoke.cont561 | |
%401 = landingpad { i8*, i32 } | |
cleanup | |
%402 = extractvalue { i8*, i32 } %401, 0 | |
store i8* %402, i8** %exn.slot, align 8 | |
%403 = extractvalue { i8*, i32 } %401, 1 | |
store i32 %403, i32* %ehselector.slot, align 4 | |
br label %ehcleanup823 | |
if.end567: ; preds = %invoke.cont563 | |
%404 = bitcast i32* %result568 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %404) #16 | |
%405 = load %class.CCodecs*, %class.CCodecs** %codecs, align 8, !tbaa !7 | |
%WildcardCensor569 = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %options, i32 0, i32 10 | |
%406 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7 | |
%407 = bitcast %class.COpenCallbackConsole* %openCallback516 to %struct.IOpenCallbackUI* | |
%408 = bitcast %class.CUpdateCallbackConsole* %callback to %struct.IUpdateCallbackUI2* | |
%call572 = invoke i32 @_Z13UpdateArchiveP7CCodecsRKN9NWildcard7CCensorER14CUpdateOptionsR16CUpdateErrorInfoP15IOpenCallbackUIP18IUpdateCallbackUI2(%class.CCodecs* %405, %"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %WildcardCensor569, %struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %406, %struct.CUpdateErrorInfo* nonnull align 8 dereferenceable(56) %errorInfo, %struct.IOpenCallbackUI* %407, %struct.IUpdateCallbackUI2* %408) | |
to label %invoke.cont571 unwind label %lpad570 | |
invoke.cont571: ; preds = %if.end567 | |
store i32 %call572, i32* %result568, align 4, !tbaa !3 | |
%409 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7 | |
%SfxMode573 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %409, i32 0, i32 4 | |
%410 = load i8, i8* %SfxMode573, align 8, !tbaa !78, !range !25 | |
%tobool574 = trunc i8 %410 to i1 | |
br i1 %tobool574, label %if.then575, label %if.end604 | |
if.then575: ; preds = %invoke.cont571 | |
%411 = bitcast i32* %i576 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %411) #16 | |
store i32 0, i32* %i576, align 4, !tbaa !3 | |
br label %for.cond577 | |
for.cond577: ; preds = %for.inc599, %if.then575 | |
%412 = load i32, i32* %i576, align 4, !tbaa !3 | |
%413 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7 | |
%Commands = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %413, i32 0, i32 1 | |
%414 = bitcast %class.CObjectVector.2* %Commands to %class.CBaseRecordVector* | |
%call580 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %414) | |
to label %invoke.cont579 unwind label %lpad578 | |
invoke.cont579: ; preds = %for.cond577 | |
%cmp581 = icmp slt i32 %412, %call580 | |
br i1 %cmp581, label %for.body583, label %for.cond.cleanup582 | |
for.cond.cleanup582: ; preds = %invoke.cont579 | |
store i32 11, i32* %cleanup.dest.slot, align 4 | |
%415 = bitcast i32* %i576 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %415) #16 | |
br label %for.end603 | |
lpad570: ; preds = %if.end567 | |
%416 = landingpad { i8*, i32 } | |
cleanup | |
%417 = extractvalue { i8*, i32 } %416, 0 | |
store i8* %417, i8** %exn.slot, align 8 | |
%418 = extractvalue { i8*, i32 } %416, 1 | |
store i32 %418, i32* %ehselector.slot, align 4 | |
br label %ehcleanup821 | |
lpad578: ; preds = %for.cond577 | |
%419 = landingpad { i8*, i32 } | |
cleanup | |
%420 = extractvalue { i8*, i32 } %419, 0 | |
store i8* %420, i8** %exn.slot, align 8 | |
%421 = extractvalue { i8*, i32 } %419, 1 | |
store i32 %421, i32* %ehselector.slot, align 4 | |
br label %ehcleanup602 | |
for.body583: ; preds = %invoke.cont579 | |
%422 = bitcast %struct.CUpdateArchiveCommand** %command to i8* | |
call void @llvm.lifetime.start.p0i8(i64 8, i8* %422) #16 | |
%423 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7 | |
%Commands584 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %423, i32 0, i32 1 | |
%424 = load i32, i32* %i576, align 4, !tbaa !3 | |
%call587 = invoke nonnull align 8 dereferenceable(164) %struct.CUpdateArchiveCommand* @_ZN13CObjectVectorI21CUpdateArchiveCommandEixEi(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %Commands584, i32 %424) | |
to label %invoke.cont586 unwind label %lpad585 | |
invoke.cont586: ; preds = %for.body583 | |
store %struct.CUpdateArchiveCommand* %call587, %struct.CUpdateArchiveCommand** %command, align 8, !tbaa !7 | |
%425 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %uo, align 8, !tbaa !7 | |
%StdOutMode588 = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %425, i32 0, i32 9 | |
%426 = load i8, i8* %StdOutMode588, align 8, !tbaa !86, !range !25 | |
%tobool589 = trunc i8 %426 to i1 | |
br i1 %tobool589, label %if.end597, label %if.then590 | |
if.then590: ; preds = %invoke.cont586 | |
%427 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %427) #16 | |
%428 = load %struct.CUpdateArchiveCommand*, %struct.CUpdateArchiveCommand** %command, align 8, !tbaa !7 | |
%ArchivePath = getelementptr inbounds %struct.CUpdateArchiveCommand, %struct.CUpdateArchiveCommand* %428, i32 0, i32 1 | |
invoke void @_ZNK12CArchivePath12GetFinalPathEv(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp, %struct.CArchivePath* nonnull align 8 dereferenceable(120) %ArchivePath) | |
to label %invoke.cont592 unwind label %lpad591 | |
invoke.cont592: ; preds = %if.then590 | |
invoke void @_Z12myAddExeFlagRK11CStringBaseIwE(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) | |
to label %invoke.cont594 unwind label %lpad593 | |
invoke.cont594: ; preds = %invoke.cont592 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #16 | |
%429 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %429) #16 | |
br label %if.end597 | |
lpad585: ; preds = %for.body583 | |
%430 = landingpad { i8*, i32 } | |
cleanup | |
%431 = extractvalue { i8*, i32 } %430, 0 | |
store i8* %431, i8** %exn.slot, align 8 | |
%432 = extractvalue { i8*, i32 } %430, 1 | |
store i32 %432, i32* %ehselector.slot, align 4 | |
br label %ehcleanup598 | |
lpad591: ; preds = %if.then590 | |
%433 = landingpad { i8*, i32 } | |
cleanup | |
%434 = extractvalue { i8*, i32 } %433, 0 | |
store i8* %434, i8** %exn.slot, align 8 | |
%435 = extractvalue { i8*, i32 } %433, 1 | |
store i32 %435, i32* %ehselector.slot, align 4 | |
br label %ehcleanup596 | |
lpad593: ; preds = %invoke.cont592 | |
%436 = landingpad { i8*, i32 } | |
cleanup | |
%437 = extractvalue { i8*, i32 } %436, 0 | |
store i8* %437, i8** %exn.slot, align 8 | |
%438 = extractvalue { i8*, i32 } %436, 1 | |
store i32 %438, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #16 | |
br label %ehcleanup596 | |
ehcleanup596: ; preds = %lpad593, %lpad591 | |
%439 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %439) #16 | |
br label %ehcleanup598 | |
if.end597: ; preds = %invoke.cont594, %invoke.cont586 | |
%440 = bitcast %struct.CUpdateArchiveCommand** %command to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %440) #16 | |
br label %for.inc599 | |
for.inc599: ; preds = %if.end597 | |
%441 = load i32, i32* %i576, align 4, !tbaa !3 | |
%inc600 = add nsw i32 %441, 1 | |
store i32 %inc600, i32* %i576, align 4, !tbaa !3 | |
br label %for.cond577, !llvm.loop !88 | |
ehcleanup598: ; preds = %ehcleanup596, %lpad585 | |
%442 = bitcast %struct.CUpdateArchiveCommand** %command to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %442) #16 | |
br label %ehcleanup602 | |
ehcleanup602: ; preds = %ehcleanup598, %lpad578 | |
%443 = bitcast i32* %i576 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %443) #16 | |
br label %ehcleanup821 | |
for.end603: ; preds = %for.cond.cleanup582 | |
br label %if.end604 | |
if.end604: ; preds = %for.end603, %invoke.cont571 | |
%444 = bitcast i32* %exitCode to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %444) #16 | |
store i32 0, i32* %exitCode, align 4, !tbaa !3 | |
%CantFindFiles = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 13 | |
%445 = bitcast %class.CObjectVector* %CantFindFiles to %class.CBaseRecordVector* | |
%call607 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %445) | |
to label %invoke.cont606 unwind label %lpad605 | |
invoke.cont606: ; preds = %if.end604 | |
%cmp608 = icmp sgt i32 %call607, 0 | |
br i1 %cmp608, label %if.then609, label %if.end675 | |
if.then609: ; preds = %invoke.cont606 | |
%446 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call611 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %446, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont610 unwind label %lpad605 | |
invoke.cont610: ; preds = %if.then609 | |
%447 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call613 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %447, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.17, i64 0, i64 0)) | |
to label %invoke.cont612 unwind label %lpad605 | |
invoke.cont612: ; preds = %invoke.cont610 | |
%call615 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call613, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont614 unwind label %lpad605 | |
invoke.cont614: ; preds = %invoke.cont612 | |
%call617 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call615, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont616 unwind label %lpad605 | |
invoke.cont616: ; preds = %invoke.cont614 | |
%448 = bitcast i32* %numErrors618 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %448) #16 | |
%CantFindFiles619 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 13 | |
%449 = bitcast %class.CObjectVector* %CantFindFiles619 to %class.CBaseRecordVector* | |
%call622 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %449) | |
to label %invoke.cont621 unwind label %lpad620 | |
invoke.cont621: ; preds = %invoke.cont616 | |
store i32 %call622, i32* %numErrors618, align 4, !tbaa !3 | |
%450 = bitcast i32* %i623 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %450) #16 | |
store i32 0, i32* %i623, align 4, !tbaa !3 | |
br label %for.cond624 | |
for.cond624: ; preds = %for.inc652, %invoke.cont621 | |
%451 = load i32, i32* %i623, align 4, !tbaa !3 | |
%452 = load i32, i32* %numErrors618, align 4, !tbaa !3 | |
%cmp625 = icmp slt i32 %451, %452 | |
br i1 %cmp625, label %for.body627, label %for.cond.cleanup626 | |
for.cond.cleanup626: ; preds = %for.cond624 | |
store i32 14, i32* %cleanup.dest.slot, align 4 | |
%453 = bitcast i32* %i623 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %453) #16 | |
br label %for.end656 | |
lpad605: ; preds = %invoke.cont614, %invoke.cont612, %invoke.cont610, %if.then609, %if.end604 | |
%454 = landingpad { i8*, i32 } | |
cleanup | |
%455 = extractvalue { i8*, i32 } %454, 0 | |
store i8* %455, i8** %exn.slot, align 8 | |
%456 = extractvalue { i8*, i32 } %454, 1 | |
store i32 %456, i32* %ehselector.slot, align 4 | |
br label %ehcleanup819 | |
lpad620: ; preds = %if.end671, %if.then668, %invoke.cont663, %invoke.cont661, %invoke.cont659, %invoke.cont657, %for.end656, %invoke.cont616 | |
%457 = landingpad { i8*, i32 } | |
cleanup | |
%458 = extractvalue { i8*, i32 } %457, 0 | |
store i8* %458, i8** %exn.slot, align 8 | |
%459 = extractvalue { i8*, i32 } %457, 1 | |
store i32 %459, i32* %ehselector.slot, align 4 | |
br label %ehcleanup674 | |
for.body627: ; preds = %for.cond624 | |
%460 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%CantFindFiles628 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 13 | |
%461 = load i32, i32* %i623, align 4, !tbaa !3 | |
%call631 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %CantFindFiles628, i32 %461) | |
to label %invoke.cont630 unwind label %lpad629 | |
invoke.cont630: ; preds = %for.body627 | |
%call633 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %call631) | |
to label %invoke.cont632 unwind label %lpad629 | |
invoke.cont632: ; preds = %invoke.cont630 | |
%call635 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKw(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %460, i32* %call633) | |
to label %invoke.cont634 unwind label %lpad629 | |
invoke.cont634: ; preds = %invoke.cont632 | |
%call637 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call635, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.18, i64 0, i64 0)) | |
to label %invoke.cont636 unwind label %lpad629 | |
invoke.cont636: ; preds = %invoke.cont634 | |
%462 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%463 = bitcast %class.CStringBase* %ref.tmp638 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %463) #16 | |
%CantFindCodes = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 14 | |
%464 = load i32, i32* %i623, align 4, !tbaa !3 | |
%call641 = invoke nonnull align 4 dereferenceable(4) i32* @_ZN13CRecordVectorIiEixEi(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %CantFindCodes, i32 %464) | |
to label %invoke.cont640 unwind label %lpad639 | |
invoke.cont640: ; preds = %invoke.cont636 | |
%465 = load i32, i32* %call641, align 4, !tbaa !3 | |
invoke void @_ZN8NWindows6NError16MyFormatMessageWEj(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp638, i32 %465) | |
to label %invoke.cont642 unwind label %lpad639 | |
invoke.cont642: ; preds = %invoke.cont640 | |
%call645 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp638) | |
to label %invoke.cont644 unwind label %lpad643 | |
invoke.cont644: ; preds = %invoke.cont642 | |
%call647 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKw(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %462, i32* %call645) | |
to label %invoke.cont646 unwind label %lpad643 | |
invoke.cont646: ; preds = %invoke.cont644 | |
%call649 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call647, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont648 unwind label %lpad643 | |
invoke.cont648: ; preds = %invoke.cont646 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp638) #16 | |
%466 = bitcast %class.CStringBase* %ref.tmp638 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %466) #16 | |
br label %for.inc652 | |
for.inc652: ; preds = %invoke.cont648 | |
%467 = load i32, i32* %i623, align 4, !tbaa !3 | |
%inc653 = add nsw i32 %467, 1 | |
store i32 %inc653, i32* %i623, align 4, !tbaa !3 | |
br label %for.cond624, !llvm.loop !89 | |
lpad629: ; preds = %invoke.cont634, %invoke.cont632, %invoke.cont630, %for.body627 | |
%468 = landingpad { i8*, i32 } | |
cleanup | |
%469 = extractvalue { i8*, i32 } %468, 0 | |
store i8* %469, i8** %exn.slot, align 8 | |
%470 = extractvalue { i8*, i32 } %468, 1 | |
store i32 %470, i32* %ehselector.slot, align 4 | |
br label %ehcleanup655 | |
lpad639: ; preds = %invoke.cont640, %invoke.cont636 | |
%471 = landingpad { i8*, i32 } | |
cleanup | |
%472 = extractvalue { i8*, i32 } %471, 0 | |
store i8* %472, i8** %exn.slot, align 8 | |
%473 = extractvalue { i8*, i32 } %471, 1 | |
store i32 %473, i32* %ehselector.slot, align 4 | |
br label %ehcleanup651 | |
lpad643: ; preds = %invoke.cont646, %invoke.cont644, %invoke.cont642 | |
%474 = landingpad { i8*, i32 } | |
cleanup | |
%475 = extractvalue { i8*, i32 } %474, 0 | |
store i8* %475, i8** %exn.slot, align 8 | |
%476 = extractvalue { i8*, i32 } %474, 1 | |
store i32 %476, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp638) #16 | |
br label %ehcleanup651 | |
ehcleanup651: ; preds = %lpad643, %lpad639 | |
%477 = bitcast %class.CStringBase* %ref.tmp638 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %477) #16 | |
br label %ehcleanup655 | |
ehcleanup655: ; preds = %ehcleanup651, %lpad629 | |
%478 = bitcast i32* %i623 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %478) #16 | |
br label %ehcleanup674 | |
for.end656: ; preds = %for.cond.cleanup626 | |
%479 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call658 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %479, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.19, i64 0, i64 0)) | |
to label %invoke.cont657 unwind label %lpad620 | |
invoke.cont657: ; preds = %for.end656 | |
%call660 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call658, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont659 unwind label %lpad620 | |
invoke.cont659: ; preds = %invoke.cont657 | |
%480 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call662 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %480, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.20, i64 0, i64 0)) | |
to label %invoke.cont661 unwind label %lpad620 | |
invoke.cont661: ; preds = %invoke.cont659 | |
%481 = load i32, i32* %numErrors618, align 4, !tbaa !3 | |
%call664 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEi(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call662, i32 %481) | |
to label %invoke.cont663 unwind label %lpad620 | |
invoke.cont663: ; preds = %invoke.cont661 | |
%call666 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call664, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.21, i64 0, i64 0)) | |
to label %invoke.cont665 unwind label %lpad620 | |
invoke.cont665: ; preds = %invoke.cont663 | |
%482 = load i32, i32* %numErrors618, align 4, !tbaa !3 | |
%cmp667 = icmp sgt i32 %482, 1 | |
br i1 %cmp667, label %if.then668, label %if.end671 | |
if.then668: ; preds = %invoke.cont665 | |
%483 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call670 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %483, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.22, i64 0, i64 0)) | |
to label %invoke.cont669 unwind label %lpad620 | |
invoke.cont669: ; preds = %if.then668 | |
br label %if.end671 | |
if.end671: ; preds = %invoke.cont669, %invoke.cont665 | |
%484 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call673 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %484, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont672 unwind label %lpad620 | |
invoke.cont672: ; preds = %if.end671 | |
store i32 1, i32* %exitCode, align 4, !tbaa !3 | |
%485 = bitcast i32* %numErrors618 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %485) #16 | |
br label %if.end675 | |
ehcleanup674: ; preds = %ehcleanup655, %lpad620 | |
%486 = bitcast i32* %numErrors618 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %486) #16 | |
br label %ehcleanup819 | |
if.end675: ; preds = %invoke.cont672, %invoke.cont606 | |
%487 = load i32, i32* %result568, align 4, !tbaa !3 | |
%cmp676 = icmp ne i32 %487, 0 | |
br i1 %cmp676, label %if.then677, label %if.end738 | |
if.then677: ; preds = %if.end675 | |
%488 = bitcast %class.CStringBase* %message to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %488) #16 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %message) | |
to label %invoke.cont679 unwind label %lpad678 | |
invoke.cont679: ; preds = %if.then677 | |
%489 = bitcast %struct.CUpdateErrorInfo* %errorInfo to %struct.CErrorInfo* | |
%Message = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %489, i32 0, i32 3 | |
%call682 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %Message) | |
to label %invoke.cont681 unwind label %lpad680 | |
invoke.cont681: ; preds = %invoke.cont679 | |
br i1 %call682, label %if.end689, label %if.then683 | |
if.then683: ; preds = %invoke.cont681 | |
%490 = bitcast %struct.CUpdateErrorInfo* %errorInfo to %struct.CErrorInfo* | |
%Message684 = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %490, i32 0, i32 3 | |
%call686 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %message, %class.CStringBase* nonnull align 8 dereferenceable(16) %Message684) | |
to label %invoke.cont685 unwind label %lpad680 | |
invoke.cont685: ; preds = %if.then683 | |
%call688 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %message, i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.23, i64 0, i64 0)) | |
to label %invoke.cont687 unwind label %lpad680 | |
invoke.cont687: ; preds = %invoke.cont685 | |
br label %if.end689 | |
lpad678: ; preds = %if.then677 | |
%491 = landingpad { i8*, i32 } | |
cleanup | |
%492 = extractvalue { i8*, i32 } %491, 0 | |
store i8* %492, i8** %exn.slot, align 8 | |
%493 = extractvalue { i8*, i32 } %491, 1 | |
store i32 %493, i32* %ehselector.slot, align 4 | |
br label %ehcleanup737 | |
lpad680: ; preds = %invoke.cont734, %invoke.cont727, %invoke.cont725, %if.then724, %if.end721, %invoke.cont715, %invoke.cont703, %if.then701, %if.end698, %invoke.cont694, %if.then692, %if.end689, %invoke.cont685, %if.then683, %invoke.cont679 | |
%494 = landingpad { i8*, i32 } | |
cleanup | |
%495 = extractvalue { i8*, i32 } %494, 0 | |
store i8* %495, i8** %exn.slot, align 8 | |
%496 = extractvalue { i8*, i32 } %494, 1 | |
store i32 %496, i32* %ehselector.slot, align 4 | |
br label %ehcleanup736 | |
if.end689: ; preds = %invoke.cont687, %invoke.cont681 | |
%497 = bitcast %struct.CUpdateErrorInfo* %errorInfo to %struct.CErrorInfo* | |
%FileName = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %497, i32 0, i32 1 | |
%call691 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %FileName) | |
to label %invoke.cont690 unwind label %lpad680 | |
invoke.cont690: ; preds = %if.end689 | |
br i1 %call691, label %if.end698, label %if.then692 | |
if.then692: ; preds = %invoke.cont690 | |
%498 = bitcast %struct.CUpdateErrorInfo* %errorInfo to %struct.CErrorInfo* | |
%FileName693 = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %498, i32 0, i32 1 | |
%call695 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %message, %class.CStringBase* nonnull align 8 dereferenceable(16) %FileName693) | |
to label %invoke.cont694 unwind label %lpad680 | |
invoke.cont694: ; preds = %if.then692 | |
%call697 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %message, i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.23, i64 0, i64 0)) | |
to label %invoke.cont696 unwind label %lpad680 | |
invoke.cont696: ; preds = %invoke.cont694 | |
br label %if.end698 | |
if.end698: ; preds = %invoke.cont696, %invoke.cont690 | |
%499 = bitcast %struct.CUpdateErrorInfo* %errorInfo to %struct.CErrorInfo* | |
%FileName2 = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %499, i32 0, i32 2 | |
%call700 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %FileName2) | |
to label %invoke.cont699 unwind label %lpad680 | |
invoke.cont699: ; preds = %if.end698 | |
br i1 %call700, label %if.end707, label %if.then701 | |
if.then701: ; preds = %invoke.cont699 | |
%500 = bitcast %struct.CUpdateErrorInfo* %errorInfo to %struct.CErrorInfo* | |
%FileName2702 = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %500, i32 0, i32 2 | |
%call704 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %message, %class.CStringBase* nonnull align 8 dereferenceable(16) %FileName2702) | |
to label %invoke.cont703 unwind label %lpad680 | |
invoke.cont703: ; preds = %if.then701 | |
%call706 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %message, i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.23, i64 0, i64 0)) | |
to label %invoke.cont705 unwind label %lpad680 | |
invoke.cont705: ; preds = %invoke.cont703 | |
br label %if.end707 | |
if.end707: ; preds = %invoke.cont705, %invoke.cont699 | |
%501 = bitcast %struct.CUpdateErrorInfo* %errorInfo to %struct.CErrorInfo* | |
%SystemError = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %501, i32 0, i32 0 | |
%502 = load i32, i32* %SystemError, align 8, !tbaa !90 | |
%cmp708 = icmp ne i32 %502, 0 | |
br i1 %cmp708, label %if.then709, label %if.end721 | |
if.then709: ; preds = %if.end707 | |
%503 = bitcast %class.CStringBase* %ref.tmp710 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %503) #16 | |
%504 = bitcast %struct.CUpdateErrorInfo* %errorInfo to %struct.CErrorInfo* | |
%SystemError711 = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %504, i32 0, i32 0 | |
%505 = load i32, i32* %SystemError711, align 8, !tbaa !90 | |
invoke void @_ZN8NWindows6NError16MyFormatMessageWEj(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp710, i32 %505) | |
to label %invoke.cont713 unwind label %lpad712 | |
invoke.cont713: ; preds = %if.then709 | |
%call716 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %message, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp710) | |
to label %invoke.cont715 unwind label %lpad714 | |
invoke.cont715: ; preds = %invoke.cont713 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp710) #16 | |
%506 = bitcast %class.CStringBase* %ref.tmp710 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %506) #16 | |
%call720 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %message, i32* getelementptr inbounds ([2 x i32], [2 x i32]* @.str.23, i64 0, i64 0)) | |
to label %invoke.cont719 unwind label %lpad680 | |
invoke.cont719: ; preds = %invoke.cont715 | |
br label %if.end721 | |
lpad712: ; preds = %if.then709 | |
%507 = landingpad { i8*, i32 } | |
cleanup | |
%508 = extractvalue { i8*, i32 } %507, 0 | |
store i8* %508, i8** %exn.slot, align 8 | |
%509 = extractvalue { i8*, i32 } %507, 1 | |
store i32 %509, i32* %ehselector.slot, align 4 | |
br label %ehcleanup718 | |
lpad714: ; preds = %invoke.cont713 | |
%510 = landingpad { i8*, i32 } | |
cleanup | |
%511 = extractvalue { i8*, i32 } %510, 0 | |
store i8* %511, i8** %exn.slot, align 8 | |
%512 = extractvalue { i8*, i32 } %510, 1 | |
store i32 %512, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp710) #16 | |
br label %ehcleanup718 | |
ehcleanup718: ; preds = %lpad714, %lpad712 | |
%513 = bitcast %class.CStringBase* %ref.tmp710 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %513) #16 | |
br label %ehcleanup736 | |
if.end721: ; preds = %invoke.cont719, %if.end707 | |
%call723 = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %message) | |
to label %invoke.cont722 unwind label %lpad680 | |
invoke.cont722: ; preds = %if.end721 | |
br i1 %call723, label %if.end731, label %if.then724 | |
if.then724: ; preds = %invoke.cont722 | |
%514 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call726 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKw(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %514, i32* getelementptr inbounds ([9 x i32], [9 x i32]* @.str.24, i64 0, i64 0)) | |
to label %invoke.cont725 unwind label %lpad680 | |
invoke.cont725: ; preds = %if.then724 | |
%call728 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %message) | |
to label %invoke.cont727 unwind label %lpad680 | |
invoke.cont727: ; preds = %invoke.cont725 | |
%call730 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKw(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call726, i32* %call728) | |
to label %invoke.cont729 unwind label %lpad680 | |
invoke.cont729: ; preds = %invoke.cont727 | |
br label %if.end731 | |
if.end731: ; preds = %invoke.cont729, %invoke.cont722 | |
%exception732 = call i8* @__cxa_allocate_exception(i64 4) #16 | |
%515 = bitcast i8* %exception732 to %struct.CSystemException* | |
%516 = load i32, i32* %result568, align 4, !tbaa !3 | |
invoke void @_ZN16CSystemExceptionC2Ei(%struct.CSystemException* nonnull align 4 dereferenceable(4) %515, i32 %516) | |
to label %invoke.cont734 unwind label %lpad733 | |
invoke.cont734: ; preds = %if.end731 | |
invoke void @__cxa_throw(i8* %exception732, i8* bitcast ({ i8*, i8* }* @_ZTI16CSystemException to i8*), i8* null) #18 | |
to label %unreachable unwind label %lpad680 | |
lpad733: ; preds = %if.end731 | |
%517 = landingpad { i8*, i32 } | |
cleanup | |
%518 = extractvalue { i8*, i32 } %517, 0 | |
store i8* %518, i8** %exn.slot, align 8 | |
%519 = extractvalue { i8*, i32 } %517, 1 | |
store i32 %519, i32* %ehselector.slot, align 4 | |
call void @__cxa_free_exception(i8* %exception732) #16 | |
br label %ehcleanup736 | |
ehcleanup736: ; preds = %lpad733, %ehcleanup718, %lpad680 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %message) #16 | |
br label %ehcleanup737 | |
ehcleanup737: ; preds = %ehcleanup736, %lpad678 | |
%520 = bitcast %class.CStringBase* %message to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %520) #16 | |
br label %ehcleanup819 | |
if.end738: ; preds = %if.end675 | |
%521 = bitcast i32* %numErrors739 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %521) #16 | |
%FailedFiles = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 11 | |
%522 = bitcast %class.CObjectVector* %FailedFiles to %class.CBaseRecordVector* | |
%call742 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %522) | |
to label %invoke.cont741 unwind label %lpad740 | |
invoke.cont741: ; preds = %if.end738 | |
store i32 %call742, i32* %numErrors739, align 4, !tbaa !3 | |
%523 = load i32, i32* %numErrors739, align 4, !tbaa !3 | |
%cmp743 = icmp eq i32 %523, 0 | |
br i1 %cmp743, label %if.then744, label %if.else755 | |
if.then744: ; preds = %invoke.cont741 | |
%CantFindFiles745 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 13 | |
%524 = bitcast %class.CObjectVector* %CantFindFiles745 to %class.CBaseRecordVector* | |
%call747 = invoke i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %524) | |
to label %invoke.cont746 unwind label %lpad740 | |
invoke.cont746: ; preds = %if.then744 | |
%cmp748 = icmp eq i32 %call747, 0 | |
br i1 %cmp748, label %if.then749, label %if.end754 | |
if.then749: ; preds = %invoke.cont746 | |
%525 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%526 = load i8*, i8** @_ZL15kEverythingIsOk, align 8, !tbaa !7 | |
%call751 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %525, i8* %526) | |
to label %invoke.cont750 unwind label %lpad740 | |
invoke.cont750: ; preds = %if.then749 | |
%call753 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call751, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont752 unwind label %lpad740 | |
invoke.cont752: ; preds = %invoke.cont750 | |
br label %if.end754 | |
lpad740: ; preds = %if.end812, %if.then809, %invoke.cont804, %invoke.cont802, %invoke.cont800, %invoke.cont798, %for.end797, %invoke.cont760, %invoke.cont758, %invoke.cont756, %if.else755, %invoke.cont750, %if.then749, %if.then744, %if.end738 | |
%527 = landingpad { i8*, i32 } | |
cleanup | |
%528 = extractvalue { i8*, i32 } %527, 0 | |
store i8* %528, i8** %exn.slot, align 8 | |
%529 = extractvalue { i8*, i32 } %527, 1 | |
store i32 %529, i32* %ehselector.slot, align 4 | |
br label %ehcleanup817 | |
if.end754: ; preds = %invoke.cont752, %invoke.cont746 | |
br label %if.end815 | |
if.else755: ; preds = %invoke.cont741 | |
%530 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call757 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %530, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont756 unwind label %lpad740 | |
invoke.cont756: ; preds = %if.else755 | |
%531 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call759 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %531, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.17, i64 0, i64 0)) | |
to label %invoke.cont758 unwind label %lpad740 | |
invoke.cont758: ; preds = %invoke.cont756 | |
%call761 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call759, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont760 unwind label %lpad740 | |
invoke.cont760: ; preds = %invoke.cont758 | |
%call763 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call761, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont762 unwind label %lpad740 | |
invoke.cont762: ; preds = %invoke.cont760 | |
%532 = bitcast i32* %i764 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %532) #16 | |
store i32 0, i32* %i764, align 4, !tbaa !3 | |
br label %for.cond765 | |
for.cond765: ; preds = %for.inc793, %invoke.cont762 | |
%533 = load i32, i32* %i764, align 4, !tbaa !3 | |
%534 = load i32, i32* %numErrors739, align 4, !tbaa !3 | |
%cmp766 = icmp slt i32 %533, %534 | |
br i1 %cmp766, label %for.body768, label %for.cond.cleanup767 | |
for.cond.cleanup767: ; preds = %for.cond765 | |
store i32 17, i32* %cleanup.dest.slot, align 4 | |
%535 = bitcast i32* %i764 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %535) #16 | |
br label %for.end797 | |
for.body768: ; preds = %for.cond765 | |
%536 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%FailedFiles769 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 11 | |
%537 = load i32, i32* %i764, align 4, !tbaa !3 | |
%call772 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %FailedFiles769, i32 %537) | |
to label %invoke.cont771 unwind label %lpad770 | |
invoke.cont771: ; preds = %for.body768 | |
%call774 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %call772) | |
to label %invoke.cont773 unwind label %lpad770 | |
invoke.cont773: ; preds = %invoke.cont771 | |
%call776 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKw(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %536, i32* %call774) | |
to label %invoke.cont775 unwind label %lpad770 | |
invoke.cont775: ; preds = %invoke.cont773 | |
%call778 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call776, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.18, i64 0, i64 0)) | |
to label %invoke.cont777 unwind label %lpad770 | |
invoke.cont777: ; preds = %invoke.cont775 | |
%538 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%539 = bitcast %class.CStringBase* %ref.tmp779 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %539) #16 | |
%FailedCodes = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %callback, i32 0, i32 12 | |
%540 = load i32, i32* %i764, align 4, !tbaa !3 | |
%call782 = invoke nonnull align 4 dereferenceable(4) i32* @_ZN13CRecordVectorIiEixEi(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %FailedCodes, i32 %540) | |
to label %invoke.cont781 unwind label %lpad780 | |
invoke.cont781: ; preds = %invoke.cont777 | |
%541 = load i32, i32* %call782, align 4, !tbaa !3 | |
invoke void @_ZN8NWindows6NError16MyFormatMessageWEj(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp779, i32 %541) | |
to label %invoke.cont783 unwind label %lpad780 | |
invoke.cont783: ; preds = %invoke.cont781 | |
%call786 = invoke i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp779) | |
to label %invoke.cont785 unwind label %lpad784 | |
invoke.cont785: ; preds = %invoke.cont783 | |
%call788 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKw(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %538, i32* %call786) | |
to label %invoke.cont787 unwind label %lpad784 | |
invoke.cont787: ; preds = %invoke.cont785 | |
%call790 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call788, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont789 unwind label %lpad784 | |
invoke.cont789: ; preds = %invoke.cont787 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp779) #16 | |
%542 = bitcast %class.CStringBase* %ref.tmp779 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %542) #16 | |
br label %for.inc793 | |
for.inc793: ; preds = %invoke.cont789 | |
%543 = load i32, i32* %i764, align 4, !tbaa !3 | |
%inc794 = add nsw i32 %543, 1 | |
store i32 %inc794, i32* %i764, align 4, !tbaa !3 | |
br label %for.cond765, !llvm.loop !92 | |
lpad770: ; preds = %invoke.cont775, %invoke.cont773, %invoke.cont771, %for.body768 | |
%544 = landingpad { i8*, i32 } | |
cleanup | |
%545 = extractvalue { i8*, i32 } %544, 0 | |
store i8* %545, i8** %exn.slot, align 8 | |
%546 = extractvalue { i8*, i32 } %544, 1 | |
store i32 %546, i32* %ehselector.slot, align 4 | |
br label %ehcleanup796 | |
lpad780: ; preds = %invoke.cont781, %invoke.cont777 | |
%547 = landingpad { i8*, i32 } | |
cleanup | |
%548 = extractvalue { i8*, i32 } %547, 0 | |
store i8* %548, i8** %exn.slot, align 8 | |
%549 = extractvalue { i8*, i32 } %547, 1 | |
store i32 %549, i32* %ehselector.slot, align 4 | |
br label %ehcleanup792 | |
lpad784: ; preds = %invoke.cont787, %invoke.cont785, %invoke.cont783 | |
%550 = landingpad { i8*, i32 } | |
cleanup | |
%551 = extractvalue { i8*, i32 } %550, 0 | |
store i8* %551, i8** %exn.slot, align 8 | |
%552 = extractvalue { i8*, i32 } %550, 1 | |
store i32 %552, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp779) #16 | |
br label %ehcleanup792 | |
ehcleanup792: ; preds = %lpad784, %lpad780 | |
%553 = bitcast %class.CStringBase* %ref.tmp779 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %553) #16 | |
br label %ehcleanup796 | |
ehcleanup796: ; preds = %ehcleanup792, %lpad770 | |
%554 = bitcast i32* %i764 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %554) #16 | |
br label %ehcleanup817 | |
for.end797: ; preds = %for.cond.cleanup767 | |
%555 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call799 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %555, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.19, i64 0, i64 0)) | |
to label %invoke.cont798 unwind label %lpad740 | |
invoke.cont798: ; preds = %for.end797 | |
%call801 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call799, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont800 unwind label %lpad740 | |
invoke.cont800: ; preds = %invoke.cont798 | |
%556 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call803 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %556, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.25, i64 0, i64 0)) | |
to label %invoke.cont802 unwind label %lpad740 | |
invoke.cont802: ; preds = %invoke.cont800 | |
%557 = load i32, i32* %numErrors739, align 4, !tbaa !3 | |
%call805 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEi(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call803, i32 %557) | |
to label %invoke.cont804 unwind label %lpad740 | |
invoke.cont804: ; preds = %invoke.cont802 | |
%call807 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call805, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.21, i64 0, i64 0)) | |
to label %invoke.cont806 unwind label %lpad740 | |
invoke.cont806: ; preds = %invoke.cont804 | |
%558 = load i32, i32* %numErrors739, align 4, !tbaa !3 | |
%cmp808 = icmp sgt i32 %558, 1 | |
br i1 %cmp808, label %if.then809, label %if.end812 | |
if.then809: ; preds = %invoke.cont806 | |
%559 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call811 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %559, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.22, i64 0, i64 0)) | |
to label %invoke.cont810 unwind label %lpad740 | |
invoke.cont810: ; preds = %if.then809 | |
br label %if.end812 | |
if.end812: ; preds = %invoke.cont810, %invoke.cont806 | |
%560 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
%call814 = invoke nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %560, %class.CStdOutStream* (%class.CStdOutStream*)* @_Z4endlR13CStdOutStream) | |
to label %invoke.cont813 unwind label %lpad740 | |
invoke.cont813: ; preds = %if.end812 | |
store i32 1, i32* %exitCode, align 4, !tbaa !3 | |
br label %if.end815 | |
if.end815: ; preds = %invoke.cont813, %if.end754 | |
%561 = load i32, i32* %exitCode, align 4, !tbaa !3 | |
store i32 %561, i32* %retval, align 4 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
%562 = bitcast i32* %numErrors739 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %562) #16 | |
%563 = bitcast i32* %exitCode to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %563) #16 | |
%564 = bitcast i32* %result568 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %564) #16 | |
call void bitcast (void (%struct.CErrorInfo*)* @_ZN10CErrorInfoD2Ev to void (%struct.CUpdateErrorInfo*)*)(%struct.CUpdateErrorInfo* nonnull align 8 dereferenceable(56) %errorInfo) #16 | |
%565 = bitcast %struct.CUpdateErrorInfo* %errorInfo to i8* | |
call void @llvm.lifetime.end.p0i8(i64 56, i8* %565) #16 | |
call void @_ZN22CUpdateCallbackConsoleD2Ev(%class.CUpdateCallbackConsole* nonnull align 8 dereferenceable(232) %callback) #16 | |
%566 = bitcast %class.CUpdateCallbackConsole* %callback to i8* | |
call void @llvm.lifetime.end.p0i8(i64 232, i8* %566) #16 | |
call void @llvm.lifetime.end.p0i8(i64 1, i8* %passwordIsDefined) #16 | |
call void @_ZN20COpenCallbackConsoleD2Ev(%class.COpenCallbackConsole* nonnull align 8 dereferenceable(40) %openCallback516) #16 | |
%567 = bitcast %class.COpenCallbackConsole* %openCallback516 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 40, i8* %567) #16 | |
%568 = bitcast %struct.CUpdateOptions** %uo to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %568) #16 | |
br label %cleanup844 | |
ehcleanup817: ; preds = %ehcleanup796, %lpad740 | |
%569 = bitcast i32* %numErrors739 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %569) #16 | |
br label %ehcleanup819 | |
ehcleanup819: ; preds = %ehcleanup817, %ehcleanup737, %ehcleanup674, %lpad605 | |
%570 = bitcast i32* %exitCode to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %570) #16 | |
br label %ehcleanup821 | |
ehcleanup821: ; preds = %ehcleanup819, %ehcleanup602, %lpad570 | |
%571 = bitcast i32* %result568 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %571) #16 | |
br label %ehcleanup823 | |
ehcleanup823: ; preds = %ehcleanup821, %lpad562 | |
call void bitcast (void (%struct.CErrorInfo*)* @_ZN10CErrorInfoD2Ev to void (%struct.CUpdateErrorInfo*)*)(%struct.CUpdateErrorInfo* nonnull align 8 dereferenceable(56) %errorInfo) #16 | |
br label %ehcleanup825 | |
ehcleanup825: ; preds = %ehcleanup823, %lpad560 | |
%572 = bitcast %struct.CUpdateErrorInfo* %errorInfo to i8* | |
call void @llvm.lifetime.end.p0i8(i64 56, i8* %572) #16 | |
br label %ehcleanup827 | |
ehcleanup827: ; preds = %ehcleanup825, %lpad546 | |
call void @_ZN22CUpdateCallbackConsoleD2Ev(%class.CUpdateCallbackConsole* nonnull align 8 dereferenceable(232) %callback) #16 | |
br label %ehcleanup829 | |
ehcleanup829: ; preds = %ehcleanup827, %lpad534 | |
%573 = bitcast %class.CUpdateCallbackConsole* %callback to i8* | |
call void @llvm.lifetime.end.p0i8(i64 232, i8* %573) #16 | |
br label %ehcleanup831 | |
ehcleanup831: ; preds = %ehcleanup829, %lpad523 | |
call void @llvm.lifetime.end.p0i8(i64 1, i8* %passwordIsDefined) #16 | |
call void @_ZN20COpenCallbackConsoleD2Ev(%class.COpenCallbackConsole* nonnull align 8 dereferenceable(40) %openCallback516) #16 | |
br label %ehcleanup835 | |
ehcleanup835: ; preds = %ehcleanup831, %lpad517 | |
%574 = bitcast %class.COpenCallbackConsole* %openCallback516 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 40, i8* %574) #16 | |
br label %ehcleanup837 | |
ehcleanup837: ; preds = %ehcleanup835, %lpad508 | |
%575 = bitcast %struct.CUpdateOptions** %uo to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %575) #16 | |
br label %ehcleanup845 | |
if.else838: ; preds = %invoke.cont503 | |
%576 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream, align 8, !tbaa !7 | |
invoke void @_ZL16PrintHelpAndExitR13CStdOutStream(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %576) | |
to label %invoke.cont839 unwind label %lpad57 | |
invoke.cont839: ; preds = %if.else838 | |
br label %if.end840 | |
if.end840: ; preds = %invoke.cont839 | |
br label %if.end841 | |
if.end841: ; preds = %if.end840, %if.end500 | |
br label %if.end842 | |
if.end842: ; preds = %if.end841, %if.end237 | |
br label %if.end843 | |
if.end843: ; preds = %if.end842 | |
store i32 0, i32* %retval, align 4 | |
store i32 1, i32* %cleanup.dest.slot, align 4 | |
br label %cleanup844 | |
cleanup844: ; preds = %if.end843, %if.end815, %cleanup494, %cleanup435, %cleanup233, %cleanup, %invoke.cont181 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.5*)*)(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %formatIndices) #16 | |
%577 = bitcast %class.CRecordVector.5* %formatIndices to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %577) #16 | |
call void @llvm.lifetime.end.p0i8(i64 1, i8* %isExtractGroupCommand) #16 | |
%578 = bitcast i32* %result to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %578) #16 | |
call void @_ZN9CMyComPtrI8IUnknownED2Ev(%class.CMyComPtr* nonnull align 8 dereferenceable(8) %compressCodecsInfo) #16 | |
%579 = bitcast %class.CMyComPtr* %compressCodecsInfo to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %579) #16 | |
%580 = bitcast %class.CCodecs** %codecs to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %580) #16 | |
%581 = bitcast %class.CStdOutStream** %stdStream to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %581) #16 | |
br label %cleanup860 | |
ehcleanup845: ; preds = %ehcleanup837, %ehcleanup495, %ehcleanup458, %ehcleanup236, %ehcleanup210, %ehcleanup183, %lpad57 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.5*)*)(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %formatIndices) #16 | |
br label %ehcleanup847 | |
ehcleanup847: ; preds = %ehcleanup845, %lpad55 | |
%582 = bitcast %class.CRecordVector.5* %formatIndices to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %582) #16 | |
br label %ehcleanup849 | |
ehcleanup849: ; preds = %ehcleanup847, %lpad39 | |
call void @llvm.lifetime.end.p0i8(i64 1, i8* %isExtractGroupCommand) #16 | |
br label %ehcleanup851 | |
ehcleanup851: ; preds = %ehcleanup849, %lpad36, %lpad31 | |
%583 = bitcast i32* %result to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %583) #16 | |
call void @_ZN9CMyComPtrI8IUnknownED2Ev(%class.CMyComPtr* nonnull align 8 dereferenceable(8) %compressCodecsInfo) #16 | |
br label %ehcleanup855 | |
ehcleanup855: ; preds = %ehcleanup851, %lpad29 | |
%584 = bitcast %class.CMyComPtr* %compressCodecsInfo to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %584) #16 | |
br label %ehcleanup857 | |
ehcleanup857: ; preds = %ehcleanup855, %lpad27, %lpad24 | |
%585 = bitcast %class.CCodecs** %codecs to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %585) #16 | |
br label %ehcleanup859 | |
ehcleanup859: ; preds = %ehcleanup857, %lpad20 | |
%586 = bitcast %class.CStdOutStream** %stdStream to i8* | |
call void @llvm.lifetime.end.p0i8(i64 8, i8* %586) #16 | |
br label %ehcleanup861 | |
cleanup860: ; preds = %cleanup844, %invoke.cont11 | |
call void @_ZN25CArchiveCommandLineParserD2Ev(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48) %parser) #16 | |
%587 = bitcast %class.CArchiveCommandLineParser* %parser to i8* | |
call void @llvm.lifetime.end.p0i8(i64 48, i8* %587) #16 | |
call void @_ZN26CArchiveCommandLineOptionsD2Ev(%struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592) %options) #16 | |
%588 = bitcast %struct.CArchiveCommandLineOptions* %options to i8* | |
call void @llvm.lifetime.end.p0i8(i64 592, i8* %588) #16 | |
br label %cleanup868 | |
ehcleanup861: ; preds = %ehcleanup859, %lpad8 | |
call void @_ZN25CArchiveCommandLineParserD2Ev(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48) %parser) #16 | |
br label %ehcleanup863 | |
ehcleanup863: ; preds = %ehcleanup861, %lpad6 | |
%589 = bitcast %class.CArchiveCommandLineParser* %parser to i8* | |
call void @llvm.lifetime.end.p0i8(i64 48, i8* %589) #16 | |
call void @_ZN26CArchiveCommandLineOptionsD2Ev(%struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592) %options) #16 | |
br label %ehcleanup867 | |
ehcleanup867: ; preds = %ehcleanup863, %lpad4 | |
%590 = bitcast %struct.CArchiveCommandLineOptions* %options to i8* | |
call void @llvm.lifetime.end.p0i8(i64 592, i8* %590) #16 | |
br label %ehcleanup869 | |
cleanup868: ; preds = %cleanup860, %invoke.cont2 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %commandStrings) #16 | |
%591 = bitcast %class.CObjectVector* %commandStrings to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %591) #16 | |
%592 = load i32, i32* %retval, align 4 | |
ret i32 %592 | |
ehcleanup869: ; preds = %ehcleanup867, %lpad | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %commandStrings) #16 | |
%593 = bitcast %class.CObjectVector* %commandStrings to i8* | |
call void @llvm.lifetime.end.p0i8(i64 32, i8* %593) #16 | |
br label %eh.resume | |
eh.resume: ; preds = %ehcleanup869 | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val872 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val872 | |
unreachable: ; preds = %invoke.cont734, %if.then565, %invoke.cont491, %invoke.cont382, %invoke.cont374, %invoke.cont230, %invoke.cont207, %if.then60, %if.then52, %invoke.cont37 | |
unreachable | |
} | |
; Function Attrs: argmemonly nofree nosync nounwind willreturn | |
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #1 | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector*, align 8 | |
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector* | |
call void @_ZN13CRecordVectorIPvEC2Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0) | |
%1 = bitcast %class.CObjectVector* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorI11CStringBaseIwEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !93 | |
ret void | |
} | |
declare dso_local void @_Z18mySplitCommandLineiPPKcR13CObjectVectorI11CStringBaseIwEE(i32, i8**, %class.CObjectVector* nonnull align 8 dereferenceable(32)) #3 | |
declare dso_local i32 @__gxx_personality_v0(...) | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local i32 @_ZNK17CBaseRecordVector4SizeEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %this) #4 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CBaseRecordVector*, align 8 | |
store %class.CBaseRecordVector* %this, %class.CBaseRecordVector** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CBaseRecordVector*, %class.CBaseRecordVector** %this.addr, align 8 | |
%_size = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 2 | |
%0 = load i32, i32* %_size, align 4, !tbaa !95 | |
ret i32 %0 | |
} | |
; Function Attrs: mustprogress uwtable | |
define internal void @_ZL20ShowCopyrightAndHelpR13CStdOutStreamb(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %s, i1 zeroext %needHelp) #0 { | |
entry: | |
%s.addr = alloca %class.CStdOutStream*, align 8 | |
%needHelp.addr = alloca i8, align 1 | |
%nbcpu = alloca i32, align 4 | |
store %class.CStdOutStream* %s, %class.CStdOutStream** %s.addr, align 8, !tbaa !7 | |
%frombool = zext i1 %needHelp to i8 | |
store i8 %frombool, i8* %needHelp.addr, align 1, !tbaa !29 | |
%0 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7 | |
%1 = load i8*, i8** @_ZL16kCopyrightString, align 8, !tbaa !7 | |
%call = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %0, i8* %1) | |
%call1 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.26, i64 0, i64 0)) | |
%call2 = call i8* @_Z12my_getlocalev() | |
%call3 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call1, i8* %call2) | |
%call4 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call3, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.27, i64 0, i64 0)) | |
%2 = load i32, i32* @global_use_utf16_conversion, align 4, !tbaa !3 | |
%tobool = icmp ne i32 %2, 0 | |
br i1 %tobool, label %if.then, label %if.else | |
if.then: ; preds = %entry | |
%3 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7 | |
%call5 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %3, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.28, i64 0, i64 0)) | |
br label %if.end | |
if.else: ; preds = %entry | |
%4 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7 | |
%call6 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %4, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0)) | |
br label %if.end | |
if.end: ; preds = %if.else, %if.then | |
%5 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7 | |
%call7 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %5, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.30, i64 0, i64 0)) | |
%6 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7 | |
%call8 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %6, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.31, i64 0, i64 0)) | |
%7 = bitcast i32* %nbcpu to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %7) #16 | |
%call9 = call i32 @_ZN8NWindows7NSystem21GetNumberOfProcessorsEv() | |
store i32 %call9, i32* %nbcpu, align 4, !tbaa !3 | |
%8 = load i32, i32* %nbcpu, align 4, !tbaa !3 | |
%cmp = icmp sgt i32 %8, 1 | |
br i1 %cmp, label %if.then10, label %if.else13 | |
if.then10: ; preds = %if.end | |
%9 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7 | |
%10 = load i32, i32* %nbcpu, align 4, !tbaa !3 | |
%call11 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEi(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %9, i32 %10) | |
%call12 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call11, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.32, i64 0, i64 0)) | |
br label %if.end16 | |
if.else13: ; preds = %if.end | |
%11 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7 | |
%12 = load i32, i32* %nbcpu, align 4, !tbaa !3 | |
%call14 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEi(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %11, i32 %12) | |
%call15 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %call14, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.33, i64 0, i64 0)) | |
br label %if.end16 | |
if.end16: ; preds = %if.else13, %if.then10 | |
%13 = load i8, i8* %needHelp.addr, align 1, !tbaa !29, !range !25 | |
%tobool17 = trunc i8 %13 to i1 | |
br i1 %tobool17, label %if.then18, label %if.end20 | |
if.then18: ; preds = %if.end16 | |
%14 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7 | |
%15 = load i8*, i8** @_ZL11kHelpString, align 8, !tbaa !7 | |
%call19 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %14, i8* %15) | |
br label %if.end20 | |
if.end20: ; preds = %if.then18, %if.end16 | |
%16 = bitcast i32* %nbcpu to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %16) #16 | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorI11CStringBaseIwEE6DeleteEii(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector*, align 8 | |
%index.addr = alloca i32, align 4 | |
%num.addr = alloca i32, align 4 | |
%i = alloca i32, align 4 | |
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !7 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !3 | |
store i32 %num, i32* %num.addr, align 4, !tbaa !3 | |
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector* %this1 to %class.CBaseRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr) | |
%2 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #16 | |
store i32 0, i32* %i, align 4, !tbaa !3 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %entry | |
%3 = load i32, i32* %i, align 4, !tbaa !3 | |
%4 = load i32, i32* %num.addr, align 4, !tbaa !3 | |
%cmp = icmp slt i32 %3, %4 | |
br i1 %cmp, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
%5 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #16 | |
br label %for.end | |
for.body: ; preds = %for.cond | |
%6 = bitcast %class.CObjectVector* %this1 to %class.CBaseRecordVector* | |
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3 | |
%7 = load i8*, i8** %_items, align 8, !tbaa !97 | |
%8 = bitcast i8* %7 to i8** | |
%9 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
%10 = load i32, i32* %i, align 4, !tbaa !3 | |
%add = add nsw i32 %9, %10 | |
%idxprom = sext i32 %add to i64 | |
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom | |
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !7 | |
%12 = bitcast i8* %11 to %class.CStringBase* | |
%isnull = icmp eq %class.CStringBase* %12, null | |
br i1 %isnull, label %delete.end, label %delete.notnull | |
delete.notnull: ; preds = %for.body | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %12) #16 | |
%13 = bitcast %class.CStringBase* %12 to i8* | |
call void @_ZdlPv(i8* %13) #19 | |
br label %delete.end | |
delete.end: ; preds = %delete.notnull, %for.body | |
br label %for.inc | |
for.inc: ; preds = %delete.end | |
%14 = load i32, i32* %i, align 4, !tbaa !3 | |
%inc = add nsw i32 %14, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !3 | |
br label %for.cond, !llvm.loop !98 | |
for.end: ; preds = %for.cond.cleanup | |
%15 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector* | |
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector* | |
%17 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
%18 = load i32, i32* %num.addr, align 4, !tbaa !3 | |
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18) | |
ret void | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN26CArchiveCommandLineOptionsC2Ev(%struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %struct.CArchiveCommandLineOptions*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %struct.CArchiveCommandLineOptions* %this, %struct.CArchiveCommandLineOptions** %this.addr, align 8, !tbaa !7 | |
%this1 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %this.addr, align 8 | |
%StdInMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 5 | |
store i8 0, i8* %StdInMode, align 1, !tbaa !54 | |
%StdOutMode = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 6 | |
store i8 0, i8* %StdOutMode, align 2, !tbaa !27 | |
%WildcardCensor = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 10 | |
call void @_ZN9NWildcard7CCensorC2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %WildcardCensor) | |
%Command = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 11 | |
%ArchiveName = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 12 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%Password = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 14 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password) | |
to label %invoke.cont3 unwind label %lpad2 | |
invoke.cont3: ; preds = %invoke.cont | |
%OutputDir = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 18 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir) | |
to label %invoke.cont5 unwind label %lpad4 | |
invoke.cont5: ; preds = %invoke.cont3 | |
%ArchivePathsSorted = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 20 | |
invoke void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsSorted) | |
to label %invoke.cont7 unwind label %lpad6 | |
invoke.cont7: ; preds = %invoke.cont5 | |
%ArchivePathsFullSorted = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 21 | |
invoke void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsFullSorted) | |
to label %invoke.cont9 unwind label %lpad8 | |
invoke.cont9: ; preds = %invoke.cont7 | |
%ExtractProperties = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 22 | |
invoke void @_ZN13CObjectVectorI9CPropertyEC2Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %ExtractProperties) | |
to label %invoke.cont11 unwind label %lpad10 | |
invoke.cont11: ; preds = %invoke.cont9 | |
%UpdateOptions = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 23 | |
invoke void @_ZN14CUpdateOptionsC2Ev(%struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %UpdateOptions) | |
to label %invoke.cont13 unwind label %lpad12 | |
invoke.cont13: ; preds = %invoke.cont11 | |
%ArcType = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 24 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArcType) | |
to label %invoke.cont15 unwind label %lpad14 | |
invoke.cont15: ; preds = %invoke.cont13 | |
%Method = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 29 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Method) | |
to label %invoke.cont17 unwind label %lpad16 | |
invoke.cont17: ; preds = %invoke.cont15 | |
ret void | |
lpad: ; preds = %entry | |
%0 = landingpad { i8*, i32 } | |
cleanup | |
%1 = extractvalue { i8*, i32 } %0, 0 | |
store i8* %1, i8** %exn.slot, align 8 | |
%2 = extractvalue { i8*, i32 } %0, 1 | |
store i32 %2, i32* %ehselector.slot, align 4 | |
br label %ehcleanup24 | |
lpad2: ; preds = %invoke.cont | |
%3 = landingpad { i8*, i32 } | |
cleanup | |
%4 = extractvalue { i8*, i32 } %3, 0 | |
store i8* %4, i8** %exn.slot, align 8 | |
%5 = extractvalue { i8*, i32 } %3, 1 | |
store i32 %5, i32* %ehselector.slot, align 4 | |
br label %ehcleanup23 | |
lpad4: ; preds = %invoke.cont3 | |
%6 = landingpad { i8*, i32 } | |
cleanup | |
%7 = extractvalue { i8*, i32 } %6, 0 | |
store i8* %7, i8** %exn.slot, align 8 | |
%8 = extractvalue { i8*, i32 } %6, 1 | |
store i32 %8, i32* %ehselector.slot, align 4 | |
br label %ehcleanup22 | |
lpad6: ; preds = %invoke.cont5 | |
%9 = landingpad { i8*, i32 } | |
cleanup | |
%10 = extractvalue { i8*, i32 } %9, 0 | |
store i8* %10, i8** %exn.slot, align 8 | |
%11 = extractvalue { i8*, i32 } %9, 1 | |
store i32 %11, i32* %ehselector.slot, align 4 | |
br label %ehcleanup21 | |
lpad8: ; preds = %invoke.cont7 | |
%12 = landingpad { i8*, i32 } | |
cleanup | |
%13 = extractvalue { i8*, i32 } %12, 0 | |
store i8* %13, i8** %exn.slot, align 8 | |
%14 = extractvalue { i8*, i32 } %12, 1 | |
store i32 %14, i32* %ehselector.slot, align 4 | |
br label %ehcleanup20 | |
lpad10: ; preds = %invoke.cont9 | |
%15 = landingpad { i8*, i32 } | |
cleanup | |
%16 = extractvalue { i8*, i32 } %15, 0 | |
store i8* %16, i8** %exn.slot, align 8 | |
%17 = extractvalue { i8*, i32 } %15, 1 | |
store i32 %17, i32* %ehselector.slot, align 4 | |
br label %ehcleanup19 | |
lpad12: ; preds = %invoke.cont11 | |
%18 = landingpad { i8*, i32 } | |
cleanup | |
%19 = extractvalue { i8*, i32 } %18, 0 | |
store i8* %19, i8** %exn.slot, align 8 | |
%20 = extractvalue { i8*, i32 } %18, 1 | |
store i32 %20, i32* %ehselector.slot, align 4 | |
br label %ehcleanup18 | |
lpad14: ; preds = %invoke.cont13 | |
%21 = landingpad { i8*, i32 } | |
cleanup | |
%22 = extractvalue { i8*, i32 } %21, 0 | |
store i8* %22, i8** %exn.slot, align 8 | |
%23 = extractvalue { i8*, i32 } %21, 1 | |
store i32 %23, i32* %ehselector.slot, align 4 | |
br label %ehcleanup | |
lpad16: ; preds = %invoke.cont15 | |
%24 = landingpad { i8*, i32 } | |
cleanup | |
%25 = extractvalue { i8*, i32 } %24, 0 | |
store i8* %25, i8** %exn.slot, align 8 | |
%26 = extractvalue { i8*, i32 } %24, 1 | |
store i32 %26, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArcType) #16 | |
br label %ehcleanup | |
ehcleanup: ; preds = %lpad16, %lpad14 | |
call void @_ZN14CUpdateOptionsD2Ev(%struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %UpdateOptions) #16 | |
br label %ehcleanup18 | |
ehcleanup18: ; preds = %ehcleanup, %lpad12 | |
call void @_ZN13CObjectVectorI9CPropertyED2Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %ExtractProperties) #16 | |
br label %ehcleanup19 | |
ehcleanup19: ; preds = %ehcleanup18, %lpad10 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsFullSorted) #16 | |
br label %ehcleanup20 | |
ehcleanup20: ; preds = %ehcleanup19, %lpad8 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsSorted) #16 | |
br label %ehcleanup21 | |
ehcleanup21: ; preds = %ehcleanup20, %lpad6 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir) #16 | |
br label %ehcleanup22 | |
ehcleanup22: ; preds = %ehcleanup21, %lpad4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password) #16 | |
br label %ehcleanup23 | |
ehcleanup23: ; preds = %ehcleanup22, %lpad2 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName) #16 | |
br label %ehcleanup24 | |
ehcleanup24: ; preds = %ehcleanup23, %lpad | |
call void @_ZN9NWildcard7CCensorD2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %WildcardCensor) #16 | |
br label %eh.resume | |
eh.resume: ; preds = %ehcleanup24 | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val25 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val25 | |
} | |
declare dso_local void @_ZN25CArchiveCommandLineParserC1Ev(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48)) unnamed_addr #3 | |
declare dso_local void @_ZN25CArchiveCommandLineParser6Parse1ERK13CObjectVectorI11CStringBaseIwEER26CArchiveCommandLineOptions(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48), %class.CObjectVector* nonnull align 8 dereferenceable(32), %struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592)) #3 | |
declare dso_local void @SetLargePageSize() #3 | |
declare dso_local void @_ZN25CArchiveCommandLineParser6Parse2ER26CArchiveCommandLineOptions(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48), %struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592)) #3 | |
; Function Attrs: nobuiltin allocsize(0) | |
declare dso_local nonnull i8* @_Znwm(i64) #5 | |
; Function Attrs: inlinehint uwtable | |
define linkonce_odr dso_local void @_ZN7CCodecsC2Ev(%class.CCodecs* nonnull align 8 dereferenceable(48) %this) unnamed_addr #6 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CCodecs*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %class.CCodecs* %this, %class.CCodecs** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CCodecs*, %class.CCodecs** %this.addr, align 8 | |
%0 = bitcast %class.CCodecs* %this1 to %struct.IUnknown* | |
call void @_ZN8IUnknownC2Ev(%struct.IUnknown* nonnull align 8 dereferenceable(8) %0) #16 | |
%1 = bitcast %class.CCodecs* %this1 to i8* | |
%2 = getelementptr inbounds i8, i8* %1, i64 8 | |
%3 = bitcast i8* %2 to %class.CMyUnknownImp* | |
invoke void @_ZN13CMyUnknownImpC2Ev(%class.CMyUnknownImp* nonnull align 4 dereferenceable(4) %3) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%4 = bitcast %class.CCodecs* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [7 x i8*] }, { [7 x i8*] }* @_ZTV7CCodecs, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %4, align 8, !tbaa !93 | |
%Formats = getelementptr inbounds %class.CCodecs, %class.CCodecs* %this1, i32 0, i32 2 | |
invoke void @_ZN13CObjectVectorI10CArcInfoExEC2Ev(%class.CObjectVector.4* nonnull align 8 dereferenceable(32) %Formats) | |
to label %invoke.cont2 unwind label %lpad | |
invoke.cont2: ; preds = %invoke.cont | |
ret void | |
lpad: ; preds = %invoke.cont, %entry | |
%5 = landingpad { i8*, i32 } | |
cleanup | |
%6 = extractvalue { i8*, i32 } %5, 0 | |
store i8* %6, i8** %exn.slot, align 8 | |
%7 = extractvalue { i8*, i32 } %5, 1 | |
store i32 %7, i32* %ehselector.slot, align 4 | |
%8 = bitcast %class.CCodecs* %this1 to %struct.IUnknown* | |
call void @_ZN8IUnknownD2Ev(%struct.IUnknown* nonnull align 8 dereferenceable(8) %8) #16 | |
br label %eh.resume | |
eh.resume: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val3 | |
} | |
; Function Attrs: nobuiltin nounwind | |
declare dso_local void @_ZdlPv(i8*) #7 | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN9CMyComPtrI8IUnknownEC2EPS0_(%class.CMyComPtr* nonnull align 8 dereferenceable(8) %this, %struct.IUnknown* %p) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CMyComPtr*, align 8 | |
%p.addr = alloca %struct.IUnknown*, align 8 | |
store %class.CMyComPtr* %this, %class.CMyComPtr** %this.addr, align 8, !tbaa !7 | |
store %struct.IUnknown* %p, %struct.IUnknown** %p.addr, align 8, !tbaa !7 | |
%this1 = load %class.CMyComPtr*, %class.CMyComPtr** %this.addr, align 8 | |
%0 = load %struct.IUnknown*, %struct.IUnknown** %p.addr, align 8, !tbaa !7 | |
%_p = getelementptr inbounds %class.CMyComPtr, %class.CMyComPtr* %this1, i32 0, i32 0 | |
store %struct.IUnknown* %0, %struct.IUnknown** %_p, align 8, !tbaa !99 | |
%cmp = icmp ne %struct.IUnknown* %0, null | |
br i1 %cmp, label %if.then, label %if.end | |
if.then: ; preds = %entry | |
%1 = load %struct.IUnknown*, %struct.IUnknown** %p.addr, align 8, !tbaa !7 | |
%2 = bitcast %struct.IUnknown* %1 to i32 (%struct.IUnknown*)*** | |
%vtable = load i32 (%struct.IUnknown*)**, i32 (%struct.IUnknown*)*** %2, align 8, !tbaa !93 | |
%vfn = getelementptr inbounds i32 (%struct.IUnknown*)*, i32 (%struct.IUnknown*)** %vtable, i64 1 | |
%3 = load i32 (%struct.IUnknown*)*, i32 (%struct.IUnknown*)** %vfn, align 8 | |
%call = call i32 %3(%struct.IUnknown* nonnull align 8 dereferenceable(8) %1) | |
br label %if.end | |
if.end: ; preds = %if.then, %entry | |
ret void | |
} | |
declare dso_local i32 @_ZN7CCodecs4LoadEv(%class.CCodecs* nonnull align 8 dereferenceable(48)) #3 | |
declare dso_local i8* @__cxa_allocate_exception(i64) | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN16CSystemExceptionC2Ei(%struct.CSystemException* nonnull align 4 dereferenceable(4) %this, i32 %errorCode) unnamed_addr #8 comdat align 2 { | |
entry: | |
%this.addr = alloca %struct.CSystemException*, align 8 | |
%errorCode.addr = alloca i32, align 4 | |
store %struct.CSystemException* %this, %struct.CSystemException** %this.addr, align 8, !tbaa !7 | |
store i32 %errorCode, i32* %errorCode.addr, align 4, !tbaa !3 | |
%this1 = load %struct.CSystemException*, %struct.CSystemException** %this.addr, align 8 | |
%ErrorCode = getelementptr inbounds %struct.CSystemException, %struct.CSystemException* %this1, i32 0, i32 0 | |
%0 = load i32, i32* %errorCode.addr, align 4, !tbaa !3 | |
store i32 %0, i32* %ErrorCode, align 4, !tbaa !101 | |
ret void | |
} | |
declare dso_local void @__cxa_free_exception(i8*) | |
declare dso_local void @__cxa_throw(i8*, i8*, i8*) | |
declare dso_local zeroext i1 @_ZNK15CArchiveCommand18IsFromExtractGroupEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4)) #3 | |
declare dso_local zeroext i1 @_ZNK15CArchiveCommand17IsFromUpdateGroupEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4)) #3 | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CRecordVectorIiEC2Ev(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CRecordVector.5*, align 8 | |
store %class.CRecordVector.5* %this, %class.CRecordVector.5** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CRecordVector.5*, %class.CRecordVector.5** %this.addr, align 8 | |
%0 = bitcast %class.CRecordVector.5* %this1 to %class.CBaseRecordVector* | |
call void @_ZN17CBaseRecordVectorC2Em(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i64 4) | |
%1 = bitcast %class.CRecordVector.5* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CRecordVectorIiE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !93 | |
ret void | |
} | |
declare dso_local zeroext i1 @_ZNK7CCodecs24FindFormatForArchiveTypeERK11CStringBaseIwER13CRecordVectorIiE(%class.CCodecs* nonnull align 8 dereferenceable(48), %class.CStringBase* nonnull align 8 dereferenceable(16), %class.CRecordVector.5* nonnull align 8 dereferenceable(32)) #3 | |
declare dso_local nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPFRS_S0_E(%class.CStdOutStream* nonnull align 8 dereferenceable(16), %class.CStdOutStream* (%class.CStdOutStream*)*) #3 | |
declare dso_local nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_Z4endlR13CStdOutStream(%class.CStdOutStream* nonnull align 8 dereferenceable(16)) #3 | |
declare dso_local nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16), i8*) #3 | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(97) %struct.CArcInfoEx* @_ZN13CObjectVectorI10CArcInfoExEixEi(%class.CObjectVector.4* nonnull align 8 dereferenceable(32) %this, i32 %index) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.4*, align 8 | |
%index.addr = alloca i32, align 4 | |
store %class.CObjectVector.4* %this, %class.CObjectVector.4** %this.addr, align 8, !tbaa !7 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !3 | |
%this1 = load %class.CObjectVector.4*, %class.CObjectVector.4** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.4* %this1 to %class.CRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
%call = call nonnull align 8 dereferenceable(8) i8** @_ZN13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1) | |
%2 = load i8*, i8** %call, align 8, !tbaa !7 | |
%3 = bitcast i8* %2 to %struct.CArcInfoEx* | |
ret %struct.CArcInfoEx* %3 | |
} | |
declare dso_local nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEc(%class.CStdOutStream* nonnull align 8 dereferenceable(16), i8 signext) #3 | |
; Function Attrs: mustprogress uwtable | |
define internal void @_ZL11PrintStringR13CStdOutStreamRK11CStringBaseIwEi(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %stdStream, %class.CStringBase* nonnull align 8 dereferenceable(16) %s, i32 %size) #0 { | |
entry: | |
%stdStream.addr = alloca %class.CStdOutStream*, align 8 | |
%s.addr = alloca %class.CStringBase*, align 8 | |
%size.addr = alloca i32, align 4 | |
%len = alloca i32, align 4 | |
%i = alloca i32, align 4 | |
store %class.CStdOutStream* %stdStream, %class.CStdOutStream** %stdStream.addr, align 8, !tbaa !7 | |
store %class.CStringBase* %s, %class.CStringBase** %s.addr, align 8, !tbaa !7 | |
store i32 %size, i32* %size.addr, align 4, !tbaa !3 | |
%0 = bitcast i32* %len to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #16 | |
%1 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !7 | |
%call = call i32 @_ZNK11CStringBaseIwE6LengthEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %1) | |
store i32 %call, i32* %len, align 4, !tbaa !3 | |
%2 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream.addr, align 8, !tbaa !7 | |
%3 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !7 | |
%call1 = call i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %3) | |
%call2 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKw(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %2, i32* %call1) | |
%4 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %4) #16 | |
%5 = load i32, i32* %len, align 4, !tbaa !3 | |
store i32 %5, i32* %i, align 4, !tbaa !3 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %entry | |
%6 = load i32, i32* %i, align 4, !tbaa !3 | |
%7 = load i32, i32* %size.addr, align 4, !tbaa !3 | |
%cmp = icmp slt i32 %6, %7 | |
br i1 %cmp, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
%8 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %8) #16 | |
br label %for.end | |
for.body: ; preds = %for.cond | |
%9 = load %class.CStdOutStream*, %class.CStdOutStream** %stdStream.addr, align 8, !tbaa !7 | |
%call3 = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %9, i8 signext 32) | |
br label %for.inc | |
for.inc: ; preds = %for.body | |
%10 = load i32, i32* %i, align 4, !tbaa !3 | |
%inc = add nsw i32 %10, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !3 | |
br label %for.cond, !llvm.loop !103 | |
for.end: ; preds = %for.cond.cleanup | |
%11 = bitcast i32* %len to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %11) #16 | |
ret void | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
store i32* null, i32** %_chars, align 8, !tbaa !104 | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
store i32 0, i32* %_length, align 8, !tbaa !105 | |
%_capacity = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 2 | |
store i32 0, i32* %_capacity, align 4, !tbaa !106 | |
call void @_ZN11CStringBaseIwE11SetCapacityEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 3) | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(32) %struct.CArcExtInfo* @_ZNK13CObjectVectorI11CArcExtInfoEixEi(%class.CObjectVector.6* nonnull align 8 dereferenceable(32) %this, i32 %index) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.6*, align 8 | |
%index.addr = alloca i32, align 4 | |
store %class.CObjectVector.6* %this, %class.CObjectVector.6** %this.addr, align 8, !tbaa !7 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !3 | |
%this1 = load %class.CObjectVector.6*, %class.CObjectVector.6** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.6* %this1 to %class.CRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
%call = call nonnull align 8 dereferenceable(8) i8** @_ZNK13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1) | |
%2 = load i8*, i8** %call, align 8, !tbaa !7 | |
%3 = bitcast i8* %2 to %struct.CArcExtInfo* | |
ret %struct.CArcExtInfo* %3 | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, %class.CStringBase* nonnull align 8 dereferenceable(16) %s) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%s.addr = alloca %class.CStringBase*, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7 | |
store %class.CStringBase* %s, %class.CStringBase** %s.addr, align 8, !tbaa !7 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%0 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !7 | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %0, i32 0, i32 1 | |
%1 = load i32, i32* %_length, align 8, !tbaa !105 | |
call void @_ZN11CStringBaseIwE10GrowLengthEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 %1) | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%2 = load i32*, i32** %_chars, align 8, !tbaa !104 | |
%_length2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%3 = load i32, i32* %_length2, align 8, !tbaa !105 | |
%idx.ext = sext i32 %3 to i64 | |
%add.ptr = getelementptr inbounds i32, i32* %2, i64 %idx.ext | |
%4 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !7 | |
%_chars3 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %4, i32 0, i32 0 | |
%5 = load i32*, i32** %_chars3, align 8, !tbaa !104 | |
%call = call i32* @_Z12MyStringCopyIwEPT_S1_PKS0_(i32* %add.ptr, i32* %5) | |
%6 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !7 | |
%_length4 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %6, i32 0, i32 1 | |
%7 = load i32, i32* %_length4, align 8, !tbaa !105 | |
%_length5 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%8 = load i32, i32* %_length5, align 8, !tbaa !105 | |
%add = add nsw i32 %8, %7 | |
store i32 %add, i32* %_length5, align 8, !tbaa !105 | |
ret %class.CStringBase* %this1 | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) #4 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%0 = load i32, i32* %_length, align 8, !tbaa !105 | |
%cmp = icmp eq i32 %0, 0 | |
ret i1 %cmp | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32* %s) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%s.addr = alloca i32*, align 8 | |
%len = alloca i32, align 4 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7 | |
store i32* %s, i32** %s.addr, align 8, !tbaa !7 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%0 = bitcast i32* %len to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #16 | |
%1 = load i32*, i32** %s.addr, align 8, !tbaa !7 | |
%call = call i32 @_Z11MyStringLenIwEiPKT_(i32* %1) | |
store i32 %call, i32* %len, align 4, !tbaa !3 | |
%2 = load i32, i32* %len, align 4, !tbaa !3 | |
call void @_ZN11CStringBaseIwE10GrowLengthEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 %2) | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%3 = load i32*, i32** %_chars, align 8, !tbaa !104 | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%4 = load i32, i32* %_length, align 8, !tbaa !105 | |
%idx.ext = sext i32 %4 to i64 | |
%add.ptr = getelementptr inbounds i32, i32* %3, i64 %idx.ext | |
%5 = load i32*, i32** %s.addr, align 8, !tbaa !7 | |
%call2 = call i32* @_Z12MyStringCopyIwEPT_S1_PKS0_(i32* %add.ptr, i32* %5) | |
%6 = load i32, i32* %len, align 4, !tbaa !3 | |
%_length3 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%7 = load i32, i32* %_length3, align 8, !tbaa !105 | |
%add = add nsw i32 %7, %6 | |
store i32 %add, i32* %_length3, align 8, !tbaa !105 | |
%8 = bitcast i32* %len to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %8) #16 | |
ret %class.CStringBase* %this1 | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLEw(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32 signext %c) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%c.addr = alloca i32, align 4 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7 | |
store i32 %c, i32* %c.addr, align 4, !tbaa !107 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
call void @_ZN11CStringBaseIwE10GrowLengthEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 1) | |
%0 = load i32, i32* %c.addr, align 4, !tbaa !107 | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%1 = load i32*, i32** %_chars, align 8, !tbaa !104 | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%2 = load i32, i32* %_length, align 8, !tbaa !105 | |
%idxprom = sext i32 %2 to i64 | |
%arrayidx = getelementptr inbounds i32, i32* %1, i64 %idxprom | |
store i32 %0, i32* %arrayidx, align 4, !tbaa !107 | |
%_chars2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%3 = load i32*, i32** %_chars2, align 8, !tbaa !104 | |
%_length3 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
%4 = load i32, i32* %_length3, align 8, !tbaa !105 | |
%inc = add nsw i32 %4, 1 | |
store i32 %inc, i32* %_length3, align 8, !tbaa !105 | |
%idxprom4 = sext i32 %inc to i64 | |
%arrayidx5 = getelementptr inbounds i32, i32* %3, i64 %idxprom4 | |
store i32 0, i32* %arrayidx5, align 4, !tbaa !107 | |
ret %class.CStringBase* %this1 | |
} | |
; Function Attrs: argmemonly nofree nosync nounwind willreturn | |
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #1 | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local i64 @_ZNK7CBufferIhE11GetCapacityEv(%class.CBuffer* nonnull align 8 dereferenceable(24) %this) #4 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CBuffer*, align 8 | |
store %class.CBuffer* %this, %class.CBuffer** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CBuffer*, %class.CBuffer** %this.addr, align 8 | |
%_capacity = getelementptr inbounds %class.CBuffer, %class.CBuffer* %this1, i32 0, i32 1 | |
%0 = load i64, i64* %_capacity, align 8, !tbaa !109 | |
ret i64 %0 | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local i8* @_ZNK7CBufferIhEcvPKhEv(%class.CBuffer* nonnull align 8 dereferenceable(24) %this) #4 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CBuffer*, align 8 | |
store %class.CBuffer* %this, %class.CBuffer** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CBuffer*, %class.CBuffer** %this.addr, align 8 | |
%_items = getelementptr inbounds %class.CBuffer, %class.CBuffer* %this1, i32 0, i32 2 | |
%0 = load i8*, i8** %_items, align 8, !tbaa !110 | |
ret i8* %0 | |
} | |
; Function Attrs: inlinehint mustprogress nounwind uwtable | |
define internal signext i8 @_ZL6GetHexh(i8 zeroext %value) #9 { | |
entry: | |
%value.addr = alloca i8, align 1 | |
store i8 %value, i8* %value.addr, align 1, !tbaa !40 | |
%0 = load i8, i8* %value.addr, align 1, !tbaa !40 | |
%conv = zext i8 %0 to i32 | |
%cmp = icmp slt i32 %conv, 10 | |
br i1 %cmp, label %cond.true, label %cond.false | |
cond.true: ; preds = %entry | |
%1 = load i8, i8* %value.addr, align 1, !tbaa !40 | |
%conv1 = zext i8 %1 to i32 | |
%add = add nsw i32 48, %conv1 | |
br label %cond.end | |
cond.false: ; preds = %entry | |
%2 = load i8, i8* %value.addr, align 1, !tbaa !40 | |
%conv2 = zext i8 %2 to i32 | |
%sub = sub nsw i32 %conv2, 10 | |
%add3 = add nsw i32 65, %sub | |
br label %cond.end | |
cond.end: ; preds = %cond.false, %cond.true | |
%cond = phi i32 [ %add, %cond.true ], [ %add3, %cond.false ] | |
%conv4 = trunc i32 %cond to i8 | |
ret i8 %conv4 | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) unnamed_addr #8 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%0 = load i32*, i32** %_chars, align 8, !tbaa !104 | |
%isnull = icmp eq i32* %0, null | |
br i1 %isnull, label %delete.end, label %delete.notnull | |
delete.notnull: ; preds = %entry | |
%1 = bitcast i32* %0 to i8* | |
call void @_ZdaPv(i8* %1) #19 | |
br label %delete.end | |
delete.end: ; preds = %delete.notnull, %entry | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local i32 @_ZNK11CStringBaseIwE13CompareNoCaseEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32* %s) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%s.addr = alloca i32*, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7 | |
store i32* %s, i32** %s.addr, align 8, !tbaa !7 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%0 = load i32*, i32** %_chars, align 8, !tbaa !104 | |
%1 = load i32*, i32** %s.addr, align 8, !tbaa !7 | |
%call = call i32 @_Z21MyStringCompareNoCasePKwS0_(i32* %0, i32* %1) | |
ret i32 %call | |
} | |
declare dso_local i32 @_Z11CrcBenchConP8_IO_FILEjjj(%struct._IO_FILE*, i32, i32, i32) #3 | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local %struct._IO_FILE* @_ZN13CStdOutStreamcvP8_IO_FILEEv(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %this) #4 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStdOutStream*, align 8 | |
store %class.CStdOutStream* %this, %class.CStdOutStream** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CStdOutStream*, %class.CStdOutStream** %this.addr, align 8 | |
%_stream = getelementptr inbounds %class.CStdOutStream, %class.CStdOutStream* %this1, i32 0, i32 1 | |
%0 = load %struct._IO_FILE*, %struct._IO_FILE** %_stream, align 8, !tbaa !111 | |
ret %struct._IO_FILE* %0 | |
} | |
declare dso_local i32 @_Z12LzmaBenchConP8_IO_FILEjjj(%struct._IO_FILE*, i32, i32, i32) #3 | |
; Function Attrs: inlinehint uwtable | |
define linkonce_odr dso_local void @_ZN23CExtractCallbackConsoleC2Ev(%class.CExtractCallbackConsole* nonnull align 8 dereferenceable(80) %this) unnamed_addr #6 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CExtractCallbackConsole*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %class.CExtractCallbackConsole* %this, %class.CExtractCallbackConsole** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %this.addr, align 8 | |
%0 = bitcast %class.CExtractCallbackConsole* %this1 to %struct.IExtractCallbackUI* | |
call void @_ZN18IExtractCallbackUIC2Ev(%struct.IExtractCallbackUI* nonnull align 8 dereferenceable(8) %0) #16 | |
%1 = bitcast %class.CExtractCallbackConsole* %this1 to i8* | |
%2 = getelementptr inbounds i8, i8* %1, i64 8 | |
%3 = bitcast i8* %2 to %struct.ICryptoGetTextPassword* | |
call void @_ZN22ICryptoGetTextPasswordC2Ev(%struct.ICryptoGetTextPassword* nonnull align 8 dereferenceable(8) %3) #16 | |
%4 = bitcast %class.CExtractCallbackConsole* %this1 to i8* | |
%5 = getelementptr inbounds i8, i8* %4, i64 16 | |
%6 = bitcast i8* %5 to %class.CMyUnknownImp* | |
call void @_ZN13CMyUnknownImpC2Ev(%class.CMyUnknownImp* nonnull align 4 dereferenceable(4) %6) | |
%7 = bitcast %class.CExtractCallbackConsole* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [19 x i8*], [8 x i8*] }, { [19 x i8*], [8 x i8*] }* @_ZTV23CExtractCallbackConsole, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %7, align 8, !tbaa !93 | |
%8 = bitcast %class.CExtractCallbackConsole* %this1 to i8* | |
%add.ptr = getelementptr inbounds i8, i8* %8, i64 8 | |
%9 = bitcast i8* %add.ptr to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [19 x i8*], [8 x i8*] }, { [19 x i8*], [8 x i8*] }* @_ZTV23CExtractCallbackConsole, i32 0, inrange i32 1, i32 2) to i32 (...)**), i32 (...)*** %9, align 8, !tbaa !93 | |
%Password = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %this1, i32 0, i32 4 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
ret void | |
lpad: ; preds = %entry | |
%10 = landingpad { i8*, i32 } | |
cleanup | |
%11 = extractvalue { i8*, i32 } %10, 0 | |
store i8* %11, i8** %exn.slot, align 8 | |
%12 = extractvalue { i8*, i32 } %10, 1 | |
store i32 %12, i32* %ehselector.slot, align 4 | |
%13 = bitcast %class.CExtractCallbackConsole* %this1 to i8* | |
%14 = getelementptr inbounds i8, i8* %13, i64 8 | |
%15 = bitcast i8* %14 to %struct.ICryptoGetTextPassword* | |
call void bitcast (void (%struct.IUnknown*)* @_ZN8IUnknownD2Ev to void (%struct.ICryptoGetTextPassword*)*)(%struct.ICryptoGetTextPassword* nonnull align 8 dereferenceable(8) %15) #16 | |
%16 = bitcast %class.CExtractCallbackConsole* %this1 to %struct.IExtractCallbackUI* | |
call void bitcast (void (%struct.IUnknown*)* @_ZN8IUnknownD2Ev to void (%struct.IExtractCallbackUI*)*)(%struct.IExtractCallbackUI* nonnull align 8 dereferenceable(8) %16) #16 | |
br label %eh.resume | |
eh.resume: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val2 | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN9CMyComPtrI29IFolderArchiveExtractCallbackEC2EPS0_(%class.CMyComPtr.7* nonnull align 8 dereferenceable(8) %this, %struct.IFolderArchiveExtractCallback* %p) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CMyComPtr.7*, align 8 | |
%p.addr = alloca %struct.IFolderArchiveExtractCallback*, align 8 | |
store %class.CMyComPtr.7* %this, %class.CMyComPtr.7** %this.addr, align 8, !tbaa !7 | |
store %struct.IFolderArchiveExtractCallback* %p, %struct.IFolderArchiveExtractCallback** %p.addr, align 8, !tbaa !7 | |
%this1 = load %class.CMyComPtr.7*, %class.CMyComPtr.7** %this.addr, align 8 | |
%0 = load %struct.IFolderArchiveExtractCallback*, %struct.IFolderArchiveExtractCallback** %p.addr, align 8, !tbaa !7 | |
%_p = getelementptr inbounds %class.CMyComPtr.7, %class.CMyComPtr.7* %this1, i32 0, i32 0 | |
store %struct.IFolderArchiveExtractCallback* %0, %struct.IFolderArchiveExtractCallback** %_p, align 8, !tbaa !113 | |
%cmp = icmp ne %struct.IFolderArchiveExtractCallback* %0, null | |
br i1 %cmp, label %if.then, label %if.end | |
if.then: ; preds = %entry | |
%1 = load %struct.IFolderArchiveExtractCallback*, %struct.IFolderArchiveExtractCallback** %p.addr, align 8, !tbaa !7 | |
%2 = bitcast %struct.IFolderArchiveExtractCallback* %1 to %struct.IUnknown* | |
%3 = bitcast %struct.IUnknown* %2 to i32 (%struct.IUnknown*)*** | |
%vtable = load i32 (%struct.IUnknown*)**, i32 (%struct.IUnknown*)*** %3, align 8, !tbaa !93 | |
%vfn = getelementptr inbounds i32 (%struct.IUnknown*)*, i32 (%struct.IUnknown*)** %vtable, i64 1 | |
%4 = load i32 (%struct.IUnknown*)*, i32 (%struct.IUnknown*)** %vfn, align 8 | |
%call = call i32 %4(%struct.IUnknown* nonnull align 8 dereferenceable(8) %2) | |
br label %if.end | |
if.end: ; preds = %if.then, %entry | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, %class.CStringBase* nonnull align 8 dereferenceable(16) %s) #0 comdat align 2 { | |
entry: | |
%retval = alloca %class.CStringBase*, align 8 | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%s.addr = alloca %class.CStringBase*, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7 | |
store %class.CStringBase* %s, %class.CStringBase** %s.addr, align 8, !tbaa !7 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%0 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !7 | |
%cmp = icmp eq %class.CStringBase* %0, %this1 | |
br i1 %cmp, label %if.then, label %if.end | |
if.then: ; preds = %entry | |
store %class.CStringBase* %this1, %class.CStringBase** %retval, align 8 | |
br label %return | |
if.end: ; preds = %entry | |
call void @_ZN11CStringBaseIwE5EmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1) | |
%1 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !7 | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %1, i32 0, i32 1 | |
%2 = load i32, i32* %_length, align 8, !tbaa !105 | |
call void @_ZN11CStringBaseIwE11SetCapacityEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 %2) | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%3 = load i32*, i32** %_chars, align 8, !tbaa !104 | |
%4 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !7 | |
%_chars2 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %4, i32 0, i32 0 | |
%5 = load i32*, i32** %_chars2, align 8, !tbaa !104 | |
%call = call i32* @_Z12MyStringCopyIwEPT_S1_PKS0_(i32* %3, i32* %5) | |
%6 = load %class.CStringBase*, %class.CStringBase** %s.addr, align 8, !tbaa !7 | |
%_length3 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %6, i32 0, i32 1 | |
%7 = load i32, i32* %_length3, align 8, !tbaa !105 | |
%_length4 = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
store i32 %7, i32* %_length4, align 8, !tbaa !105 | |
store %class.CStringBase* %this1, %class.CStringBase** %retval, align 8 | |
br label %return | |
return: ; preds = %if.end, %if.then | |
%8 = load %class.CStringBase*, %class.CStringBase** %retval, align 8 | |
ret %class.CStringBase* %8 | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local void @_ZN23CExtractCallbackConsole4InitEv(%class.CExtractCallbackConsole* nonnull align 8 dereferenceable(80) %this) #4 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CExtractCallbackConsole*, align 8 | |
store %class.CExtractCallbackConsole* %this, %class.CExtractCallbackConsole** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CExtractCallbackConsole*, %class.CExtractCallbackConsole** %this.addr, align 8 | |
%NumArchives = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %this1, i32 0, i32 5 | |
store i64 0, i64* %NumArchives, align 8, !tbaa !67 | |
%NumArchiveErrors = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %this1, i32 0, i32 6 | |
store i64 0, i64* %NumArchiveErrors, align 8, !tbaa !68 | |
%NumFileErrors = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %this1, i32 0, i32 7 | |
store i64 0, i64* %NumFileErrors, align 8, !tbaa !69 | |
%NumFileErrorsInCurrentArchive = getelementptr inbounds %class.CExtractCallbackConsole, %class.CExtractCallbackConsole* %this1, i32 0, i32 8 | |
store i64 0, i64* %NumFileErrorsInCurrentArchive, align 8, !tbaa !115 | |
ret void | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN20COpenCallbackConsoleC2Ev(%class.COpenCallbackConsole* nonnull align 8 dereferenceable(40) %this) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.COpenCallbackConsole*, align 8 | |
store %class.COpenCallbackConsole* %this, %class.COpenCallbackConsole** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.COpenCallbackConsole*, %class.COpenCallbackConsole** %this.addr, align 8 | |
%0 = bitcast %class.COpenCallbackConsole* %this1 to %struct.IOpenCallbackUI* | |
call void @_ZN15IOpenCallbackUIC2Ev(%struct.IOpenCallbackUI* nonnull align 8 dereferenceable(8) %0) #16 | |
%1 = bitcast %class.COpenCallbackConsole* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [9 x i8*] }, { [9 x i8*] }* @_ZTV20COpenCallbackConsole, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !93 | |
%PasswordIsDefined = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %this1, i32 0, i32 2 | |
store i8 0, i8* %PasswordIsDefined, align 8, !tbaa !53 | |
%PasswordWasAsked = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %this1, i32 0, i32 3 | |
store i8 0, i8* %PasswordWasAsked, align 1, !tbaa !116 | |
%Password = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %this1, i32 0, i32 4 | |
call void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password) | |
ret void | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN15CExtractOptionsC2Ev(%struct.CExtractOptions* nonnull align 8 dereferenceable(64) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %struct.CExtractOptions*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %struct.CExtractOptions* %this, %struct.CExtractOptions** %this.addr, align 8, !tbaa !7 | |
%this1 = load %struct.CExtractOptions*, %struct.CExtractOptions** %this.addr, align 8 | |
%StdInMode = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 0 | |
store i8 0, i8* %StdInMode, align 8, !tbaa !55 | |
%StdOutMode = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 1 | |
store i8 0, i8* %StdOutMode, align 1, !tbaa !58 | |
%YesToAll = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 2 | |
store i8 0, i8* %YesToAll, align 2, !tbaa !64 | |
%TestMode = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 3 | |
store i8 0, i8* %TestMode, align 1, !tbaa !60 | |
%CalcCrc = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 4 | |
store i8 0, i8* %CalcCrc, align 4, !tbaa !66 | |
%PathMode = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 5 | |
store i32 0, i32* %PathMode, align 8, !tbaa !59 | |
%OverwriteMode = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 6 | |
store i32 0, i32* %OverwriteMode, align 4, !tbaa !62 | |
%OutputDir = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 7 | |
call void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir) | |
%Properties = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 8 | |
invoke void @_ZN13CObjectVectorI9CPropertyEC2Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %Properties) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
ret void | |
lpad: ; preds = %entry | |
%0 = landingpad { i8*, i32 } | |
cleanup | |
%1 = extractvalue { i8*, i32 } %0, 0 | |
store i8* %1, i8** %exn.slot, align 8 | |
%2 = extractvalue { i8*, i32 } %0, 1 | |
store i32 %2, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir) #16 | |
br label %eh.resume | |
eh.resume: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val2 | |
} | |
declare dso_local i32 @_ZNK15CArchiveCommand11GetPathModeEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4)) #3 | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local zeroext i1 @_ZNK15CArchiveCommand10IsTestModeEv(%struct.CArchiveCommand* nonnull align 4 dereferenceable(4) %this) #4 comdat align 2 { | |
entry: | |
%this.addr = alloca %struct.CArchiveCommand*, align 8 | |
store %struct.CArchiveCommand* %this, %struct.CArchiveCommand** %this.addr, align 8, !tbaa !7 | |
%this1 = load %struct.CArchiveCommand*, %struct.CArchiveCommand** %this.addr, align 8 | |
%CommandType = getelementptr inbounds %struct.CArchiveCommand, %struct.CArchiveCommand* %this1, i32 0, i32 0 | |
%0 = load i32, i32* %CommandType, align 4, !tbaa !117 | |
%cmp = icmp eq i32 %0, 3 | |
ret i1 %cmp | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(32) %class.CObjectVector.1* @_ZN13CObjectVectorI9CPropertyEaSERKS1_(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %this, %class.CObjectVector.1* nonnull align 8 dereferenceable(32) %v) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.1*, align 8 | |
%v.addr = alloca %class.CObjectVector.1*, align 8 | |
store %class.CObjectVector.1* %this, %class.CObjectVector.1** %this.addr, align 8, !tbaa !7 | |
store %class.CObjectVector.1* %v, %class.CObjectVector.1** %v.addr, align 8, !tbaa !7 | |
%this1 = load %class.CObjectVector.1*, %class.CObjectVector.1** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.1* %this1 to %class.CBaseRecordVector* | |
call void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0) | |
%1 = load %class.CObjectVector.1*, %class.CObjectVector.1** %v.addr, align 8, !tbaa !7 | |
%call = call nonnull align 8 dereferenceable(32) %class.CObjectVector.1* @_ZN13CObjectVectorI9CPropertyEpLERKS1_(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %this1, %class.CObjectVector.1* nonnull align 8 dereferenceable(32) %1) | |
ret %class.CObjectVector.1* %call | |
} | |
declare dso_local i32 @_Z18DecompressArchivesP7CCodecsRK13CRecordVectorIiER13CObjectVectorI11CStringBaseIwEES9_RKN9NWildcard11CCensorNodeERK15CExtractOptionsP15IOpenCallbackUIP18IExtractCallbackUIRS7_R15CDecompressStat(%class.CCodecs*, %class.CRecordVector.5* nonnull align 8 dereferenceable(32), %class.CObjectVector* nonnull align 8 dereferenceable(32), %class.CObjectVector* nonnull align 8 dereferenceable(32), %"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120), %struct.CExtractOptions* nonnull align 8 dereferenceable(64), %struct.IOpenCallbackUI*, %struct.IExtractCallbackUI*, %class.CStringBase* nonnull align 8 dereferenceable(16), %struct.CDecompressStat* nonnull align 8 dereferenceable(48)) #3 | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(136) %"struct.NWildcard::CPair"* @_ZN13CObjectVectorIN9NWildcard5CPairEE5FrontEv(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.0*, align 8 | |
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8 | |
%call = call nonnull align 8 dereferenceable(136) %"struct.NWildcard::CPair"* @_ZN13CObjectVectorIN9NWildcard5CPairEEixEi(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this1, i32 0) | |
ret %"struct.NWildcard::CPair"* %call | |
} | |
declare dso_local nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKw(%class.CStdOutStream* nonnull align 8 dereferenceable(16), i32*) #3 | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local i32* @_ZNK11CStringBaseIwEcvPKwEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this) #4 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%0 = load i32*, i32** %_chars, align 8, !tbaa !104 | |
ret i32* %0 | |
} | |
declare dso_local nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEy(%class.CStdOutStream* nonnull align 8 dereferenceable(16), i64) #3 | |
declare dso_local void @_Z27ConvertUInt32ToHexWithZerosjPc(i32, i8*) #3 | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN15CExtractOptionsD2Ev(%struct.CExtractOptions* nonnull align 8 dereferenceable(64) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %struct.CExtractOptions*, align 8 | |
store %struct.CExtractOptions* %this, %struct.CExtractOptions** %this.addr, align 8, !tbaa !7 | |
%this1 = load %struct.CExtractOptions*, %struct.CExtractOptions** %this.addr, align 8 | |
%Properties = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 8 | |
call void @_ZN13CObjectVectorI9CPropertyED2Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %Properties) #16 | |
%OutputDir = getelementptr inbounds %struct.CExtractOptions, %struct.CExtractOptions* %this1, i32 0, i32 7 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir) #16 | |
ret void | |
} | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN20COpenCallbackConsoleD2Ev(%class.COpenCallbackConsole* nonnull align 8 dereferenceable(40) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.COpenCallbackConsole*, align 8 | |
store %class.COpenCallbackConsole* %this, %class.COpenCallbackConsole** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.COpenCallbackConsole*, %class.COpenCallbackConsole** %this.addr, align 8 | |
%0 = bitcast %class.COpenCallbackConsole* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [9 x i8*] }, { [9 x i8*] }* @_ZTV20COpenCallbackConsole, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !93 | |
%Password = getelementptr inbounds %class.COpenCallbackConsole, %class.COpenCallbackConsole* %this1, i32 0, i32 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password) #16 | |
ret void | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN9CMyComPtrI29IFolderArchiveExtractCallbackED2Ev(%class.CMyComPtr.7* nonnull align 8 dereferenceable(8) %this) unnamed_addr #8 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CMyComPtr.7*, align 8 | |
store %class.CMyComPtr.7* %this, %class.CMyComPtr.7** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CMyComPtr.7*, %class.CMyComPtr.7** %this.addr, align 8 | |
%_p = getelementptr inbounds %class.CMyComPtr.7, %class.CMyComPtr.7* %this1, i32 0, i32 0 | |
%0 = load %struct.IFolderArchiveExtractCallback*, %struct.IFolderArchiveExtractCallback** %_p, align 8, !tbaa !113 | |
%tobool = icmp ne %struct.IFolderArchiveExtractCallback* %0, null | |
br i1 %tobool, label %if.then, label %if.end | |
if.then: ; preds = %entry | |
%_p2 = getelementptr inbounds %class.CMyComPtr.7, %class.CMyComPtr.7* %this1, i32 0, i32 0 | |
%1 = load %struct.IFolderArchiveExtractCallback*, %struct.IFolderArchiveExtractCallback** %_p2, align 8, !tbaa !113 | |
%2 = bitcast %struct.IFolderArchiveExtractCallback* %1 to %struct.IUnknown* | |
%3 = bitcast %struct.IUnknown* %2 to i32 (%struct.IUnknown*)*** | |
%vtable = load i32 (%struct.IUnknown*)**, i32 (%struct.IUnknown*)*** %3, align 8, !tbaa !93 | |
%vfn = getelementptr inbounds i32 (%struct.IUnknown*)*, i32 (%struct.IUnknown*)** %vtable, i64 2 | |
%4 = load i32 (%struct.IUnknown*)*, i32 (%struct.IUnknown*)** %vfn, align 8 | |
%call = invoke i32 %4(%struct.IUnknown* nonnull align 8 dereferenceable(8) %2) | |
to label %invoke.cont unwind label %terminate.lpad | |
invoke.cont: ; preds = %if.then | |
br label %if.end | |
if.end: ; preds = %invoke.cont, %entry | |
ret void | |
terminate.lpad: ; preds = %if.then | |
%5 = landingpad { i8*, i32 } | |
catch i8* null | |
%6 = extractvalue { i8*, i32 } %5, 0 | |
call void @__clang_call_terminate(i8* %6) #20 | |
unreachable | |
} | |
declare dso_local i32 @_Z12ListArchivesP7CCodecsRK13CRecordVectorIiEbR13CObjectVectorI11CStringBaseIwEES9_RKN9NWildcard11CCensorNodeEbbRbRS7_Ry(%class.CCodecs*, %class.CRecordVector.5* nonnull align 8 dereferenceable(32), i1 zeroext, %class.CObjectVector* nonnull align 8 dereferenceable(32), %class.CObjectVector* nonnull align 8 dereferenceable(32), %"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120), i1 zeroext, i1 zeroext, i8* nonnull align 1 dereferenceable(1), %class.CStringBase* nonnull align 8 dereferenceable(16), i64* nonnull align 8 dereferenceable(8)) #3 | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEaSEPKw(%class.CStringBase* nonnull align 8 dereferenceable(16) %this, i32* %chars) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CStringBase*, align 8 | |
%chars.addr = alloca i32*, align 8 | |
%length = alloca i32, align 4 | |
store %class.CStringBase* %this, %class.CStringBase** %this.addr, align 8, !tbaa !7 | |
store i32* %chars, i32** %chars.addr, align 8, !tbaa !7 | |
%this1 = load %class.CStringBase*, %class.CStringBase** %this.addr, align 8 | |
call void @_ZN11CStringBaseIwE5EmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1) | |
%0 = bitcast i32* %length to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #16 | |
%1 = load i32*, i32** %chars.addr, align 8, !tbaa !7 | |
%call = call i32 @_Z11MyStringLenIwEiPKT_(i32* %1) | |
store i32 %call, i32* %length, align 4, !tbaa !3 | |
%2 = load i32, i32* %length, align 4, !tbaa !3 | |
call void @_ZN11CStringBaseIwE11SetCapacityEi(%class.CStringBase* nonnull align 8 dereferenceable(16) %this1, i32 %2) | |
%_chars = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 0 | |
%3 = load i32*, i32** %_chars, align 8, !tbaa !104 | |
%4 = load i32*, i32** %chars.addr, align 8, !tbaa !7 | |
%call2 = call i32* @_Z12MyStringCopyIwEPT_S1_PKS0_(i32* %3, i32* %4) | |
%5 = load i32, i32* %length, align 4, !tbaa !3 | |
%_length = getelementptr inbounds %class.CStringBase, %class.CStringBase* %this1, i32 0, i32 1 | |
store i32 %5, i32* %_length, align 8, !tbaa !105 | |
%6 = bitcast i32* %length to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %6) #16 | |
ret %class.CStringBase* %this1 | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN22CUpdateCallbackConsoleC2Ev(%class.CUpdateCallbackConsole* nonnull align 8 dereferenceable(232) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CUpdateCallbackConsole*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %class.CUpdateCallbackConsole* %this, %class.CUpdateCallbackConsole** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CUpdateCallbackConsole*, %class.CUpdateCallbackConsole** %this.addr, align 8 | |
%0 = bitcast %class.CUpdateCallbackConsole* %this1 to %struct.IUpdateCallbackUI2* | |
call void @_ZN18IUpdateCallbackUI2C2Ev(%struct.IUpdateCallbackUI2* nonnull align 8 dereferenceable(8) %0) #16 | |
%1 = bitcast %class.CUpdateCallbackConsole* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [20 x i8*] }, { [20 x i8*] }* @_ZTV22CUpdateCallbackConsole, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !93 | |
%m_PercentPrinter = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 1 | |
call void @_ZN15CPercentPrinterC2Ey(%class.CPercentPrinter* nonnull align 8 dereferenceable(48) %m_PercentPrinter, i64 65536) | |
%m_WarningsMode = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 4 | |
store i8 0, i8* %m_WarningsMode, align 2, !tbaa !118 | |
%EnablePercents = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 6 | |
store i8 1, i8* %EnablePercents, align 8, !tbaa !80 | |
%StdOutMode = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 7 | |
store i8 0, i8* %StdOutMode, align 1, !tbaa !87 | |
%PasswordIsDefined = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 8 | |
store i8 0, i8* %PasswordIsDefined, align 2, !tbaa !84 | |
%Password = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 9 | |
call void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password) | |
%AskPassword = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 10 | |
store i8 0, i8* %AskPassword, align 8, !tbaa !85 | |
%FailedFiles = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 11 | |
invoke void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %FailedFiles) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%FailedCodes = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 12 | |
invoke void @_ZN13CRecordVectorIiEC2Ev(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %FailedCodes) | |
to label %invoke.cont3 unwind label %lpad2 | |
invoke.cont3: ; preds = %invoke.cont | |
%CantFindFiles = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 13 | |
invoke void @_ZN13CObjectVectorI11CStringBaseIwEEC2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %CantFindFiles) | |
to label %invoke.cont5 unwind label %lpad4 | |
invoke.cont5: ; preds = %invoke.cont3 | |
%CantFindCodes = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 14 | |
invoke void @_ZN13CRecordVectorIiEC2Ev(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %CantFindCodes) | |
to label %invoke.cont7 unwind label %lpad6 | |
invoke.cont7: ; preds = %invoke.cont5 | |
ret void | |
lpad: ; preds = %entry | |
%2 = landingpad { i8*, i32 } | |
cleanup | |
%3 = extractvalue { i8*, i32 } %2, 0 | |
store i8* %3, i8** %exn.slot, align 8 | |
%4 = extractvalue { i8*, i32 } %2, 1 | |
store i32 %4, i32* %ehselector.slot, align 4 | |
br label %ehcleanup9 | |
lpad2: ; preds = %invoke.cont | |
%5 = landingpad { i8*, i32 } | |
cleanup | |
%6 = extractvalue { i8*, i32 } %5, 0 | |
store i8* %6, i8** %exn.slot, align 8 | |
%7 = extractvalue { i8*, i32 } %5, 1 | |
store i32 %7, i32* %ehselector.slot, align 4 | |
br label %ehcleanup8 | |
lpad4: ; preds = %invoke.cont3 | |
%8 = landingpad { i8*, i32 } | |
cleanup | |
%9 = extractvalue { i8*, i32 } %8, 0 | |
store i8* %9, i8** %exn.slot, align 8 | |
%10 = extractvalue { i8*, i32 } %8, 1 | |
store i32 %10, i32* %ehselector.slot, align 4 | |
br label %ehcleanup | |
lpad6: ; preds = %invoke.cont5 | |
%11 = landingpad { i8*, i32 } | |
cleanup | |
%12 = extractvalue { i8*, i32 } %11, 0 | |
store i8* %12, i8** %exn.slot, align 8 | |
%13 = extractvalue { i8*, i32 } %11, 1 | |
store i32 %13, i32* %ehselector.slot, align 4 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %CantFindFiles) #16 | |
br label %ehcleanup | |
ehcleanup: ; preds = %lpad6, %lpad4 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.5*)*)(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %FailedCodes) #16 | |
br label %ehcleanup8 | |
ehcleanup8: ; preds = %ehcleanup, %lpad2 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %FailedFiles) #16 | |
br label %ehcleanup9 | |
ehcleanup9: ; preds = %ehcleanup8, %lpad | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password) #16 | |
br label %eh.resume | |
eh.resume: ; preds = %ehcleanup9 | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val10 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val10 | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local void @_ZN22CUpdateCallbackConsole4InitEP13CStdOutStream(%class.CUpdateCallbackConsole* nonnull align 8 dereferenceable(232) %this, %class.CStdOutStream* %outStream) #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CUpdateCallbackConsole*, align 8 | |
%outStream.addr = alloca %class.CStdOutStream*, align 8 | |
store %class.CUpdateCallbackConsole* %this, %class.CUpdateCallbackConsole** %this.addr, align 8, !tbaa !7 | |
store %class.CStdOutStream* %outStream, %class.CStdOutStream** %outStream.addr, align 8, !tbaa !7 | |
%this1 = load %class.CUpdateCallbackConsole*, %class.CUpdateCallbackConsole** %this.addr, align 8 | |
%m_NeedBeClosed = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 2 | |
store i8 0, i8* %m_NeedBeClosed, align 8, !tbaa !119 | |
%m_NeedNewLine = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 3 | |
store i8 0, i8* %m_NeedNewLine, align 1, !tbaa !120 | |
%FailedFiles = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 11 | |
%0 = bitcast %class.CObjectVector* %FailedFiles to %class.CBaseRecordVector* | |
call void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0) | |
%FailedCodes = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 12 | |
%1 = bitcast %class.CRecordVector.5* %FailedCodes to %class.CBaseRecordVector* | |
call void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1) | |
%2 = load %class.CStdOutStream*, %class.CStdOutStream** %outStream.addr, align 8, !tbaa !7 | |
%OutStream = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 5 | |
store %class.CStdOutStream* %2, %class.CStdOutStream** %OutStream, align 8, !tbaa !121 | |
%3 = load %class.CStdOutStream*, %class.CStdOutStream** %outStream.addr, align 8, !tbaa !7 | |
%m_PercentPrinter = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 1 | |
%OutStream2 = getelementptr inbounds %class.CPercentPrinter, %class.CPercentPrinter* %m_PercentPrinter, i32 0, i32 5 | |
store %class.CStdOutStream* %3, %class.CStdOutStream** %OutStream2, align 8, !tbaa !122 | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define linkonce_odr dso_local void @_ZN16CUpdateErrorInfoC2Ev(%struct.CUpdateErrorInfo* nonnull align 8 dereferenceable(56) %this) unnamed_addr #6 comdat align 2 { | |
entry: | |
%this.addr = alloca %struct.CUpdateErrorInfo*, align 8 | |
store %struct.CUpdateErrorInfo* %this, %struct.CUpdateErrorInfo** %this.addr, align 8, !tbaa !7 | |
%this1 = load %struct.CUpdateErrorInfo*, %struct.CUpdateErrorInfo** %this.addr, align 8 | |
%0 = bitcast %struct.CUpdateErrorInfo* %this1 to %struct.CErrorInfo* | |
call void @_ZN10CErrorInfoC2Ev(%struct.CErrorInfo* nonnull align 8 dereferenceable(56) %0) | |
ret void | |
} | |
declare dso_local zeroext i1 @_ZN14CUpdateOptions4InitEPK7CCodecsRK13CRecordVectorIiERK11CStringBaseIwE(%struct.CUpdateOptions* nonnull align 8 dereferenceable(320), %class.CCodecs*, %class.CRecordVector.5* nonnull align 8 dereferenceable(32), %class.CStringBase* nonnull align 8 dereferenceable(16)) #3 | |
declare dso_local i32 @_Z13UpdateArchiveP7CCodecsRKN9NWildcard7CCensorER14CUpdateOptionsR16CUpdateErrorInfoP15IOpenCallbackUIP18IUpdateCallbackUI2(%class.CCodecs*, %"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32), %struct.CUpdateOptions* nonnull align 8 dereferenceable(320), %struct.CUpdateErrorInfo* nonnull align 8 dereferenceable(56), %struct.IOpenCallbackUI*, %struct.IUpdateCallbackUI2*) #3 | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(164) %struct.CUpdateArchiveCommand* @_ZN13CObjectVectorI21CUpdateArchiveCommandEixEi(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %this, i32 %index) #4 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.2*, align 8 | |
%index.addr = alloca i32, align 4 | |
store %class.CObjectVector.2* %this, %class.CObjectVector.2** %this.addr, align 8, !tbaa !7 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !3 | |
%this1 = load %class.CObjectVector.2*, %class.CObjectVector.2** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.2* %this1 to %class.CRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
%call = call nonnull align 8 dereferenceable(8) i8** @_ZN13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1) | |
%2 = load i8*, i8** %call, align 8, !tbaa !7 | |
%3 = bitcast i8* %2 to %struct.CUpdateArchiveCommand* | |
ret %struct.CUpdateArchiveCommand* %3 | |
} | |
declare dso_local void @_Z12myAddExeFlagRK11CStringBaseIwE(%class.CStringBase* nonnull align 8 dereferenceable(16)) #3 | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local void @_ZNK12CArchivePath12GetFinalPathEv(%class.CStringBase* noalias sret(%class.CStringBase) align 8 %agg.result, %struct.CArchivePath* nonnull align 8 dereferenceable(120) %this) #0 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%result.ptr = alloca i8*, align 8 | |
%this.addr = alloca %struct.CArchivePath*, align 8 | |
%nrvo = alloca i1, align 1 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
%ref.tmp = alloca %class.CStringBase, align 8 | |
%ref.tmp2 = alloca %class.CStringBase, align 8 | |
%0 = bitcast %class.CStringBase* %agg.result to i8* | |
store i8* %0, i8** %result.ptr, align 8 | |
store %struct.CArchivePath* %this, %struct.CArchivePath** %this.addr, align 8, !tbaa !7 | |
%this1 = load %struct.CArchivePath*, %struct.CArchivePath** %this.addr, align 8 | |
store i1 false, i1* %nrvo, align 1 | |
call void @_ZNK12CArchivePath17GetPathWithoutExtEv(%class.CStringBase* sret(%class.CStringBase) align 8 %agg.result, %struct.CArchivePath* nonnull align 8 dereferenceable(120) %this1) | |
%BaseExtension = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 3 | |
%call = invoke zeroext i1 @_ZNK11CStringBaseIwE7IsEmptyEv(%class.CStringBase* nonnull align 8 dereferenceable(16) %BaseExtension) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
br i1 %call, label %if.end, label %if.then | |
if.then: ; preds = %invoke.cont | |
%1 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %1) #16 | |
%2 = bitcast %class.CStringBase* %ref.tmp2 to i8* | |
call void @llvm.lifetime.start.p0i8(i64 16, i8* %2) #16 | |
invoke void @_ZN11CStringBaseIwEC2Ew(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp2, i32 signext 46) | |
to label %invoke.cont4 unwind label %lpad3 | |
invoke.cont4: ; preds = %if.then | |
%BaseExtension5 = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 3 | |
invoke void @_ZplIwE11CStringBaseIT_ERKS2_S4_(%class.CStringBase* sret(%class.CStringBase) align 8 %ref.tmp, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp2, %class.CStringBase* nonnull align 8 dereferenceable(16) %BaseExtension5) | |
to label %invoke.cont7 unwind label %lpad6 | |
invoke.cont7: ; preds = %invoke.cont4 | |
%call10 = invoke nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN11CStringBaseIwEpLERKS0_(%class.CStringBase* nonnull align 8 dereferenceable(16) %agg.result, %class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) | |
to label %invoke.cont9 unwind label %lpad8 | |
invoke.cont9: ; preds = %invoke.cont7 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #16 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp2) #16 | |
%3 = bitcast %class.CStringBase* %ref.tmp2 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %3) #16 | |
%4 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %4) #16 | |
br label %if.end | |
lpad: ; preds = %entry | |
%5 = landingpad { i8*, i32 } | |
cleanup | |
%6 = extractvalue { i8*, i32 } %5, 0 | |
store i8* %6, i8** %exn.slot, align 8 | |
%7 = extractvalue { i8*, i32 } %5, 1 | |
store i32 %7, i32* %ehselector.slot, align 4 | |
br label %ehcleanup13 | |
lpad3: ; preds = %if.then | |
%8 = landingpad { i8*, i32 } | |
cleanup | |
%9 = extractvalue { i8*, i32 } %8, 0 | |
store i8* %9, i8** %exn.slot, align 8 | |
%10 = extractvalue { i8*, i32 } %8, 1 | |
store i32 %10, i32* %ehselector.slot, align 4 | |
br label %ehcleanup11 | |
lpad6: ; preds = %invoke.cont4 | |
%11 = landingpad { i8*, i32 } | |
cleanup | |
%12 = extractvalue { i8*, i32 } %11, 0 | |
store i8* %12, i8** %exn.slot, align 8 | |
%13 = extractvalue { i8*, i32 } %11, 1 | |
store i32 %13, i32* %ehselector.slot, align 4 | |
br label %ehcleanup | |
lpad8: ; preds = %invoke.cont7 | |
%14 = landingpad { i8*, i32 } | |
cleanup | |
%15 = extractvalue { i8*, i32 } %14, 0 | |
store i8* %15, i8** %exn.slot, align 8 | |
%16 = extractvalue { i8*, i32 } %14, 1 | |
store i32 %16, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp) #16 | |
br label %ehcleanup | |
ehcleanup: ; preds = %lpad8, %lpad6 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ref.tmp2) #16 | |
br label %ehcleanup11 | |
ehcleanup11: ; preds = %ehcleanup, %lpad3 | |
%17 = bitcast %class.CStringBase* %ref.tmp2 to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %17) #16 | |
%18 = bitcast %class.CStringBase* %ref.tmp to i8* | |
call void @llvm.lifetime.end.p0i8(i64 16, i8* %18) #16 | |
br label %ehcleanup13 | |
if.end: ; preds = %invoke.cont9, %invoke.cont | |
store i1 true, i1* %nrvo, align 1 | |
%nrvo.val = load i1, i1* %nrvo, align 1 | |
br i1 %nrvo.val, label %nrvo.skipdtor, label %nrvo.unused | |
nrvo.unused: ; preds = %if.end | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %agg.result) #16 | |
br label %nrvo.skipdtor | |
nrvo.skipdtor: ; preds = %nrvo.unused, %if.end | |
ret void | |
ehcleanup13: ; preds = %ehcleanup11, %lpad | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %agg.result) #16 | |
br label %eh.resume | |
eh.resume: ; preds = %ehcleanup13 | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val14 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val14 | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local nonnull align 8 dereferenceable(16) %class.CStringBase* @_ZN13CObjectVectorI11CStringBaseIwEEixEi(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this, i32 %index) #4 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector*, align 8 | |
%index.addr = alloca i32, align 4 | |
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !7 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !3 | |
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
%call = call nonnull align 8 dereferenceable(8) i8** @_ZN13CRecordVectorIPvEixEi(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1) | |
%2 = load i8*, i8** %call, align 8, !tbaa !7 | |
%3 = bitcast i8* %2 to %class.CStringBase* | |
ret %class.CStringBase* %3 | |
} | |
; Function Attrs: inlinehint mustprogress uwtable | |
define linkonce_odr dso_local void @_ZN8NWindows6NError16MyFormatMessageWEj(%class.CStringBase* noalias sret(%class.CStringBase) align 8 %agg.result, i32 %messageID) #11 comdat { | |
entry: | |
%result.ptr = alloca i8*, align 8 | |
%messageID.addr = alloca i32, align 4 | |
%0 = bitcast %class.CStringBase* %agg.result to i8* | |
store i8* %0, i8** %result.ptr, align 8 | |
store i32 %messageID, i32* %messageID.addr, align 4, !tbaa !3 | |
%1 = load i32, i32* %messageID.addr, align 4, !tbaa !3 | |
call void @_ZN8NWindows6NError15MyFormatMessageEj(%class.CStringBase* sret(%class.CStringBase) align 8 %agg.result, i32 %1) | |
ret void | |
} | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local nonnull align 4 dereferenceable(4) i32* @_ZN13CRecordVectorIiEixEi(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %this, i32 %index) #4 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CRecordVector.5*, align 8 | |
%index.addr = alloca i32, align 4 | |
store %class.CRecordVector.5* %this, %class.CRecordVector.5** %this.addr, align 8, !tbaa !7 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !3 | |
%this1 = load %class.CRecordVector.5*, %class.CRecordVector.5** %this.addr, align 8 | |
%0 = bitcast %class.CRecordVector.5* %this1 to %class.CBaseRecordVector* | |
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %0, i32 0, i32 3 | |
%1 = load i8*, i8** %_items, align 8, !tbaa !97 | |
%2 = bitcast i8* %1 to i32* | |
%3 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
%idxprom = sext i32 %3 to i64 | |
%arrayidx = getelementptr inbounds i32, i32* %2, i64 %idxprom | |
ret i32* %arrayidx | |
} | |
declare dso_local nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEi(%class.CStdOutStream* nonnull align 8 dereferenceable(16), i32) #3 | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN10CErrorInfoD2Ev(%struct.CErrorInfo* nonnull align 8 dereferenceable(56) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %struct.CErrorInfo*, align 8 | |
store %struct.CErrorInfo* %this, %struct.CErrorInfo** %this.addr, align 8, !tbaa !7 | |
%this1 = load %struct.CErrorInfo*, %struct.CErrorInfo** %this.addr, align 8 | |
%Message = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %this1, i32 0, i32 3 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Message) #16 | |
%FileName2 = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %this1, i32 0, i32 2 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %FileName2) #16 | |
%FileName = getelementptr inbounds %struct.CErrorInfo, %struct.CErrorInfo* %this1, i32 0, i32 1 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %FileName) #16 | |
ret void | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN22CUpdateCallbackConsoleD2Ev(%class.CUpdateCallbackConsole* nonnull align 8 dereferenceable(232) %this) unnamed_addr #8 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CUpdateCallbackConsole*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %class.CUpdateCallbackConsole* %this, %class.CUpdateCallbackConsole** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CUpdateCallbackConsole*, %class.CUpdateCallbackConsole** %this.addr, align 8 | |
%0 = bitcast %class.CUpdateCallbackConsole* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [20 x i8*] }, { [20 x i8*] }* @_ZTV22CUpdateCallbackConsole, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !93 | |
%1 = bitcast %class.CUpdateCallbackConsole* %this1 to i32 (%class.CUpdateCallbackConsole*)*** | |
%vtable = load i32 (%class.CUpdateCallbackConsole*)**, i32 (%class.CUpdateCallbackConsole*)*** %1, align 8, !tbaa !93 | |
%vfn = getelementptr inbounds i32 (%class.CUpdateCallbackConsole*)*, i32 (%class.CUpdateCallbackConsole*)** %vtable, i64 4 | |
%2 = load i32 (%class.CUpdateCallbackConsole*)*, i32 (%class.CUpdateCallbackConsole*)** %vfn, align 8 | |
%call = invoke i32 %2(%class.CUpdateCallbackConsole* nonnull align 8 dereferenceable(232) %this1) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%CantFindCodes = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 14 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.5*)*)(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %CantFindCodes) #16 | |
%CantFindFiles = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 13 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %CantFindFiles) #16 | |
%FailedCodes = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 12 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.5*)*)(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %FailedCodes) #16 | |
%FailedFiles = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 11 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %FailedFiles) #16 | |
%Password = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 9 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password) #16 | |
ret void | |
lpad: ; preds = %entry | |
%3 = landingpad { i8*, i32 } | |
catch i8* null | |
%4 = extractvalue { i8*, i32 } %3, 0 | |
store i8* %4, i8** %exn.slot, align 8 | |
%5 = extractvalue { i8*, i32 } %3, 1 | |
store i32 %5, i32* %ehselector.slot, align 4 | |
%CantFindCodes2 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 14 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.5*)*)(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %CantFindCodes2) #16 | |
%CantFindFiles3 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 13 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %CantFindFiles3) #16 | |
%FailedCodes4 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 12 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.5*)*)(%class.CRecordVector.5* nonnull align 8 dereferenceable(32) %FailedCodes4) #16 | |
%FailedFiles5 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 11 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %FailedFiles5) #16 | |
%Password6 = getelementptr inbounds %class.CUpdateCallbackConsole, %class.CUpdateCallbackConsole* %this1, i32 0, i32 9 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password6) #16 | |
br label %terminate.handler | |
terminate.handler: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
call void @__clang_call_terminate(i8* %exn) #20 | |
unreachable | |
} | |
; Function Attrs: mustprogress uwtable | |
define internal void @_ZL16PrintHelpAndExitR13CStdOutStream(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %s) #0 { | |
entry: | |
%s.addr = alloca %class.CStdOutStream*, align 8 | |
store %class.CStdOutStream* %s, %class.CStdOutStream** %s.addr, align 8, !tbaa !7 | |
%0 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7 | |
%1 = load i8*, i8** @_ZL11kHelpString, align 8, !tbaa !7 | |
%call = call nonnull align 8 dereferenceable(16) %class.CStdOutStream* @_ZN13CStdOutStreamlsEPKc(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %0, i8* %1) | |
%2 = load %class.CStdOutStream*, %class.CStdOutStream** %s.addr, align 8, !tbaa !7 | |
%3 = load i8*, i8** @_ZL17kUserErrorMessage, align 8, !tbaa !7 | |
call void @_ZL28ShowMessageAndThrowExceptionR13CStdOutStreamPKcN9NExitCode5EEnumE(%class.CStdOutStream* nonnull align 8 dereferenceable(16) %2, i8* %3, i32 7) | |
ret void | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN9CMyComPtrI8IUnknownED2Ev(%class.CMyComPtr* nonnull align 8 dereferenceable(8) %this) unnamed_addr #8 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CMyComPtr*, align 8 | |
store %class.CMyComPtr* %this, %class.CMyComPtr** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CMyComPtr*, %class.CMyComPtr** %this.addr, align 8 | |
%_p = getelementptr inbounds %class.CMyComPtr, %class.CMyComPtr* %this1, i32 0, i32 0 | |
%0 = load %struct.IUnknown*, %struct.IUnknown** %_p, align 8, !tbaa !99 | |
%tobool = icmp ne %struct.IUnknown* %0, null | |
br i1 %tobool, label %if.then, label %if.end | |
if.then: ; preds = %entry | |
%_p2 = getelementptr inbounds %class.CMyComPtr, %class.CMyComPtr* %this1, i32 0, i32 0 | |
%1 = load %struct.IUnknown*, %struct.IUnknown** %_p2, align 8, !tbaa !99 | |
%2 = bitcast %struct.IUnknown* %1 to i32 (%struct.IUnknown*)*** | |
%vtable = load i32 (%struct.IUnknown*)**, i32 (%struct.IUnknown*)*** %2, align 8, !tbaa !93 | |
%vfn = getelementptr inbounds i32 (%struct.IUnknown*)*, i32 (%struct.IUnknown*)** %vtable, i64 2 | |
%3 = load i32 (%struct.IUnknown*)*, i32 (%struct.IUnknown*)** %vfn, align 8 | |
%call = invoke i32 %3(%struct.IUnknown* nonnull align 8 dereferenceable(8) %1) | |
to label %invoke.cont unwind label %terminate.lpad | |
invoke.cont: ; preds = %if.then | |
br label %if.end | |
if.end: ; preds = %invoke.cont, %entry | |
ret void | |
terminate.lpad: ; preds = %if.then | |
%4 = landingpad { i8*, i32 } | |
catch i8* null | |
%5 = extractvalue { i8*, i32 } %4, 0 | |
call void @__clang_call_terminate(i8* %5) #20 | |
unreachable | |
} | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN25CArchiveCommandLineParserD2Ev(%class.CArchiveCommandLineParser* nonnull align 8 dereferenceable(48) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CArchiveCommandLineParser*, align 8 | |
store %class.CArchiveCommandLineParser* %this, %class.CArchiveCommandLineParser** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CArchiveCommandLineParser*, %class.CArchiveCommandLineParser** %this.addr, align 8 | |
%parser = getelementptr inbounds %class.CArchiveCommandLineParser, %class.CArchiveCommandLineParser* %this1, i32 0, i32 0 | |
call void @_ZN18NCommandLineParser7CParserD1Ev(%"class.NCommandLineParser::CParser"* nonnull align 8 dereferenceable(48) %parser) #16 | |
ret void | |
} | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN26CArchiveCommandLineOptionsD2Ev(%struct.CArchiveCommandLineOptions* nonnull align 8 dereferenceable(592) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %struct.CArchiveCommandLineOptions*, align 8 | |
store %struct.CArchiveCommandLineOptions* %this, %struct.CArchiveCommandLineOptions** %this.addr, align 8, !tbaa !7 | |
%this1 = load %struct.CArchiveCommandLineOptions*, %struct.CArchiveCommandLineOptions** %this.addr, align 8 | |
%Method = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 29 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Method) #16 | |
%ArcType = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 24 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArcType) #16 | |
%UpdateOptions = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 23 | |
call void @_ZN14CUpdateOptionsD2Ev(%struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %UpdateOptions) #16 | |
%ExtractProperties = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 22 | |
call void @_ZN13CObjectVectorI9CPropertyED2Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %ExtractProperties) #16 | |
%ArchivePathsFullSorted = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 21 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsFullSorted) #16 | |
%ArchivePathsSorted = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 20 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %ArchivePathsSorted) #16 | |
%OutputDir = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 18 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OutputDir) #16 | |
%Password = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 14 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Password) #16 | |
%ArchiveName = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 12 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %ArchiveName) #16 | |
%WildcardCensor = getelementptr inbounds %struct.CArchiveCommandLineOptions, %struct.CArchiveCommandLineOptions* %this1, i32 0, i32 10 | |
call void @_ZN9NWildcard7CCensorD2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %WildcardCensor) #16 | |
ret void | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CObjectVector*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %class.CObjectVector* %this, %class.CObjectVector** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CObjectVector*, %class.CObjectVector** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorI11CStringBaseIwEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !93 | |
%1 = bitcast %class.CObjectVector* %this1 to %class.CBaseRecordVector* | |
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%2 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #16 | |
ret void | |
lpad: ; preds = %entry | |
%3 = landingpad { i8*, i32 } | |
catch i8* null | |
%4 = extractvalue { i8*, i32 } %3, 0 | |
store i8* %4, i8** %exn.slot, align 8 | |
%5 = extractvalue { i8*, i32 } %3, 1 | |
store i32 %5, i32* %ehselector.slot, align 4 | |
%6 = bitcast %class.CObjectVector* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #16 | |
br label %terminate.handler | |
terminate.handler: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
call void @__clang_call_terminate(i8* %exn) #20 | |
unreachable | |
} | |
declare dso_local i8* @_Z12my_getlocalev() #3 | |
declare dso_local i32 @_ZN8NWindows7NSystem21GetNumberOfProcessorsEv() #3 | |
; Function Attrs: inlinehint uwtable | |
define linkonce_odr dso_local void @_ZN9NWildcard7CCensorC2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %this) unnamed_addr #6 comdat align 2 { | |
entry: | |
%this.addr = alloca %"class.NWildcard::CCensor"*, align 8 | |
store %"class.NWildcard::CCensor"* %this, %"class.NWildcard::CCensor"** %this.addr, align 8, !tbaa !7 | |
%this1 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %this.addr, align 8 | |
%Pairs = getelementptr inbounds %"class.NWildcard::CCensor", %"class.NWildcard::CCensor"* %this1, i32 0, i32 0 | |
call void @_ZN13CObjectVectorIN9NWildcard5CPairEEC2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %Pairs) | |
ret void | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorI9CPropertyEC2Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.1*, align 8 | |
store %class.CObjectVector.1* %this, %class.CObjectVector.1** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CObjectVector.1*, %class.CObjectVector.1** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.1* %this1 to %class.CRecordVector* | |
call void @_ZN13CRecordVectorIPvEC2Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0) | |
%1 = bitcast %class.CObjectVector.1* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorI9CPropertyE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !93 | |
ret void | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN14CUpdateOptionsC2Ev(%struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %struct.CUpdateOptions*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %struct.CUpdateOptions* %this, %struct.CUpdateOptions** %this.addr, align 8, !tbaa !7 | |
%this1 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %this.addr, align 8 | |
%MethodMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 0 | |
call void @_ZN22CCompressionMethodModeC2Ev(%struct.CCompressionMethodMode* nonnull align 8 dereferenceable(40) %MethodMode) | |
%Commands = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 1 | |
invoke void @_ZN13CObjectVectorI21CUpdateArchiveCommandEC2Ev(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %Commands) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%UpdateArchiveItself = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 2 | |
store i8 1, i8* %UpdateArchiveItself, align 8, !tbaa !123 | |
%ArchivePath = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 3 | |
invoke void @_ZN12CArchivePathC2Ev(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %ArchivePath) | |
to label %invoke.cont3 unwind label %lpad2 | |
invoke.cont3: ; preds = %invoke.cont | |
%SfxMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 4 | |
store i8 0, i8* %SfxMode, align 8, !tbaa !78 | |
%SfxModule = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 5 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %SfxModule) | |
to label %invoke.cont5 unwind label %lpad4 | |
invoke.cont5: ; preds = %invoke.cont3 | |
%OpenShareForWrite = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 6 | |
store i8 0, i8* %OpenShareForWrite, align 8, !tbaa !124 | |
%StdInMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 7 | |
store i8 0, i8* %StdInMode, align 1, !tbaa !125 | |
%StdInFileName = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 8 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %StdInFileName) | |
to label %invoke.cont7 unwind label %lpad6 | |
invoke.cont7: ; preds = %invoke.cont5 | |
%StdOutMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 9 | |
store i8 0, i8* %StdOutMode, align 8, !tbaa !86 | |
%EMailMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 10 | |
store i8 0, i8* %EMailMode, align 1, !tbaa !126 | |
%EMailRemoveAfter = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 11 | |
store i8 0, i8* %EMailRemoveAfter, align 2, !tbaa !127 | |
%EMailAddress = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 12 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %EMailAddress) | |
to label %invoke.cont9 unwind label %lpad8 | |
invoke.cont9: ; preds = %invoke.cont7 | |
%WorkingDir = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 13 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %WorkingDir) | |
to label %invoke.cont11 unwind label %lpad10 | |
invoke.cont11: ; preds = %invoke.cont9 | |
%VolumesSizes = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 14 | |
invoke void @_ZN13CRecordVectorIyEC2Ev(%class.CRecordVector.3* nonnull align 8 dereferenceable(32) %VolumesSizes) | |
to label %invoke.cont13 unwind label %lpad12 | |
invoke.cont13: ; preds = %invoke.cont11 | |
ret void | |
lpad: ; preds = %entry | |
%0 = landingpad { i8*, i32 } | |
cleanup | |
%1 = extractvalue { i8*, i32 } %0, 0 | |
store i8* %1, i8** %exn.slot, align 8 | |
%2 = extractvalue { i8*, i32 } %0, 1 | |
store i32 %2, i32* %ehselector.slot, align 4 | |
br label %ehcleanup18 | |
lpad2: ; preds = %invoke.cont | |
%3 = landingpad { i8*, i32 } | |
cleanup | |
%4 = extractvalue { i8*, i32 } %3, 0 | |
store i8* %4, i8** %exn.slot, align 8 | |
%5 = extractvalue { i8*, i32 } %3, 1 | |
store i32 %5, i32* %ehselector.slot, align 4 | |
br label %ehcleanup17 | |
lpad4: ; preds = %invoke.cont3 | |
%6 = landingpad { i8*, i32 } | |
cleanup | |
%7 = extractvalue { i8*, i32 } %6, 0 | |
store i8* %7, i8** %exn.slot, align 8 | |
%8 = extractvalue { i8*, i32 } %6, 1 | |
store i32 %8, i32* %ehselector.slot, align 4 | |
br label %ehcleanup16 | |
lpad6: ; preds = %invoke.cont5 | |
%9 = landingpad { i8*, i32 } | |
cleanup | |
%10 = extractvalue { i8*, i32 } %9, 0 | |
store i8* %10, i8** %exn.slot, align 8 | |
%11 = extractvalue { i8*, i32 } %9, 1 | |
store i32 %11, i32* %ehselector.slot, align 4 | |
br label %ehcleanup15 | |
lpad8: ; preds = %invoke.cont7 | |
%12 = landingpad { i8*, i32 } | |
cleanup | |
%13 = extractvalue { i8*, i32 } %12, 0 | |
store i8* %13, i8** %exn.slot, align 8 | |
%14 = extractvalue { i8*, i32 } %12, 1 | |
store i32 %14, i32* %ehselector.slot, align 4 | |
br label %ehcleanup14 | |
lpad10: ; preds = %invoke.cont9 | |
%15 = landingpad { i8*, i32 } | |
cleanup | |
%16 = extractvalue { i8*, i32 } %15, 0 | |
store i8* %16, i8** %exn.slot, align 8 | |
%17 = extractvalue { i8*, i32 } %15, 1 | |
store i32 %17, i32* %ehselector.slot, align 4 | |
br label %ehcleanup | |
lpad12: ; preds = %invoke.cont11 | |
%18 = landingpad { i8*, i32 } | |
cleanup | |
%19 = extractvalue { i8*, i32 } %18, 0 | |
store i8* %19, i8** %exn.slot, align 8 | |
%20 = extractvalue { i8*, i32 } %18, 1 | |
store i32 %20, i32* %ehselector.slot, align 4 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %WorkingDir) #16 | |
br label %ehcleanup | |
ehcleanup: ; preds = %lpad12, %lpad10 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %EMailAddress) #16 | |
br label %ehcleanup14 | |
ehcleanup14: ; preds = %ehcleanup, %lpad8 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %StdInFileName) #16 | |
br label %ehcleanup15 | |
ehcleanup15: ; preds = %ehcleanup14, %lpad6 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %SfxModule) #16 | |
br label %ehcleanup16 | |
ehcleanup16: ; preds = %ehcleanup15, %lpad4 | |
call void @_ZN12CArchivePathD2Ev(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %ArchivePath) #16 | |
br label %ehcleanup17 | |
ehcleanup17: ; preds = %ehcleanup16, %lpad2 | |
call void @_ZN13CObjectVectorI21CUpdateArchiveCommandED2Ev(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %Commands) #16 | |
br label %ehcleanup18 | |
ehcleanup18: ; preds = %ehcleanup17, %lpad | |
call void @_ZN22CCompressionMethodModeD2Ev(%struct.CCompressionMethodMode* nonnull align 8 dereferenceable(40) %MethodMode) #16 | |
br label %eh.resume | |
eh.resume: ; preds = %ehcleanup18 | |
%exn = load i8*, i8** %exn.slot, align 8 | |
%sel = load i32, i32* %ehselector.slot, align 4 | |
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 | |
%lpad.val19 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 | |
resume { i8*, i32 } %lpad.val19 | |
} | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN14CUpdateOptionsD2Ev(%struct.CUpdateOptions* nonnull align 8 dereferenceable(320) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %struct.CUpdateOptions*, align 8 | |
store %struct.CUpdateOptions* %this, %struct.CUpdateOptions** %this.addr, align 8, !tbaa !7 | |
%this1 = load %struct.CUpdateOptions*, %struct.CUpdateOptions** %this.addr, align 8 | |
%VolumesSizes = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 14 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector.3*)*)(%class.CRecordVector.3* nonnull align 8 dereferenceable(32) %VolumesSizes) #16 | |
%WorkingDir = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 13 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %WorkingDir) #16 | |
%EMailAddress = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 12 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %EMailAddress) #16 | |
%StdInFileName = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 8 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %StdInFileName) #16 | |
%SfxModule = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 5 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %SfxModule) #16 | |
%ArchivePath = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 3 | |
call void @_ZN12CArchivePathD2Ev(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %ArchivePath) #16 | |
%Commands = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 1 | |
call void @_ZN13CObjectVectorI21CUpdateArchiveCommandED2Ev(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %Commands) #16 | |
%MethodMode = getelementptr inbounds %struct.CUpdateOptions, %struct.CUpdateOptions* %this1, i32 0, i32 0 | |
call void @_ZN22CCompressionMethodModeD2Ev(%struct.CCompressionMethodMode* nonnull align 8 dereferenceable(40) %MethodMode) #16 | |
ret void | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorI9CPropertyED2Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CObjectVector.1*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %class.CObjectVector.1* %this, %class.CObjectVector.1** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CObjectVector.1*, %class.CObjectVector.1** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.1* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorI9CPropertyE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !93 | |
%1 = bitcast %class.CObjectVector.1* %this1 to %class.CBaseRecordVector* | |
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%2 = bitcast %class.CObjectVector.1* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #16 | |
ret void | |
lpad: ; preds = %entry | |
%3 = landingpad { i8*, i32 } | |
catch i8* null | |
%4 = extractvalue { i8*, i32 } %3, 0 | |
store i8* %4, i8** %exn.slot, align 8 | |
%5 = extractvalue { i8*, i32 } %3, 1 | |
store i32 %5, i32* %ehselector.slot, align 4 | |
%6 = bitcast %class.CObjectVector.1* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #16 | |
br label %terminate.handler | |
terminate.handler: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
call void @__clang_call_terminate(i8* %exn) #20 | |
unreachable | |
} | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN9NWildcard7CCensorD2Ev(%"class.NWildcard::CCensor"* nonnull align 8 dereferenceable(32) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %"class.NWildcard::CCensor"*, align 8 | |
store %"class.NWildcard::CCensor"* %this, %"class.NWildcard::CCensor"** %this.addr, align 8, !tbaa !7 | |
%this1 = load %"class.NWildcard::CCensor"*, %"class.NWildcard::CCensor"** %this.addr, align 8 | |
%Pairs = getelementptr inbounds %"class.NWildcard::CCensor", %"class.NWildcard::CCensor"* %this1, i32 0, i32 0 | |
call void @_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %Pairs) #16 | |
ret void | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CPairEEC2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.0*, align 8 | |
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.0* %this1 to %class.CRecordVector* | |
call void @_ZN13CRecordVectorIPvEC2Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0) | |
%1 = bitcast %class.CObjectVector.0* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorIN9NWildcard5CPairEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !93 | |
ret void | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN13CRecordVectorIPvEC2Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CRecordVector*, align 8 | |
store %class.CRecordVector* %this, %class.CRecordVector** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CRecordVector*, %class.CRecordVector** %this.addr, align 8 | |
%0 = bitcast %class.CRecordVector* %this1 to %class.CBaseRecordVector* | |
call void @_ZN17CBaseRecordVectorC2Em(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i64 8) | |
%1 = bitcast %class.CRecordVector* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CRecordVectorIPvE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !93 | |
ret void | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CObjectVector.0*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.0* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorIN9NWildcard5CPairEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !93 | |
%1 = bitcast %class.CObjectVector.0* %this1 to %class.CBaseRecordVector* | |
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%2 = bitcast %class.CObjectVector.0* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #16 | |
ret void | |
lpad: ; preds = %entry | |
%3 = landingpad { i8*, i32 } | |
catch i8* null | |
%4 = extractvalue { i8*, i32 } %3, 0 | |
store i8* %4, i8** %exn.slot, align 8 | |
%5 = extractvalue { i8*, i32 } %3, 1 | |
store i32 %5, i32* %ehselector.slot, align 4 | |
%6 = bitcast %class.CObjectVector.0* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #16 | |
br label %terminate.handler | |
terminate.handler: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
call void @__clang_call_terminate(i8* %exn) #20 | |
unreachable | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CPairEED0Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.0*, align 8 | |
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8 | |
call void @_ZN13CObjectVectorIN9NWildcard5CPairEED2Ev(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this1) #16 | |
%0 = bitcast %class.CObjectVector.0* %this1 to i8* | |
call void @_ZdlPv(i8* %0) #19 | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CPairEE6DeleteEii(%class.CObjectVector.0* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.0*, align 8 | |
%index.addr = alloca i32, align 4 | |
%num.addr = alloca i32, align 4 | |
%i = alloca i32, align 4 | |
store %class.CObjectVector.0* %this, %class.CObjectVector.0** %this.addr, align 8, !tbaa !7 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !3 | |
store i32 %num, i32* %num.addr, align 4, !tbaa !3 | |
%this1 = load %class.CObjectVector.0*, %class.CObjectVector.0** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.0* %this1 to %class.CBaseRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr) | |
%2 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #16 | |
store i32 0, i32* %i, align 4, !tbaa !3 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %entry | |
%3 = load i32, i32* %i, align 4, !tbaa !3 | |
%4 = load i32, i32* %num.addr, align 4, !tbaa !3 | |
%cmp = icmp slt i32 %3, %4 | |
br i1 %cmp, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
%5 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #16 | |
br label %for.end | |
for.body: ; preds = %for.cond | |
%6 = bitcast %class.CObjectVector.0* %this1 to %class.CBaseRecordVector* | |
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3 | |
%7 = load i8*, i8** %_items, align 8, !tbaa !97 | |
%8 = bitcast i8* %7 to i8** | |
%9 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
%10 = load i32, i32* %i, align 4, !tbaa !3 | |
%add = add nsw i32 %9, %10 | |
%idxprom = sext i32 %add to i64 | |
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom | |
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !7 | |
%12 = bitcast i8* %11 to %"struct.NWildcard::CPair"* | |
%isnull = icmp eq %"struct.NWildcard::CPair"* %12, null | |
br i1 %isnull, label %delete.end, label %delete.notnull | |
delete.notnull: ; preds = %for.body | |
call void @_ZN9NWildcard5CPairD2Ev(%"struct.NWildcard::CPair"* nonnull align 8 dereferenceable(136) %12) #16 | |
%13 = bitcast %"struct.NWildcard::CPair"* %12 to i8* | |
call void @_ZdlPv(i8* %13) #19 | |
br label %delete.end | |
delete.end: ; preds = %delete.notnull, %for.body | |
br label %for.inc | |
for.inc: ; preds = %delete.end | |
%14 = load i32, i32* %i, align 4, !tbaa !3 | |
%inc = add nsw i32 %14, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !3 | |
br label %for.cond, !llvm.loop !128 | |
for.end: ; preds = %for.cond.cleanup | |
%15 = bitcast %class.CObjectVector.0* %this1 to %class.CRecordVector* | |
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector* | |
%17 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
%18 = load i32, i32* %num.addr, align 4, !tbaa !3 | |
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18) | |
ret void | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN17CBaseRecordVectorC2Em(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %this, i64 %itemSize) unnamed_addr #8 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CBaseRecordVector*, align 8 | |
%itemSize.addr = alloca i64, align 8 | |
store %class.CBaseRecordVector* %this, %class.CBaseRecordVector** %this.addr, align 8, !tbaa !7 | |
store i64 %itemSize, i64* %itemSize.addr, align 8, !tbaa !39 | |
%this1 = load %class.CBaseRecordVector*, %class.CBaseRecordVector** %this.addr, align 8 | |
%0 = bitcast %class.CBaseRecordVector* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV17CBaseRecordVector, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !93 | |
%_capacity = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 1 | |
store i32 0, i32* %_capacity, align 8, !tbaa !129 | |
%_size = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 2 | |
store i32 0, i32* %_size, align 4, !tbaa !95 | |
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 3 | |
store i8* null, i8** %_items, align 8, !tbaa !97 | |
%_itemSize = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 4 | |
%1 = load i64, i64* %itemSize.addr, align 8, !tbaa !39 | |
store i64 %1, i64* %_itemSize, align 8, !tbaa !130 | |
ret void | |
} | |
; Function Attrs: nounwind | |
declare dso_local void @_ZN17CBaseRecordVectorD2Ev(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32)) unnamed_addr #12 | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CRecordVectorIPvED0Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CRecordVector*, align 8 | |
store %class.CRecordVector* %this, %class.CRecordVector** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CRecordVector*, %class.CRecordVector** %this.addr, align 8 | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %this1) #16 | |
%0 = bitcast %class.CRecordVector* %this1 to i8* | |
call void @_ZdlPv(i8* %0) #19 | |
ret void | |
} | |
declare dso_local void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32), i32, i32) unnamed_addr #3 | |
; Function Attrs: nounwind | |
declare dso_local void @_ZN17CBaseRecordVectorD1Ev(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32)) unnamed_addr #12 | |
; Function Attrs: nounwind | |
declare dso_local void @_ZN17CBaseRecordVectorD0Ev(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32)) unnamed_addr #12 | |
declare dso_local void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32)) #3 | |
; Function Attrs: noinline noreturn nounwind | |
define linkonce_odr hidden void @__clang_call_terminate(i8* %0) #13 comdat { | |
%2 = call i8* @__cxa_begin_catch(i8* %0) #16 | |
call void @_ZSt9terminatev() #20 | |
unreachable | |
} | |
declare dso_local i8* @__cxa_begin_catch(i8*) | |
declare dso_local void @_ZSt9terminatev() | |
; Function Attrs: mustprogress nounwind uwtable | |
define linkonce_odr dso_local void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %this, i32 %index, i32* nonnull align 4 dereferenceable(4) %num) #4 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CBaseRecordVector*, align 8 | |
%index.addr = alloca i32, align 4 | |
%num.addr = alloca i32*, align 8 | |
store %class.CBaseRecordVector* %this, %class.CBaseRecordVector** %this.addr, align 8, !tbaa !7 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !3 | |
store i32* %num, i32** %num.addr, align 8, !tbaa !7 | |
%this1 = load %class.CBaseRecordVector*, %class.CBaseRecordVector** %this.addr, align 8 | |
%0 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
%1 = load i32*, i32** %num.addr, align 8, !tbaa !7 | |
%2 = load i32, i32* %1, align 4, !tbaa !3 | |
%add = add nsw i32 %0, %2 | |
%_size = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 2 | |
%3 = load i32, i32* %_size, align 4, !tbaa !95 | |
%cmp = icmp sgt i32 %add, %3 | |
br i1 %cmp, label %if.then, label %if.end | |
if.then: ; preds = %entry | |
%_size2 = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %this1, i32 0, i32 2 | |
%4 = load i32, i32* %_size2, align 4, !tbaa !95 | |
%5 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
%sub = sub nsw i32 %4, %5 | |
%6 = load i32*, i32** %num.addr, align 8, !tbaa !7 | |
store i32 %sub, i32* %6, align 4, !tbaa !3 | |
br label %if.end | |
if.end: ; preds = %if.then, %entry | |
ret void | |
} | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN9NWildcard5CPairD2Ev(%"struct.NWildcard::CPair"* nonnull align 8 dereferenceable(136) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %"struct.NWildcard::CPair"*, align 8 | |
store %"struct.NWildcard::CPair"* %this, %"struct.NWildcard::CPair"** %this.addr, align 8, !tbaa !7 | |
%this1 = load %"struct.NWildcard::CPair"*, %"struct.NWildcard::CPair"** %this.addr, align 8 | |
%Head = getelementptr inbounds %"struct.NWildcard::CPair", %"struct.NWildcard::CPair"* %this1, i32 0, i32 1 | |
call void @_ZN9NWildcard11CCensorNodeD2Ev(%"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120) %Head) #16 | |
%Prefix = getelementptr inbounds %"struct.NWildcard::CPair", %"struct.NWildcard::CPair"* %this1, i32 0, i32 0 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix) #16 | |
ret void | |
} | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN9NWildcard11CCensorNodeD2Ev(%"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %"class.NWildcard::CCensorNode"*, align 8 | |
store %"class.NWildcard::CCensorNode"* %this, %"class.NWildcard::CCensorNode"** %this.addr, align 8, !tbaa !7 | |
%this1 = load %"class.NWildcard::CCensorNode"*, %"class.NWildcard::CCensorNode"** %this.addr, align 8 | |
%ExcludeItems = getelementptr inbounds %"class.NWildcard::CCensorNode", %"class.NWildcard::CCensorNode"* %this1, i32 0, i32 4 | |
call void @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev(%class.CObjectVector.9* nonnull align 8 dereferenceable(32) %ExcludeItems) #16 | |
%IncludeItems = getelementptr inbounds %"class.NWildcard::CCensorNode", %"class.NWildcard::CCensorNode"* %this1, i32 0, i32 3 | |
call void @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev(%class.CObjectVector.9* nonnull align 8 dereferenceable(32) %IncludeItems) #16 | |
%SubNodes = getelementptr inbounds %"class.NWildcard::CCensorNode", %"class.NWildcard::CCensorNode"* %this1, i32 0, i32 2 | |
call void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %SubNodes) #16 | |
%Name = getelementptr inbounds %"class.NWildcard::CCensorNode", %"class.NWildcard::CCensorNode"* %this1, i32 0, i32 1 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #16 | |
ret void | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev(%class.CObjectVector.9* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CObjectVector.9*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %class.CObjectVector.9* %this, %class.CObjectVector.9** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CObjectVector.9*, %class.CObjectVector.9** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.9* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorIN9NWildcard5CItemEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !93 | |
%1 = bitcast %class.CObjectVector.9* %this1 to %class.CBaseRecordVector* | |
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%2 = bitcast %class.CObjectVector.9* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #16 | |
ret void | |
lpad: ; preds = %entry | |
%3 = landingpad { i8*, i32 } | |
catch i8* null | |
%4 = extractvalue { i8*, i32 } %3, 0 | |
store i8* %4, i8** %exn.slot, align 8 | |
%5 = extractvalue { i8*, i32 } %3, 1 | |
store i32 %5, i32* %ehselector.slot, align 4 | |
%6 = bitcast %class.CObjectVector.9* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #16 | |
br label %terminate.handler | |
terminate.handler: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
call void @__clang_call_terminate(i8* %exn) #20 | |
unreachable | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %class.CObjectVector.8*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %class.CObjectVector.8* %this, %class.CObjectVector.8** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CObjectVector.8*, %class.CObjectVector.8** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.8* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorIN9NWildcard11CCensorNodeEE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %0, align 8, !tbaa !93 | |
%1 = bitcast %class.CObjectVector.8* %this1 to %class.CBaseRecordVector* | |
invoke void @_ZN17CBaseRecordVector5ClearEv(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %1) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%2 = bitcast %class.CObjectVector.8* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %2) #16 | |
ret void | |
lpad: ; preds = %entry | |
%3 = landingpad { i8*, i32 } | |
catch i8* null | |
%4 = extractvalue { i8*, i32 } %3, 0 | |
store i8* %4, i8** %exn.slot, align 8 | |
%5 = extractvalue { i8*, i32 } %3, 1 | |
store i32 %5, i32* %ehselector.slot, align 4 | |
%6 = bitcast %class.CObjectVector.8* %this1 to %class.CRecordVector* | |
call void bitcast (void (%class.CBaseRecordVector*)* @_ZN17CBaseRecordVectorD2Ev to void (%class.CRecordVector*)*)(%class.CRecordVector* nonnull align 8 dereferenceable(32) %6) #16 | |
br label %terminate.handler | |
terminate.handler: ; preds = %lpad | |
%exn = load i8*, i8** %exn.slot, align 8 | |
call void @__clang_call_terminate(i8* %exn) #20 | |
unreachable | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CItemEED0Ev(%class.CObjectVector.9* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.9*, align 8 | |
store %class.CObjectVector.9* %this, %class.CObjectVector.9** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CObjectVector.9*, %class.CObjectVector.9** %this.addr, align 8 | |
call void @_ZN13CObjectVectorIN9NWildcard5CItemEED2Ev(%class.CObjectVector.9* nonnull align 8 dereferenceable(32) %this1) #16 | |
%0 = bitcast %class.CObjectVector.9* %this1 to i8* | |
call void @_ZdlPv(i8* %0) #19 | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard5CItemEE6DeleteEii(%class.CObjectVector.9* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.9*, align 8 | |
%index.addr = alloca i32, align 4 | |
%num.addr = alloca i32, align 4 | |
%i = alloca i32, align 4 | |
store %class.CObjectVector.9* %this, %class.CObjectVector.9** %this.addr, align 8, !tbaa !7 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !3 | |
store i32 %num, i32* %num.addr, align 4, !tbaa !3 | |
%this1 = load %class.CObjectVector.9*, %class.CObjectVector.9** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.9* %this1 to %class.CBaseRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr) | |
%2 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #16 | |
store i32 0, i32* %i, align 4, !tbaa !3 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %entry | |
%3 = load i32, i32* %i, align 4, !tbaa !3 | |
%4 = load i32, i32* %num.addr, align 4, !tbaa !3 | |
%cmp = icmp slt i32 %3, %4 | |
br i1 %cmp, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
%5 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #16 | |
br label %for.end | |
for.body: ; preds = %for.cond | |
%6 = bitcast %class.CObjectVector.9* %this1 to %class.CBaseRecordVector* | |
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3 | |
%7 = load i8*, i8** %_items, align 8, !tbaa !97 | |
%8 = bitcast i8* %7 to i8** | |
%9 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
%10 = load i32, i32* %i, align 4, !tbaa !3 | |
%add = add nsw i32 %9, %10 | |
%idxprom = sext i32 %add to i64 | |
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom | |
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !7 | |
%12 = bitcast i8* %11 to %"struct.NWildcard::CItem"* | |
%isnull = icmp eq %"struct.NWildcard::CItem"* %12, null | |
br i1 %isnull, label %delete.end, label %delete.notnull | |
delete.notnull: ; preds = %for.body | |
call void @_ZN9NWildcard5CItemD2Ev(%"struct.NWildcard::CItem"* nonnull align 8 dereferenceable(35) %12) #16 | |
%13 = bitcast %"struct.NWildcard::CItem"* %12 to i8* | |
call void @_ZdlPv(i8* %13) #19 | |
br label %delete.end | |
delete.end: ; preds = %delete.notnull, %for.body | |
br label %for.inc | |
for.inc: ; preds = %delete.end | |
%14 = load i32, i32* %i, align 4, !tbaa !3 | |
%inc = add nsw i32 %14, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !3 | |
br label %for.cond, !llvm.loop !131 | |
for.end: ; preds = %for.cond.cleanup | |
%15 = bitcast %class.CObjectVector.9* %this1 to %class.CRecordVector* | |
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector* | |
%17 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
%18 = load i32, i32* %num.addr, align 4, !tbaa !3 | |
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18) | |
ret void | |
} | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN9NWildcard5CItemD2Ev(%"struct.NWildcard::CItem"* nonnull align 8 dereferenceable(35) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %"struct.NWildcard::CItem"*, align 8 | |
store %"struct.NWildcard::CItem"* %this, %"struct.NWildcard::CItem"** %this.addr, align 8, !tbaa !7 | |
%this1 = load %"struct.NWildcard::CItem"*, %"struct.NWildcard::CItem"** %this.addr, align 8 | |
%PathParts = getelementptr inbounds %"struct.NWildcard::CItem", %"struct.NWildcard::CItem"* %this1, i32 0, i32 0 | |
call void @_ZN13CObjectVectorI11CStringBaseIwEED2Ev(%class.CObjectVector* nonnull align 8 dereferenceable(32) %PathParts) #16 | |
ret void | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED0Ev(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.8*, align 8 | |
store %class.CObjectVector.8* %this, %class.CObjectVector.8** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CObjectVector.8*, %class.CObjectVector.8** %this.addr, align 8 | |
call void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEED2Ev(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %this1) #16 | |
%0 = bitcast %class.CObjectVector.8* %this1 to i8* | |
call void @_ZdlPv(i8* %0) #19 | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorIN9NWildcard11CCensorNodeEE6DeleteEii(%class.CObjectVector.8* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.8*, align 8 | |
%index.addr = alloca i32, align 4 | |
%num.addr = alloca i32, align 4 | |
%i = alloca i32, align 4 | |
store %class.CObjectVector.8* %this, %class.CObjectVector.8** %this.addr, align 8, !tbaa !7 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !3 | |
store i32 %num, i32* %num.addr, align 4, !tbaa !3 | |
%this1 = load %class.CObjectVector.8*, %class.CObjectVector.8** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.8* %this1 to %class.CBaseRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr) | |
%2 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #16 | |
store i32 0, i32* %i, align 4, !tbaa !3 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %entry | |
%3 = load i32, i32* %i, align 4, !tbaa !3 | |
%4 = load i32, i32* %num.addr, align 4, !tbaa !3 | |
%cmp = icmp slt i32 %3, %4 | |
br i1 %cmp, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
%5 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #16 | |
br label %for.end | |
for.body: ; preds = %for.cond | |
%6 = bitcast %class.CObjectVector.8* %this1 to %class.CBaseRecordVector* | |
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3 | |
%7 = load i8*, i8** %_items, align 8, !tbaa !97 | |
%8 = bitcast i8* %7 to i8** | |
%9 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
%10 = load i32, i32* %i, align 4, !tbaa !3 | |
%add = add nsw i32 %9, %10 | |
%idxprom = sext i32 %add to i64 | |
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom | |
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !7 | |
%12 = bitcast i8* %11 to %"class.NWildcard::CCensorNode"* | |
%isnull = icmp eq %"class.NWildcard::CCensorNode"* %12, null | |
br i1 %isnull, label %delete.end, label %delete.notnull | |
delete.notnull: ; preds = %for.body | |
call void @_ZN9NWildcard11CCensorNodeD2Ev(%"class.NWildcard::CCensorNode"* nonnull align 8 dereferenceable(120) %12) #16 | |
%13 = bitcast %"class.NWildcard::CCensorNode"* %12 to i8* | |
call void @_ZdlPv(i8* %13) #19 | |
br label %delete.end | |
delete.end: ; preds = %delete.notnull, %for.body | |
br label %for.inc | |
for.inc: ; preds = %delete.end | |
%14 = load i32, i32* %i, align 4, !tbaa !3 | |
%inc = add nsw i32 %14, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !3 | |
br label %for.cond, !llvm.loop !132 | |
for.end: ; preds = %for.cond.cleanup | |
%15 = bitcast %class.CObjectVector.8* %this1 to %class.CRecordVector* | |
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector* | |
%17 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
%18 = load i32, i32* %num.addr, align 4, !tbaa !3 | |
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18) | |
ret void | |
} | |
; Function Attrs: nounwind uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorI9CPropertyED0Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %this) unnamed_addr #8 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.1*, align 8 | |
store %class.CObjectVector.1* %this, %class.CObjectVector.1** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CObjectVector.1*, %class.CObjectVector.1** %this.addr, align 8 | |
call void @_ZN13CObjectVectorI9CPropertyED2Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %this1) #16 | |
%0 = bitcast %class.CObjectVector.1* %this1 to i8* | |
call void @_ZdlPv(i8* %0) #19 | |
ret void | |
} | |
; Function Attrs: mustprogress uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorI9CPropertyE6DeleteEii(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %this, i32 %index, i32 %num) unnamed_addr #0 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.1*, align 8 | |
%index.addr = alloca i32, align 4 | |
%num.addr = alloca i32, align 4 | |
%i = alloca i32, align 4 | |
store %class.CObjectVector.1* %this, %class.CObjectVector.1** %this.addr, align 8, !tbaa !7 | |
store i32 %index, i32* %index.addr, align 4, !tbaa !3 | |
store i32 %num, i32* %num.addr, align 4, !tbaa !3 | |
%this1 = load %class.CObjectVector.1*, %class.CObjectVector.1** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.1* %this1 to %class.CBaseRecordVector* | |
%1 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
call void @_ZNK17CBaseRecordVector22TestIndexAndCorrectNumEiRi(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %0, i32 %1, i32* nonnull align 4 dereferenceable(4) %num.addr) | |
%2 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.start.p0i8(i64 4, i8* %2) #16 | |
store i32 0, i32* %i, align 4, !tbaa !3 | |
br label %for.cond | |
for.cond: ; preds = %for.inc, %entry | |
%3 = load i32, i32* %i, align 4, !tbaa !3 | |
%4 = load i32, i32* %num.addr, align 4, !tbaa !3 | |
%cmp = icmp slt i32 %3, %4 | |
br i1 %cmp, label %for.body, label %for.cond.cleanup | |
for.cond.cleanup: ; preds = %for.cond | |
%5 = bitcast i32* %i to i8* | |
call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #16 | |
br label %for.end | |
for.body: ; preds = %for.cond | |
%6 = bitcast %class.CObjectVector.1* %this1 to %class.CBaseRecordVector* | |
%_items = getelementptr inbounds %class.CBaseRecordVector, %class.CBaseRecordVector* %6, i32 0, i32 3 | |
%7 = load i8*, i8** %_items, align 8, !tbaa !97 | |
%8 = bitcast i8* %7 to i8** | |
%9 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
%10 = load i32, i32* %i, align 4, !tbaa !3 | |
%add = add nsw i32 %9, %10 | |
%idxprom = sext i32 %add to i64 | |
%arrayidx = getelementptr inbounds i8*, i8** %8, i64 %idxprom | |
%11 = load i8*, i8** %arrayidx, align 8, !tbaa !7 | |
%12 = bitcast i8* %11 to %struct.CProperty* | |
%isnull = icmp eq %struct.CProperty* %12, null | |
br i1 %isnull, label %delete.end, label %delete.notnull | |
delete.notnull: ; preds = %for.body | |
call void @_ZN9CPropertyD2Ev(%struct.CProperty* nonnull align 8 dereferenceable(32) %12) #16 | |
%13 = bitcast %struct.CProperty* %12 to i8* | |
call void @_ZdlPv(i8* %13) #19 | |
br label %delete.end | |
delete.end: ; preds = %delete.notnull, %for.body | |
br label %for.inc | |
for.inc: ; preds = %delete.end | |
%14 = load i32, i32* %i, align 4, !tbaa !3 | |
%inc = add nsw i32 %14, 1 | |
store i32 %inc, i32* %i, align 4, !tbaa !3 | |
br label %for.cond, !llvm.loop !133 | |
for.end: ; preds = %for.cond.cleanup | |
%15 = bitcast %class.CObjectVector.1* %this1 to %class.CRecordVector* | |
%16 = bitcast %class.CRecordVector* %15 to %class.CBaseRecordVector* | |
%17 = load i32, i32* %index.addr, align 4, !tbaa !3 | |
%18 = load i32, i32* %num.addr, align 4, !tbaa !3 | |
call void @_ZN17CBaseRecordVector6DeleteEii(%class.CBaseRecordVector* nonnull align 8 dereferenceable(32) %16, i32 %17, i32 %18) | |
ret void | |
} | |
; Function Attrs: inlinehint nounwind uwtable | |
define linkonce_odr dso_local void @_ZN9CPropertyD2Ev(%struct.CProperty* nonnull align 8 dereferenceable(32) %this) unnamed_addr #10 comdat align 2 { | |
entry: | |
%this.addr = alloca %struct.CProperty*, align 8 | |
store %struct.CProperty* %this, %struct.CProperty** %this.addr, align 8, !tbaa !7 | |
%this1 = load %struct.CProperty*, %struct.CProperty** %this.addr, align 8 | |
%Value = getelementptr inbounds %struct.CProperty, %struct.CProperty* %this1, i32 0, i32 1 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Value) #16 | |
%Name = getelementptr inbounds %struct.CProperty, %struct.CProperty* %this1, i32 0, i32 0 | |
call void @_ZN11CStringBaseIwED2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Name) #16 | |
ret void | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN22CCompressionMethodModeC2Ev(%struct.CCompressionMethodMode* nonnull align 8 dereferenceable(40) %this) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %struct.CCompressionMethodMode*, align 8 | |
store %struct.CCompressionMethodMode* %this, %struct.CCompressionMethodMode** %this.addr, align 8, !tbaa !7 | |
%this1 = load %struct.CCompressionMethodMode*, %struct.CCompressionMethodMode** %this.addr, align 8 | |
%FormatIndex = getelementptr inbounds %struct.CCompressionMethodMode, %struct.CCompressionMethodMode* %this1, i32 0, i32 0 | |
store i32 -1, i32* %FormatIndex, align 8, !tbaa !134 | |
%Properties = getelementptr inbounds %struct.CCompressionMethodMode, %struct.CCompressionMethodMode* %this1, i32 0, i32 1 | |
call void @_ZN13CObjectVectorI9CPropertyEC2Ev(%class.CObjectVector.1* nonnull align 8 dereferenceable(32) %Properties) | |
ret void | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN13CObjectVectorI21CUpdateArchiveCommandEC2Ev(%class.CObjectVector.2* nonnull align 8 dereferenceable(32) %this) unnamed_addr #2 comdat align 2 { | |
entry: | |
%this.addr = alloca %class.CObjectVector.2*, align 8 | |
store %class.CObjectVector.2* %this, %class.CObjectVector.2** %this.addr, align 8, !tbaa !7 | |
%this1 = load %class.CObjectVector.2*, %class.CObjectVector.2** %this.addr, align 8 | |
%0 = bitcast %class.CObjectVector.2* %this1 to %class.CRecordVector* | |
call void @_ZN13CRecordVectorIPvEC2Ev(%class.CRecordVector* nonnull align 8 dereferenceable(32) %0) | |
%1 = bitcast %class.CObjectVector.2* %this1 to i32 (...)*** | |
store i32 (...)** bitcast (i8** getelementptr inbounds ({ [5 x i8*] }, { [5 x i8*] }* @_ZTV13CObjectVectorI21CUpdateArchiveCommandE, i32 0, inrange i32 0, i32 2) to i32 (...)**), i32 (...)*** %1, align 8, !tbaa !93 | |
ret void | |
} | |
; Function Attrs: uwtable | |
define linkonce_odr dso_local void @_ZN12CArchivePathC2Ev(%struct.CArchivePath* nonnull align 8 dereferenceable(120) %this) unnamed_addr #2 comdat align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { | |
entry: | |
%this.addr = alloca %struct.CArchivePath*, align 8 | |
%exn.slot = alloca i8*, align 8 | |
%ehselector.slot = alloca i32, align 4 | |
store %struct.CArchivePath* %this, %struct.CArchivePath** %this.addr, align 8, !tbaa !7 | |
%this1 = load %struct.CArchivePath*, %struct.CArchivePath** %this.addr, align 8 | |
%OriginalPath = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 0 | |
call void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %OriginalPath) | |
%Prefix = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 1 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull align 8 dereferenceable(16) %Prefix) | |
to label %invoke.cont unwind label %lpad | |
invoke.cont: ; preds = %entry | |
%Name = getelementptr inbounds %struct.CArchivePath, %struct.CArchivePath* %this1, i32 0, i32 2 | |
invoke void @_ZN11CStringBaseIwEC2Ev(%class.CStringBase* nonnull alig |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment