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

Reply via email to