interception_type_test.cc revision 276789
1//===-- interception_type_test.cc -------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file is a part of AddressSanitizer, an address sanity checker. 11// 12// Compile-time tests of the internal type definitions. 13//===----------------------------------------------------------------------===// 14 15#if defined(__linux__) || defined(__APPLE__) 16 17#include "interception.h" 18#include <sys/types.h> 19#include <stddef.h> 20#include <stdint.h> 21 22COMPILER_CHECK(sizeof(::SIZE_T) == sizeof(size_t)); 23COMPILER_CHECK(sizeof(::SSIZE_T) == sizeof(ssize_t)); 24COMPILER_CHECK(sizeof(::PTRDIFF_T) == sizeof(ptrdiff_t)); 25COMPILER_CHECK(sizeof(::INTMAX_T) == sizeof(intmax_t)); 26 27#ifndef __APPLE__ 28COMPILER_CHECK(sizeof(::OFF64_T) == sizeof(off64_t)); 29#endif 30 31// The following are the cases when pread (and friends) is used instead of 32// pread64. In those cases we need OFF_T to match off_t. We don't care about the 33// rest (they depend on _FILE_OFFSET_BITS setting when building an application). 34# if defined(__ANDROID__) || !defined _FILE_OFFSET_BITS || \ 35 _FILE_OFFSET_BITS != 64 36COMPILER_CHECK(sizeof(::OFF_T) == sizeof(off_t)); 37# endif 38 39#endif 40