Closed ramosian-glider 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
%
Reported by konstantin.s.serebryany
on 2013-02-06 10:52:39
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
Reported by konstantin.s.serebryany
on 2013-02-15 12:49:35
That solution was wrong, reverted in
http://llvm.org/viewvc/llvm-project?rev=175442&view=rev .
Reported by konstantin.s.serebryany
on 2013-02-18 13:48:01
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.
Reported by konstantin.s.serebryany
on 2013-02-19 11:48:11
Fixed
Adding Project:AddressSanitizer as part of GitHub migration.
Reported by ramosian.glider
on 2015-07-30 09:13:40
Originally reported on Google Code with ID 151
Reported by
gynvael@google.com
on 2013-02-06 10:32:31