diff options
| author | Michael Matz <matz@suse.de> | 2015-12-17 19:41:20 +0100 |
|---|---|---|
| committer | Michael Matz <matz@suse.de> | 2015-12-17 19:41:20 +0100 |
| commit | f15c0a93336ef42cec51d00667b5fd60fb309cd5 (patch) | |
| tree | 9c085e51cc8754463d27fac5d516fe9d7533c3c6 /include/stdarg.h | |
| parent | e264243adc0910fba204fd05292a8353e272bd0e (diff) | |
| download | tinycc-f15c0a93336ef42cec51d00667b5fd60fb309cd5.tar.gz tinycc-f15c0a93336ef42cec51d00667b5fd60fb309cd5.tar.bz2 | |
x86-64: fix shared libs
The introduction of read32le everywhere created a subtle issue, going
from
x = *(int*)p;
to
x = read32le(p);
is not equivalent if x is a larger than 32bit quantity, like an
address on x86_64, because read32le returns an unsigned int. The first
sign extends, the latter zero extends. This broke shared library
creation for gawk. It's enough to amend the case of the above
situation, cases like "write32le(p, read32le(p) +- something)" are okay,
no extensions happen or matter.
Diffstat (limited to 'include/stdarg.h')
0 files changed, 0 insertions, 0 deletions
