1 //===-- sanitizer_placement_new.h -------------------------------*- 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 shared between AddressSanitizer and ThreadSanitizer 11 // run-time libraries. 12 // 13 // The file provides 'placement new'. 14 // Do not include it into header files, only into source files. 15 //===----------------------------------------------------------------------===// 16 #ifndef SANITIZER_PLACEMENT_NEW_H 17 #define SANITIZER_PLACEMENT_NEW_H 18 19 #include "sanitizer_internal_defs.h" 20 21 namespace __sanitizer { 22 #if (SANITIZER_WORDSIZE == 64) || SANITIZER_MAC 23 typedef uptr operator_new_ptr_type; 24 #else 25 typedef u32 operator_new_ptr_type; 26 #endif 27 } // namespace __sanitizer 28 29 inline void *operator new(__sanitizer::operator_new_ptr_type sz, void *p) { 30 return p; 31 } 32 33 #endif // SANITIZER_PLACEMENT_NEW_H 34