<div style="font-family: arial, helvetica, sans-serif; font-size: 10pt">Hi Pedro, <div><br></div><div>I managed to understand the problem with doFinalization, but I still don't see the problem with doInitialization. </div>
<div>Could you please describe what's wrong in more detail? </div><div><br></div><div>Besides, tsan pass's doInitialization doesn't do anything than asan's doInitialization. </div><div><br></div><div>Thanks, </div>
<div>--kcc <br><br><div class="gmail_quote">On Wed, Nov 28, 2012 at 2:55 AM, Pedro Artigas <span dir="ltr"><<a href="mailto:partigas@apple.com" target="_blank">partigas@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello All,<br>
<br>
Context: Address Sanitizer is currently being fixed because it uses the doFinalization(Module) of the function pass as a module pass that runs after the function passes and that is not a valid assumption, a separate module pass doing transformations in the run method is the clean solution.<br>

<br>
Thread sanitizer has the similar dual problem, it uses doInitialization as the run of a module pass that executes prior to the function passes.<br>
<br>
Unfortunately there is no simple WAR for the issue on Thread Sanitizer because doInitialization can be called just once and, therefore, we cannot just ignore the first call (on doFinalization we ignore all but the first call as a WAR, that works when a single call is made or when multiple calls are made for WAR reasons)<br>

<br>
I cannot check in my changes before Thread Sanitizer gets fixed as they would break it, I am hoping the authors of Thread Sanitizer are the same (or as helpful) as the Address Sanitizer ones (thanks for the work on the fix for that one).<br>

<br>
Any info / insight is appreciated.<br>
<br>
Thanks<br>
<span class="HOEnZb"><font color="#888888"><br>
Pedro Artigas<br>
</font></span></blockquote></div><br></div></div>