[Fuzzer] Guard no_sanitize_memory attributes behind __has_feature.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@263787 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Benjamin Kramer 2016-03-18 14:19:19 +00:00
parent 9da51d78c8
commit 3ac2aa592d

View File

@ -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 *Prefix) {
{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)