Remove hidden static in run_basic_block_analysis

This commit is contained in:
wargio 2024-01-06 14:39:31 +08:00 committed by Anton Kochkov
parent 36804f10f5
commit aa7e6d80ad
3 changed files with 6 additions and 5 deletions

View file

@ -139,6 +139,7 @@ RZ_API RzAnalysis *rz_analysis_new(void) {
analysis->hash = rz_hash_new(); analysis->hash = rz_hash_new();
analysis->debug_info = rz_analysis_debug_info_new(); analysis->debug_info = rz_analysis_debug_info_new();
analysis->cmpval = UT64_MAX; analysis->cmpval = UT64_MAX;
analysis->lea_jmptbl_ip = UT64_MAX;
return analysis; return analysis;
} }

View file

@ -643,7 +643,6 @@ static RzAnalysisBBEndCause run_basic_block_analysis(RzAnalysisTaskItem *item, R
gotoBeach(RZ_ANALYSIS_RET_ERROR); gotoBeach(RZ_ANALYSIS_RET_ERROR);
} }
} }
static ut64 lea_jmptbl_ip = UT64_MAX;
ut64 last_reg_mov_lea_val = UT64_MAX; ut64 last_reg_mov_lea_val = UT64_MAX;
bool last_is_reg_mov_lea = false; bool last_is_reg_mov_lea = false;
bool last_is_push = false; bool last_is_push = false;
@ -986,7 +985,7 @@ static RzAnalysisBBEndCause run_basic_block_analysis(RzAnalysisTaskItem *item, R
? rz_analysis_walkthrough_jmptbl(analysis, fcn, bb, &params) ? rz_analysis_walkthrough_jmptbl(analysis, fcn, bb, &params)
: rz_analysis_walkthrough_casetbl(analysis, fcn, bb, &params); : rz_analysis_walkthrough_casetbl(analysis, fcn, bb, &params);
if (ret) { if (ret) {
lea_jmptbl_ip = jmp_aop.addr; analysis->lea_jmptbl_ip = jmp_aop.addr;
} }
} }
} }
@ -1267,7 +1266,7 @@ static RzAnalysisBBEndCause run_basic_block_analysis(RzAnalysisTaskItem *item, R
gotoBeach(RZ_ANALYSIS_RET_END); gotoBeach(RZ_ANALYSIS_RET_END);
} }
// switch statement // switch statement
if (analysis->opt.jmptbl && lea_jmptbl_ip != op.addr) { if (analysis->opt.jmptbl && analysis->lea_jmptbl_ip != op.addr) {
RzAnalysisJmpTableParams params = { RzAnalysisJmpTableParams params = {
.jmp_address = op.addr, .jmp_address = op.addr,
.entry_size = analysis->bits >> 3, .entry_size = analysis->bits >> 3,
@ -1361,8 +1360,8 @@ static RzAnalysisBBEndCause run_basic_block_analysis(RzAnalysisTaskItem *item, R
} }
} }
} }
if (lea_jmptbl_ip == op.addr) { if (analysis->lea_jmptbl_ip == op.addr) {
lea_jmptbl_ip = UT64_MAX; analysis->lea_jmptbl_ip = UT64_MAX;
} }
if (analysis->opt.ijmp) { if (analysis->opt.ijmp) {
if (continue_after_jump) { if (continue_after_jump) {

View file

@ -534,6 +534,7 @@ typedef struct rz_analysis_t {
RzHash *hash; RzHash *hash;
RzAnalysisDebugInfo *debug_info; ///< store all debug info parsed from DWARF, etc.. RzAnalysisDebugInfo *debug_info; ///< store all debug info parsed from DWARF, etc..
ut64 cmpval; ///< last compare value for jump table. ut64 cmpval; ///< last compare value for jump table.
ut64 lea_jmptbl_ip; ///< jump table x86 lea ip
} RzAnalysis; } RzAnalysis;
typedef enum rz_analysis_addr_hint_type_t { typedef enum rz_analysis_addr_hint_type_t {