{
if ( auto *CI = dyn_cast<CallInst>(I) ) {
Function *fun = CI->getCalledFunction();
+ if (fun == NULL)
+ return false;
+
StringRef funName = fun->getName();
- if ( (CI->isTailCall() && funName.contains("atomic_")) ||
- funName.contains("atomic_compare_exchange_") ) {
+ // todo: come up with better rules for function name checking
+ if ( funName.contains("atomic_") ) {
// printArgs(CI);
return true;
+ } else if (funName.contains("atomic") ) {
+ // errs() << "intercepted atomic calls: " << *I << "\n";
+ return true;
}
}