[erlang-bugs] A bug in address patching in hipe_x86.c?

Yiannis Tsiouris <>
Fri Jan 31 13:58:35 CET 2014


While trying to locate a bug in our x86 backend that caused a segfault at 
load-time, we came at something that we think is a bug in the final address 
calculation. In functions hipe_patch_load_fe and hipe_patch_insn in 
erts/emulator/hipe/hipe_x86.c file we think that the final address should always 
be calculated as the sum of "address" and "value". We base this on our 
observation that "address" seems to be the offset and "value" seems to be the 
base address.

The patch that works for us is attached.

If any developer can confirm that this is a bug (and that the patch is the 
correct way to fix it) I can submit it properly (if needed). :-)

Yiannis (as member of the ErLLVM team)

Yiannis Tsiouris
Ph.D. student,
Software Engineering Laboratory,
National Technical University of Athens
WWW: http://www.softlab.ntua.gr/~gtsiour

-------------- next part --------------
A non-text attachment was scrubbed...
Name: address-patching-in-x86.diff
Type: text/x-patch
Size: 769 bytes
Desc: not available
URL: <http://erlang.org/pipermail/erlang-bugs/attachments/20140131/7f8ee50b/attachment.bin>

More information about the erlang-bugs mailing list