[PATCH] tsan: support C++ exceptions

Dmitry Vyukov dvyukov at google.com
Mon Jun 29 10:57:45 PDT 2015


> In what sense do you mean control does not leave the function?


In the direct sense. Sometimes control leave the current function on exception, and sometimes it is not. I need to execute __tsan_func_exit only for the latter cases.

> Think of 'resume' as 'ret' for exception handling. It means "transfer

>  control to the next landingpad up the stack", similar to how return

>  transfers to the return address. You could also insert your code before

>  every 'resume' if you want to avoid dealing branches, phis, etc.


But it is possible that the next landingpad up the stack is within the same function. In such case I don't need to execute __tsan_func_exit. That's what I tried to show with the examples.


http://reviews.llvm.org/D10740

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list