This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/55341] address-sanitizer and Fortran
- From: "kcc at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 23 Dec 2012 07:44:32 +0000
- Subject: [Bug fortran/55341] address-sanitizer and Fortran
- Auto-submitted: auto-generated
- References: <bug-55341-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55341
--- Comment #45 from Kostya Serebryany <kcc at gcc dot gnu.org> 2012-12-23 07:44:32 UTC ---
>> The point of failure is not in the object,
>> but in a routine called after a routine from this object finishes.
What if you remove -fsanitize=address for that single object?
Your explanation sounds like we are missing some of the return statements in
that routine. Consider this code:
foo();
bar();
foo is the guilty routine, bar is the routine where a failure happens.
- foo is entered, asan poisons redzones between all stack objects in foo.
- foo exits, all redzones should be unpoisoned. But due to some bug this does
not happen.
- bar enters and some of bar's stack variables have the same addresses as
redzones in foo, which are still poisoned. BOOM.
Just speculating...