1*0b57cec5SDimitry Andric //===-- Valgrind.cpp - Implement Valgrind communication ---------*- C++ -*-===// 2*0b57cec5SDimitry Andric // 3*0b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*0b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5*0b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*0b57cec5SDimitry Andric // 7*0b57cec5SDimitry Andric //===----------------------------------------------------------------------===// 8*0b57cec5SDimitry Andric // 9*0b57cec5SDimitry Andric // Defines Valgrind communication methods, if HAVE_VALGRIND_VALGRIND_H is 10*0b57cec5SDimitry Andric // defined. If we have valgrind.h but valgrind isn't running, its macros are 11*0b57cec5SDimitry Andric // no-ops. 12*0b57cec5SDimitry Andric // 13*0b57cec5SDimitry Andric //===----------------------------------------------------------------------===// 14*0b57cec5SDimitry Andric 15*0b57cec5SDimitry Andric #include <stddef.h> 16*0b57cec5SDimitry Andric #include "llvm/Support/Valgrind.h" 17*0b57cec5SDimitry Andric #include "llvm/Config/config.h" 18*0b57cec5SDimitry Andric 19*0b57cec5SDimitry Andric #if HAVE_VALGRIND_VALGRIND_H 20*0b57cec5SDimitry Andric #include <valgrind/valgrind.h> 21*0b57cec5SDimitry Andric RunningOnValgrind()22*0b57cec5SDimitry Andricbool llvm::sys::RunningOnValgrind() { 23*0b57cec5SDimitry Andric return RUNNING_ON_VALGRIND; 24*0b57cec5SDimitry Andric } 25*0b57cec5SDimitry Andric ValgrindDiscardTranslations(const void * Addr,size_t Len)26*0b57cec5SDimitry Andricvoid llvm::sys::ValgrindDiscardTranslations(const void *Addr, size_t Len) { 27*0b57cec5SDimitry Andric VALGRIND_DISCARD_TRANSLATIONS(Addr, Len); 28*0b57cec5SDimitry Andric } 29*0b57cec5SDimitry Andric 30*0b57cec5SDimitry Andric #else // !HAVE_VALGRIND_VALGRIND_H 31*0b57cec5SDimitry Andric RunningOnValgrind()32*0b57cec5SDimitry Andricbool llvm::sys::RunningOnValgrind() { 33*0b57cec5SDimitry Andric return false; 34*0b57cec5SDimitry Andric } 35*0b57cec5SDimitry Andric ValgrindDiscardTranslations(const void * Addr,size_t Len)36*0b57cec5SDimitry Andricvoid llvm::sys::ValgrindDiscardTranslations(const void *Addr, size_t Len) { 37*0b57cec5SDimitry Andric } 38*0b57cec5SDimitry Andric 39*0b57cec5SDimitry Andric #endif // !HAVE_VALGRIND_VALGRIND_H 40*0b57cec5SDimitry Andric