]> granicus.if.org Git - llvm/commitdiff
[libFuzzer] Portable implementation of `IsInterestingCoverageFile()`.
authorMarcos Pividori <mpividori@google.com>
Sun, 22 Jan 2017 01:27:47 +0000 (01:27 +0000)
committerMarcos Pividori <mpividori@google.com>
Sun, 22 Jan 2017 01:27:47 +0000 (01:27 +0000)
For Posix systems and Windows, we need to consider different cases.

Differential Revision: https://reviews.llvm.org/D28633

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292738 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Fuzzer/FuzzerIO.h
lib/Fuzzer/FuzzerIOPosix.cpp
lib/Fuzzer/FuzzerIOWindows.cpp
lib/Fuzzer/FuzzerTracePC.cpp

index 15bfd3d34727b8691eb4f88f09d9a0d627d88f74..17cf2ab6ac14720836f5a9097fb6544ac26c4db0 100644 (file)
@@ -40,6 +40,8 @@ std::string DirName(const std::string &FileName);
 // Returns path to a TmpDir.
 std::string TmpDir();
 
+bool IsInterestingCoverageFile(const std::string &FileName);
+
 void DupAndCloseStderr();
 
 void CloseStdout();
index 6d8edf6ff538f2ed9991635807b855daf0a63c1d..494ec9e6c8336d5f1a93fe9c90f894c7fde4bae3 100644 (file)
@@ -89,6 +89,18 @@ std::string TmpDir() {
   return "/tmp";
 }
 
+bool IsInterestingCoverageFile(const std::string &FileName) {
+  if (FileName.find("compiler-rt/lib/") != std::string::npos)
+    return false; // sanitizer internal.
+  if (FileName.find("/usr/lib/") != std::string::npos)
+    return false;
+  if (FileName.find("/usr/include/") != std::string::npos)
+    return false;
+  if (FileName == "<null>")
+    return false;
+  return true;
+}
+
 }  // namespace fuzzer
 
 #endif // LIBFUZZER_POSIX
index 056f0721a3362e1dd27ec31f83c3e6054b817489..e2a679733868e5d6215de6e80c57062ef1dce082 100644 (file)
@@ -279,6 +279,16 @@ std::string DirName(const std::string &FileName) {
 
 std::string TmpDir() { return "TODO: implement TmpDir"; }
 
+bool IsInterestingCoverageFile(const std::string &FileName) {
+  if (FileName.find("Program Files") != std::string::npos)
+    return false;
+  if (FileName.find("compiler-rt\\lib\\") != std::string::npos)
+    return false; // sanitizer internal.
+  if (FileName == "<null>")
+    return false;
+  return true;
+}
+
 }  // namespace fuzzer
 
 #endif // LIBFUZZER_WINDOWS
index 2e386af840499640902b3b6b6d6ef3d1461edccd..71f4b66f8bbb1bc320f2d41c3d70bacf04346f2c 100644 (file)
@@ -66,18 +66,6 @@ void TracePC::HandleCallerCallee(uintptr_t Caller, uintptr_t Callee) {
   HandleValueProfile(Idx);
 }
 
-static bool IsInterestingCoverageFile(std::string &File) {
-  if (File.find("compiler-rt/lib/") != std::string::npos)
-    return false; // sanitizer internal.
-  if (File.find("/usr/lib/") != std::string::npos)
-    return false;
-  if (File.find("/usr/include/") != std::string::npos)
-    return false;
-  if (File == "<null>")
-    return false;
-  return true;
-}
-
 void TracePC::InitializePrintNewPCs() {
   if (!DoPrintNewPCs) return;
   assert(!PrintedPCs);