sanitizer_placement_new.h revision 877bfcfaf592e63916333fd644bb8f30b673f35d
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
21namespace __sanitizer {
22#if (__WORDSIZE == 64) || defined(__APPLE__)
23typedef __sanitizer::uptr operator_new_ptr_type;
24#else
25typedef __sanitizer::u32 operator_new_ptr_type;
26#endif
27}  // namespace __sanitizer
28
29inline void *operator new(operator_new_ptr_type sz, void *p) {
30  return p;
31}
32
33#endif  // SANITIZER_PLACEMENT_NEW_H
34