This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/55341] address-sanitizer and Fortran


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...


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]