sanitizer_platform.h revision b8a141f3783d796eabf45fabff82f3e08244e338
1f2038fb01417bcf7698b87a5dfaa4a861539618aerik.corry@gmail.com//===-- sanitizer_platform.h ------------------------------------*- C++ -*-===// 2a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org// 3a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org// The LLVM Compiler Infrastructure 4a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org// 5a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org// This file is distributed under the University of Illinois Open Source 6a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org// License. See LICENSE.TXT for details. 7a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org// 8a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org//===----------------------------------------------------------------------===// 9a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org// 10a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org// Common platform macros. 11a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org//===----------------------------------------------------------------------===// 12a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org 13a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#ifndef SANITIZER_PLATFORM_H 14a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#define SANITIZER_PLATFORM_H 15a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org 16a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if !defined(__linux__) && !defined(__APPLE__) && !defined(_WIN32) 17a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org# error "This operating system is not supported" 18a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#endif 19a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org 20a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if defined(__linux__) 21a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org# define SANITIZER_LINUX 1 22a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#else 23a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org# define SANITIZER_LINUX 0 24a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#endif 25a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org 26a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if defined(__APPLE__) 27a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org# define SANITIZER_MAC 1 28a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org# include <TargetConditionals.h> 29a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org# if TARGET_OS_IPHONE 30a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org# define SANITIZER_IOS 1 31a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org# else 327979bbb1df2eaff193e85d44c8da1ffa1525b7fcfschneider@chromium.org# define SANITIZER_IOS 0 331c09276ce2ac5214e81ca554360b9f101187893blrn@chromium.org# endif 34a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#else 35fb144a0716afe7ab8bf245f2391a9e53b3db3c89fschneider@chromium.org# define SANITIZER_MAC 0 367979bbb1df2eaff193e85d44c8da1ffa1525b7fcfschneider@chromium.org# define SANITIZER_IOS 0 37a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#endif 38ddda9e81d3175130f2029c0e1205d265a00c32edjkummerow@chromium.org 39ddda9e81d3175130f2029c0e1205d265a00c32edjkummerow@chromium.org#if defined(_WIN32) 40a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org# define SANITIZER_WINDOWS 1 41a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#else 42a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org# define SANITIZER_WINDOWS 0 43a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#endif 44a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org 45a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#if defined(__ANDROID__) || defined(ANDROID) 46a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org# define SANITIZER_ANDROID 1 47a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#else 48fb37721ea34922d8758d5cb26ae465aaf241e6b6yangguo@chromium.org# define SANITIZER_ANDROID 0 49a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#endif 50a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org 51a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#define SANITIZER_POSIX (SANITIZER_LINUX || SANITIZER_MAC) 52a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org 53a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#endif // SANITIZER_PLATFORM_H 54a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org