[PATCH] tsan: support C++ exceptions

Dmitry Vyukov dvyukov at google.com
Mon Jun 29 09:50:12 PDT 2015


> You could also insert your code before every 'resume' if you want to avoid dealing branches, phis, etc.


I don't think it's that simple. A function may not have any landing pads yet (no dtors/catches).

> First, find all call insts that might throw. If there are any, create a new landingpad for them.


What if the code is:

void foo() {

  try {
    bar();
  } catch (...) {
    ...
  }

}

I think it will be wrong to add a __tsan_func_exit cleanup to bar (or extend the existing catch landing pad), because control does not leave the function.
Is it correct?


http://reviews.llvm.org/D10740

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






More information about the llvm-commits mailing list