CallInst::getCalledFunction() may return a null function
[c11llvm.git] / isAtomicCall.hpp
index 419312cf6f380fb4a4dc5041426a0ada0ec6ff40..a12761964986dd76fa2483af5bf6a3f31d397eb0 100644 (file)
@@ -6,11 +6,14 @@ bool isAtomicCall(Instruction *I)
 {
        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_") ) {
-                       printArgs(CI);
+                       // printArgs(CI);
                        return true;
                }
        }
@@ -26,7 +29,7 @@ void printArgs (CallInst *CI)
        User::op_iterator begin = CI->arg_begin();
        User::op_iterator end = CI->arg_end();
 
-       if (funName.find("atomic_") != -1) {
+       if ( funName.contains("atomic_") ) {
                std::vector<Value *> parameters;
 
                for (User::op_iterator it = begin; it != end; ++it) {