Remove references to our original (internal) issue tracker.

They are no longer relevant as we have migrated the code to GitHub.
This commit is contained in:
Petr Zemek 2018-02-08 13:29:37 +01:00
parent 1db0cb6379
commit 49932476a4
38 changed files with 42 additions and 52 deletions

View File

@ -45,7 +45,7 @@ public:
/// A def-use chain (see [ItC]).
// Implementation note: we have to use std::vector instead of std::map to
// make the chain deterministic (#1386).
// make the chain deterministic.
using DefUseChain = std::vector<std::pair<StmtVarPair, StmtSet>>;
public:

View File

@ -194,7 +194,7 @@ while [ "$CONTINUE" = "1" ]; do
IN="$OUT"
else
# Remove the temporary file, just in case some of the unpackers crashed
# during unpacking and left it on the disk (e.g. upx, see #1669).
# during unpacking and left it on the disk (e.g. upx).
rm -f "$OUT.tmp"
CONTINUE=0
fi

View File

@ -268,7 +268,7 @@ bool ArchiveWrapper::extract(
/**
* @todo In writeFile function call, separator is added to path, this may
* or may not work on Windows OS. Fix this once issue #1908 is resolved.
* or may not work on Windows OS.
*/
// Map for non-unique names - counts number of name occurrences.

View File

@ -95,7 +95,7 @@ SymbolicTree& SymbolicTree::operator=(SymbolicTree&& other)
value = other.value;
user = other.user;
// Do NOT use `ops = std::move(other.ops);` to allow use like
// `*this = ops[0];`. Use std::swap() instead. See #1581.
// `*this = ops[0];`. Use std::swap() instead.
std::swap(ops, other.ops);
_failed = other._failed;
}

View File

@ -565,7 +565,7 @@ bool ControlFlow::runGenericBr(AsmInstruction& ai, llvm::CallInst* call)
SymbolicTree root(_RDA, call->getArgOperand(0));
// PIC code, see #1066.
// PIC code.
// User code is calling stub in .plt.
// Stub in .plt is computing jmp address (address of import).
// 4-form_grabber-b794ce9e.so.elf, .plt:00001BE0 ___ctype_toupper_loc:

View File

@ -261,7 +261,7 @@ bool IdiomsAnalysis::doAnalysis(Function & f, Pass * p) {
"IdiomsLLVM::exchangeCompareEq");
#if 0
/* We do not recognize this well, see #546 */
/* We do not recognize this well */
change_made |= analyse(bb, &IdiomsLLVM::exchangeCompareNeq,
"IdiomsLLVM::exchangeCompareNeq");
#endif

View File

@ -1476,7 +1476,7 @@ Instruction * IdiomsMagicDivMod::magicSignedDiv8neg(BasicBlock::iterator iter) c
*/
Instruction * IdiomsMagicDivMod::signedMod1(BasicBlock::iterator iter) const {
/*
* Derivation tree (ARM/ELF, idiom based on #943):
* Derivation tree (ARM/ELF):
*
* add
* /\

View File

@ -407,7 +407,7 @@ namespace retdec {
namespace bin2llvmir {
/**
* Sample in #730 8A5C:
* Sample 8A5C:
* 160d8: ea00043b b 0x171cc
* 160dc: ef900026 svc 0x00900026
* 160e0: ea000439 b 0x171cc

View File

@ -157,8 +157,7 @@ bool UnreachableFuncs::optimizationCanRun() const {
}
// The main function has to be a definition, not just a declaration. This
// is needed when decompiling shared libraries containing an import of main
// (see #1387).
// is needed when decompiling shared libraries containing an import of main.
if (mainFunc->isDeclaration()) {
return false;
}

View File

@ -3010,7 +3010,6 @@ string cGram::subanalyze(const string input, cGram::errcode *err) {
showsubs(substitutions);
#endif
//Fix of the bug #914
unsigned tempPos = b36toint(current_sub_id);
if ((tempPos+1) >= substitutions.size()) {
errString = string("") + "cGram::subanalyze: Syntax error: Non-existent substitution " + current_sub_id + ".";

View File

@ -303,7 +303,7 @@ void DwarfFile::loadDIE(Dwarf_Die die, DwarfBaseElement* &parent, int lvl)
DwarfBaseElement* parentElement = parent;
parent = nullptr;
// DIE name -- unused, but without it there is a SEG FAULT for some reason, see #1027.
// DIE name -- unused, but without it there is a SEG FAULT for some reason.
//
char *dieName = nullptr;
bool localname = false;

View File

@ -151,7 +151,7 @@ DwarfVar *DwarfVarContainer::getVarByName(string n)
* @return Added parameter or existing one.
*
* TODO: podla mena to nie je 100%, v jednom DIE nemusi byt meno nastavene.
* v priklade z #820 by sa dali unikatne prepojit podla DW_AT_decl_file + DW_AT_decl_line.
* V jednom samplu sa dali unikatne prepojit podla DW_AT_decl_file + DW_AT_decl_line.
* neviem ale ci je toto nastaven vzdy, ideal by bolo kontextove nacitanie, ktore by vedelo
* ku ktorej funkcii parameter partri, ktory v poradi je a ak by na tom indexe uz nieco
* existovalo tak by sa to len aktualizovalo a nevytvaralo nove.

View File

@ -168,7 +168,6 @@ bool isStrangeFeedface(const std::string &filePath)
}
}
// See #1912 for detailed information on this condition
if (ints[0] == 0xfeedface && ints[1] == 0x10 && ints[2] == 0x02)
{
// Maximal valid Mach-O value is 0x0b but 0x10 will be safer and

View File

@ -428,7 +428,7 @@ void CoffDetector::detectArchitecture()
result = "ARM (little endian)";
break;
case PELIB_IMAGE_FILE_MACHINE_THUMB:
// "ARM or THUMB (interworking)"; see bug #523
// "ARM or THUMB (interworking)";
result = "ARM";
break;
case PELIB_IMAGE_FILE_MACHINE_ARMNT:

View File

@ -403,7 +403,7 @@ void PeDetector::detectArchitecture()
result = "ARM (little endian)";
break;
case PELIB_IMAGE_FILE_MACHINE_THUMB:
// "ARM or THUMB (interworking)"; see bug #523
// "ARM or THUMB (interworking)";
result = "ARM";
break;
case PELIB_IMAGE_FILE_MACHINE_ARMNT:

View File

@ -630,14 +630,14 @@ bool HLLWriter::emitFunction(ShPtr<Function> func) {
emitModuleNameForFuncIfAvailable(func);
emitAddressRangeForFuncIfAvailable(func);
emitLineRangeForFuncIfAvailable(func);
// TODO Disable emission of wrapper info until #1399 is solved.
// TODO Disable emission of wrapper info until #189 is solved.
// emitWrapperInfoForFuncIfAvailable(func);
emitClassInfoIfAvailable(func);
emitDemangledNameIfAvailable(func);
emitDetectedCryptoPatternsForFuncIfAvailable(func);
emitLLVMIRFixerWarningForFuncIfAny(func);
// The comment HAS to be put as the LAST info, right before the function's
// signature. IDA plugin relies on that (#1645).
// signature. IDA plugin relies on that.
emitCommentIfAvailable(func);
func->accept(this);

View File

@ -1053,7 +1053,7 @@ void CHLLWriter::visit(ShPtr<IntType> type) {
}
// Emit 8-bit integers as chars, not as int8_t/uint8_t, because char is
// more readable. See #1150 for more details.
// more readable.
if (type->getSize() == 8) {
if (type->isUnsigned()) {
out << "unsigned ";

View File

@ -89,7 +89,7 @@ ShPtr<Type> Variable::getType() const {
* - Internal variables correspond to variables that either have 'internal
* linkage' in LLVM IR or are ordinary local variables.
* - External variables correspond to variables that either have 'external
* linkage' or are used in a volatile load/store operation (see #1146).
* linkage' or are used in a volatile load/store operation.
*
* By default, variables are created as internal variables. To make them
* external, call @c markAsExternal().

View File

@ -34,7 +34,7 @@ namespace llvmir2hll {
namespace {
// To produce deterministic results (#1386), we need to order the basic blocks
// To produce deterministic results, we need to order the basic blocks
// by their name.
struct ByNameComparator {
bool operator()(const llvm::BasicBlock *b1, const llvm::BasicBlock *b2) const {

View File

@ -245,8 +245,8 @@ void OptimizerManager::optimize(ShPtr<Module> m) {
// WhileTrueToForLoopOptimizer should be run before
// WhileTrueToWhileCondOptimizer.
run<WhileTrueToForLoopOptimizer>(m, va, arithmExprEvaluator);
// TODO The WhileTrueToUForLoopOptimizer does nothing at the moment (see
// commit a5f4988 and #1358), so it makes no sense to run it.
// TODO The WhileTrueToUForLoopOptimizer does nothing at the moment, so it
// makes no sense to run it.
#if 0
// WhileTrueToUForLoopOptimizer should be run after
// WhileTrueToForLoopOptimizer (WhileTrueToForLoopOptimizer may produce

View File

@ -234,7 +234,7 @@ void CopyPropagationOptimizer::performOptimization() {
// For each def-use chain...
// We have to iterate over an ordered DU chain to make the optimization
// deterministic (#1386).
// deterministic.
for (const auto &du : ordered(ducs->du)) {
// Currently, the optimizer is unable to optimize cases when there is
// more than one use. If this is the case, skip the chain to make the
@ -272,7 +272,7 @@ void CopyPropagationOptimizer::performOptimization() {
// Remove statements that are to be removed and update the CFG.
// We have to iterate over ordered statements to make the optimization
// deterministic (#1386).
// deterministic.
for (const auto &stmt : ordered(toRemoveStmtsPreserveCalls)) {
// Since there may be function calls in the statement, we have to
// preserve them. Therefore, we store the result of
@ -368,8 +368,7 @@ void CopyPropagationOptimizer::handleCaseEmptyUses(ShPtr<Statement> stmt,
return;
}
// Do not optimize external variables (used in a volatile load/store, see
// #1146).
// Do not optimize external variables (used in a volatile load/store).
if (stmtLhsVar->isExternal()) {
return;
}
@ -423,8 +422,7 @@ void CopyPropagationOptimizer::handleCaseSingleUse(ShPtr<Statement> stmt,
return;
}
// Do not optimize external variables (used in a volatile load/store, see
// #1146).
// Do not optimize external variables (used in a volatile load/store).
if (stmtLhsVar->isExternal()) {
return;
}
@ -698,8 +696,7 @@ bool CopyPropagationOptimizer::shouldBeIncludedInDefUseChains(
return false;
}
// Do not optimize external variables (used in a volatile load/store, see
// #1146).
// Do not optimize external variables (used in a volatile load/store).
if (var->isExternal()) {
return false;
}

View File

@ -87,7 +87,7 @@ bool DeadLocalAssignOptimizer::canBeOptimized(ShPtr<Variable> var,
}
// We do not want to optimize external variables (used in a volatile
// load/store, see #1146).
// load/store).
if (var->isExternal()) {
return false;
}

View File

@ -552,7 +552,7 @@ bool GlobalToLocalOptimizer::globalVarMayBeRemovedAsUnused(ShPtr<Variable> var)
// Note: Even though we do not optimize external global variables, we want
// to remove them if they are not used anywhere in the module. If we
// did not do that, all such external global variables would remain
// in the source code. See #1166 for an example.
// in the source code.
return true;
}

View File

@ -124,7 +124,7 @@ void SimpleCopyPropagationOptimizer::tryOptimization(ShPtr<Statement> stmt) {
if (lhsVar->isExternal()) {
// We do not want to optimize external variables (used in a volatile
// load/store, see #1146).
// load/store).
return;
}

View File

@ -44,7 +44,7 @@ ShPtr<ConstInt> getArgAsConstInt(ShPtr<Expression> arg) {
//
// signal(SIGSTOP, SIG_IGN);
//
// TODO Is this valid under all circumstances? See #726.
// TODO Is this valid under all circumstances?
ShPtr<Expression> argWithoutCasts(skipCasts(arg));
// Treat the null pointer as zero (0). In this way, we can convert, e.g.,

View File

@ -377,7 +377,7 @@ ShPtr<Function> ReadableVarRenamer::getDeclaredFunc(ShPtr<CallExpr> expr) const
*/
ShPtr<Variable> ReadableVarRenamer::getVarFromCallArg(ShPtr<Expression> arg) const {
// Motivation: For example, the given function call is present when
// decompiling file enc_1_.exe from #1457:
// decompiling file enc_1_.exe:
//
// GetSystemTimeAsFileTime((struct FILETIME *)&v1);
//

View File

@ -192,7 +192,7 @@ bool PatternExtractor::processFile()
/**
* Check if we can use this 64-bit PowerPC file (issue #1892).
* Check if we can use this 64-bit PowerPC file.
*
* Problem is there is only one '.opd' section common for all code sections.
* This is problem if multiple code sections are present because we do not know

View File

@ -360,7 +360,7 @@ char *PDBFile::extract_stream(PDB_DWORD *pages, int num_pages)
*/
PDBFileState PDBFile::load_pdb_v200(void)
{
//TODO - add support for PDB version 2.00 #1270
//TODO - add support for PDB version 2.00
return PDB_STATE_UNSUPPORTED_VERSION;
}

View File

@ -127,7 +127,6 @@ bool PDBFunction::parse_symbol(PDBGeneralSymbol *symbol, PDBTypes *types, PDBSym
type_index = func_sym->typind;
type_def = reinterpret_cast<PDBTypeFunction *>(types->get_type_by_index(type_index));
// #1471
if (type_def == nullptr || type_def->type_class != PDBTYPE_FUNCTION)
{
return false;
@ -314,7 +313,6 @@ void PDBSymbols::parse_symbols(void)
new_function = new PDBFunction(m); // Create new function
new_function->parse_symbol(symbol, types, this);
// #1471
if (new_function == nullptr || new_function->type_def == nullptr || new_function->type_def->type_class != PDBTYPE_FUNCTION)
{
delete new_function;

View File

@ -1226,7 +1226,7 @@ Signature ppcElfNrv2eSignature =
};
// Modified UPX stubs
// psyb0t - MIPS Little-endian ELF (#1255)
// psyb0t - MIPS Little-endian ELF
Signature psyb0t_mipsLeElfNrv2bSignature =
{
0xE0, 0x00, 0x11, 0x04, // BAL <Routine for creating memory regions>
@ -1239,7 +1239,7 @@ Signature psyb0t_mipsLeElfNrv2bSignature =
0xC2, 0x77, 0x09, 0x00 // SRL $t6, $t1, 31
};
// lshttpd - x86 ELF (#1255)
// lshttpd - x86 ELF
Signature lshttpd_x86ElfLzmaSignature =
{
0xE8, 0x8E, 0x0C, 0x00, 0x00, // CALL <Routine for creating memory regions>

View File

@ -396,7 +396,7 @@ bool ByteValueStorage::getDouble(std::uint64_t address, double& res) const
}
}
// 2.33 (0x4002a3d7 0a3d70a4) in data section as: a4703d0a d7a30240.
// New ARM compilers from #960 is also generating this kind of double constants.
// New ARM compilers are also generating this kind of double constants.
// We are not sure, what part of binary determines which kind of double constants are used.
// Currently we use new kind for ARMs > version 5.
// To find relevant info, google: "ARM double mixed endian".

View File

@ -456,7 +456,6 @@ TEST_F(PHI2SeqTests, cycleVarDepend06)
{
parseInput(R"(
; Testing cycle variable dependency. Two cycles with same predecessor block. Block with cycle doesn't have successor on its own.
; This test was created for testing the problem #1055.
@.str = private unnamed_addr constant [20 x i8] c"Argument %d %d %d:\0A\00", align 1

View File

@ -502,7 +502,7 @@ TEST_F(UnreachableFuncsTests, mainOnlyDeclaration)
parseInput(R"(
; When the main function is just a declaration (i.e. it has no body), behave
; like there is no main function. This is needed when decompiling shared
; libraries containing an import of main (see #1387).
; libraries containing an import of main.
; Can't be optimized (see above).
define void @func() {

View File

@ -50,7 +50,7 @@ TEST_F(GccDemanglerTests, DoNotDemangleCppClassNamesWhenCharacterCountIsBad)
TEST_F(GccDemanglerTests, DoNotDemangleCppClassNamesWhenTheyDoNotMatchRegex)
{
DEM_EQ("enc_vad_21363218732487324784rufdekdfbnerwquie2r6732", ""); // #1495
DEM_EQ("enc_vad_21363218732487324784rufdekdfbnerwquie2r6732", "");
DEM_EQ(" 7Polygon", ""); // std::regex_match
DEM_EQ("7Polygon ", ""); // std::regex_match
DEM_EQ(" 7Polygon ", ""); // std::regex_match

View File

@ -104,7 +104,7 @@ OptimizeNoAssignStmtOneUseEvenIfLhsVarIsExternal) {
// Add a body to the testing function:
//
// a = 1 (VarDefStmt, where 'a' is an 'external' variable comming from a
// volatile load/store, see #1146)
// volatile load/store)
// b = a (VarDefStmt)
// return b
//
@ -361,7 +361,7 @@ DoNotOptimizeWhenAuxiliaryVariableIsExternal) {
//
// a = 1 (VarDefStmt)
// b = a (VarDefStmt, where 'b' is an 'external' variable comming from a
// volatile load/store, see #1146)
// volatile load/store)
// return b
//
ShPtr<Variable> varA(Variable::create("a", IntType::create(16)));

View File

@ -180,7 +180,7 @@ DoNotEliminateAssignStmtWhenVariableIsExternal) {
// Set-up the module.
//
// void test() {
// d = 1; (d is 'external' and comes from a volatile store, see #1146)
// d = 1; (d is 'external' and comes from a volatile store)
// }
//
ShPtr<Variable> varD(Variable::create("d", IntType::create(32)));

View File

@ -306,7 +306,7 @@ DoNotOptimizeAssignmentIntoExternalVariable) {
//
// def test():
// a = 1 (VarDefStmt, where 'a' is external and comes from a volatile
// store, see #1146)
// store)
//
ShPtr<Variable> varA(Variable::create("a", IntType::create(16)));
varA->markAsExternal();

View File

@ -325,8 +325,7 @@ DoNotOptimizeIfLhsIsExternalVariable) {
// Set-up the module.
//
// void test() {
// a = b; // a is 'external' and comes from a volatile store, see
// // #1146).
// a = b; // a is 'external' and comes from a volatile store
// return a;
// }
//