[llvm] r263787 - [Fuzzer] Guard no_sanitize_memory attributes behind __has_feature.

Benjamin Kramer via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 18 07:19:19 PDT 2016


Author: d0k
Date: Fri Mar 18 09:19:19 2016
New Revision: 263787

URL: http://llvm.org/viewvc/llvm-project?rev=263787&view=rev
Log:
[Fuzzer] Guard no_sanitize_memory attributes behind __has_feature.

Otherwise GCC fails to build it because it doesn't know the attribute.

Modified:
    llvm/trunk/lib/Fuzzer/FuzzerLoop.cpp

Modified: llvm/trunk/lib/Fuzzer/FuzzerLoop.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/FuzzerLoop.cpp?rev=263787&r1=263786&r2=263787&view=diff
==============================================================================
--- llvm/trunk/lib/Fuzzer/FuzzerLoop.cpp (original)
+++ llvm/trunk/lib/Fuzzer/FuzzerLoop.cpp Fri Mar 18 09:19:19 2016
@@ -20,6 +20,14 @@
 #endif
 #endif
 
+#define NO_SANITIZE_MEMORY
+#if defined(__has_feature)
+#if __has_feature(memory_sanitizer)
+#undef NO_SANITIZE_MEMORY
+#define NO_SANITIZE_MEMORY __attribute__((no_sanitize_memory))
+#endif
+#endif
+
 extern "C" {
 // Re-declare some of the sanitizer functions as "weak" so that
 // libFuzzer can be linked w/o the sanitizers and sanitizer-coverage
@@ -92,7 +100,7 @@ void Fuzzer::DumpCurrentUnit(const char
       {CurrentUnitData, CurrentUnitData + CurrentUnitSize}, Prefix);
 }
 
-__attribute__((no_sanitize_memory))
+NO_SANITIZE_MEMORY
 void Fuzzer::DeathCallback() {
   if (!CurrentUnitSize) return;
   Printf("DEATH:\n");
@@ -134,7 +142,7 @@ void Fuzzer::InterruptCallback() {
   _Exit(0);  // Stop right now, don't perform any at-exit actions.
 }
 
-__attribute__((no_sanitize_memory))
+NO_SANITIZE_MEMORY
 void Fuzzer::AlarmCallback() {
   assert(Options.UnitTimeoutSec > 0);
   if (!CurrentUnitSize)




More information about the llvm-commits mailing list