Home | History | Annotate | Download | only in interception
      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 
     22 COMPILER_CHECK(sizeof(SIZE_T) == sizeof(size_t));
     23 COMPILER_CHECK(sizeof(SSIZE_T) == sizeof(ssize_t));
     24 COMPILER_CHECK(sizeof(PTRDIFF_T) == sizeof(ptrdiff_t));
     25 COMPILER_CHECK(sizeof(INTMAX_T) == sizeof(intmax_t));
     26 
     27 #ifndef __APPLE__
     28 COMPILER_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
     36 COMPILER_CHECK(sizeof(OFF_T) == sizeof(off_t));
     37 # endif
     38 
     39 #endif
     40