Closed GoogleCodeExporter closed 9 years ago
Few notes:
x86_64: sizeof 16, alignment 16
i386: sizeof 12, alignment 4
So, on i386 we will need to instrument long double accesses as 3 (or 2!) 4-byte
accesses.
On x86_64 we can do it with one 16-bit access.
gcc already does that:
% cat long_double.cc
long double a[10];
void foo(int i) {
a[i] = 1;
}
% gcc -fsanitize=address long_double.cc -O2 -S -o - -m64 | grep __asan_report
call __asan_report_store16
% gcc -fsanitize=address long_double.cc -O2 -S -o - -m32 | grep __asan_report
%
Original comment by konstant...@gmail.com
on 6 Feb 2013 at 10:52
http://llvm.org/viewvc/llvm-project?rev=175266&view=rev
implements long double support in 64-bit
I am not sure if 32-bit long double is worth the trouble
Original comment by konstant...@gmail.com
on 15 Feb 2013 at 12:49
That solution was wrong, reverted in
http://llvm.org/viewvc/llvm-project?rev=175442&view=rev .
Original comment by konstant...@gmail.com
on 18 Feb 2013 at 1:48
Second attempt:
http://llvm.org/viewvc/llvm-project?rev=175507&view=rev
http://llvm.org/viewvc/llvm-project?rev=175508&view=rev
Now both 32- and 64-bit is fixed.
Original comment by konstant...@gmail.com
on 19 Feb 2013 at 11:48
Original issue reported on code.google.com by
gynv...@google.com
on 6 Feb 2013 at 10:32