@@ -205,7 +205,7 @@ check_reloc_offset(uint32 target_section_size, uint64 reloc_offset,
205205bool
206206apply_relocation (AOTModule * module , uint8 * target_section_addr ,
207207 uint32 target_section_size , uint64 reloc_offset ,
208- uint64 reloc_addend , uint32 reloc_type , void * symbol_addr ,
208+ int64 reloc_addend , uint32 reloc_type , void * symbol_addr ,
209209 int32 symbol_index , char * error_buf , uint32 error_buf_size )
210210{
211211 int32 val , imm_hi , imm_lo , insn ;
@@ -216,10 +216,10 @@ apply_relocation(AOTModule *module, uint8 *target_section_addr,
216216 case R_RISCV_32 :
217217 {
218218 uint32 val_32 =
219- (uint32 )(uintptr_t )(( uint8 * ) symbol_addr + reloc_addend );
219+ (uint32 )(( uintptr_t )symbol_addr + ( intptr_t ) reloc_addend );
220220
221221 CHECK_RELOC_OFFSET (sizeof (uint32 ));
222- if (val_32 != (uintptr_t )(( uint8 * ) symbol_addr + reloc_addend )) {
222+ if (val_32 != (( uintptr_t )symbol_addr + ( intptr_t ) reloc_addend )) {
223223 goto fail_addr_out_of_range ;
224224 }
225225
@@ -229,7 +229,7 @@ apply_relocation(AOTModule *module, uint8 *target_section_addr,
229229 case R_RISCV_64 :
230230 {
231231 uint64 val_64 =
232- (uint64 )(uintptr_t )(( uint8 * ) symbol_addr + reloc_addend );
232+ (uint64 )(( uintptr_t )symbol_addr + ( intptr_t ) reloc_addend );
233233 CHECK_RELOC_OFFSET (sizeof (uint64 ));
234234 bh_memcpy_s (addr , 8 , & val_64 , 8 );
235235 break ;
@@ -273,10 +273,10 @@ apply_relocation(AOTModule *module, uint8 *target_section_addr,
273273
274274 case R_RISCV_HI20 :
275275 {
276- val = (int32 )(intptr_t )(( uint8 * ) symbol_addr + reloc_addend );
276+ val = (int32 )(( intptr_t )symbol_addr + ( intptr_t ) reloc_addend );
277277
278278 CHECK_RELOC_OFFSET (sizeof (uint32 ));
279- if (val != (intptr_t )(( uint8 * ) symbol_addr + reloc_addend )) {
279+ if (val != (( intptr_t )symbol_addr + ( intptr_t ) reloc_addend )) {
280280 goto fail_addr_out_of_range ;
281281 }
282282
@@ -290,10 +290,10 @@ apply_relocation(AOTModule *module, uint8 *target_section_addr,
290290
291291 case R_RISCV_LO12_I :
292292 {
293- val = (int32 )(intptr_t )(( uint8 * ) symbol_addr + reloc_addend );
293+ val = (int32 )(( intptr_t )symbol_addr + ( intptr_t ) reloc_addend );
294294
295295 CHECK_RELOC_OFFSET (sizeof (uint32 ));
296- if (val != (intptr_t )(( uint8 * ) symbol_addr + reloc_addend ) ) {
296+ if (val != (intptr_t )symbol_addr + ( intptr_t ) reloc_addend ) {
297297 goto fail_addr_out_of_range ;
298298 }
299299
@@ -307,10 +307,10 @@ apply_relocation(AOTModule *module, uint8 *target_section_addr,
307307
308308 case R_RISCV_LO12_S :
309309 {
310- val = (int32 )(intptr_t )(( uint8 * ) symbol_addr + reloc_addend );
310+ val = (int32 )(( intptr_t )symbol_addr + ( intptr_t ) reloc_addend );
311311
312312 CHECK_RELOC_OFFSET (sizeof (uint32 ));
313- if (val != (intptr_t )(( uint8 * ) symbol_addr + reloc_addend )) {
313+ if (val != (( intptr_t )symbol_addr + ( intptr_t ) reloc_addend )) {
314314 goto fail_addr_out_of_range ;
315315 }
316316
0 commit comments