diff --git a/irdb-libs/ir_builders/fill_in_indtargs.cpp b/irdb-libs/ir_builders/fill_in_indtargs.cpp index 67532fa100c68e5d27cc062bb7836cf1b20aca3c..9ca7a323b16da1fbceab81419aae457b923c76a3 100644 --- a/irdb-libs/ir_builders/fill_in_indtargs.cpp +++ b/irdb-libs/ir_builders/fill_in_indtargs.cpp @@ -2403,7 +2403,7 @@ V2: // we found a case in a rust program (xsv) where the switch table index // was loop invariant and hoisted outside of the loop. Thus, breaking I8 away from I6-I7. // So, we search a bit harder for I7 here. - if (!backup_until(table_index_str.c_str(), I7, I8, table_index_stop_if, "", true)) + if (!backup_until(table_index_str, I7, I8, table_index_stop_if, "", true)) return; const auto d7 = DecodedInstruction_t::factory(I7); @@ -2528,9 +2528,9 @@ V2: auto found_leas = InstructionSet_t(); - if (backup_until(lea_string1.c_str(), I5, I6, "", "", true)) + if (backup_until(lea_string1, I5, I6, "", "", true)) found_leas.insert(I5); - if (backup_until(lea_string2.c_str(), I5, I6, "", "", true)) + if (backup_until(lea_string2, I5, I6, "", "", true)) found_leas.insert(I5); // if we didn't find anything yet, .... @@ -2748,12 +2748,12 @@ V2: // Check whether the index register has been renamed between bounds-check and use // Only do this once for( auto i = 0; i < 2 ; i++) { - found_cmp = backup_until_or_move(cmp_str.c_str(), I1, search_start_instr, intermediate_write_instr, + found_cmp = backup_until_or_move(cmp_str, I1, search_start_instr, intermediate_write_instr, bound_stopif, "^jne$|^je$|^jeq$"); if (!found_cmp && intermediate_write_instr != nullptr) { auto temp = intermediate_write_instr->getBaseID(); // Remember BaseId for sanity check assert(temp != IRDB_SDK::BaseObj_t::NOT_IN_DATABASE); - found_and = backup_until_or_move(and_str.c_str(), I1, search_start_instr, intermediate_write_instr, + found_and = backup_until_or_move(and_str, I1, search_start_instr, intermediate_write_instr, bound_stopif); if (!found_and && intermediate_write_instr != nullptr) { // We should find the same possible write location for both checks @@ -2858,7 +2858,7 @@ V2: } } - if (backup_until(cmp_str.c_str(), I1, search_start_instr, bound_stopif,"^jne$|^je$|^jeq$")) + if (backup_until(cmp_str, I1, search_start_instr, bound_stopif,"^jne$|^je$|^jeq$")) { const auto d1 = DecodedInstruction_t::factory(I1); table_size = d1->getImmediate(); @@ -2869,7 +2869,7 @@ V2: << table_size << " at " << hex << I1->getAddress()->getVirtualOffset() << "\n"; found_table_size = true; } - else if (backup_until(and_str.c_str(), I1, search_start_instr, bound_stopif)) + else if (backup_until(and_str, I1, search_start_instr, bound_stopif)) { const auto d1 = DecodedInstruction_t::factory(I1); const auto d1SecondOp = d1->getOperand(1);