147b1634df012507799eb39aa17d4022d748ba67bAlexey Samsonov//===-- sanitizer_placement_new.h -------------------------------*- C++ -*-===// 27ac41484ea322e0ea5774df681660269f5dc321eKostya Serebryany// 37ac41484ea322e0ea5774df681660269f5dc321eKostya Serebryany// The LLVM Compiler Infrastructure 47ac41484ea322e0ea5774df681660269f5dc321eKostya Serebryany// 57ac41484ea322e0ea5774df681660269f5dc321eKostya Serebryany// This file is distributed under the University of Illinois Open Source 67ac41484ea322e0ea5774df681660269f5dc321eKostya Serebryany// License. See LICENSE.TXT for details. 77ac41484ea322e0ea5774df681660269f5dc321eKostya Serebryany// 87ac41484ea322e0ea5774df681660269f5dc321eKostya Serebryany//===----------------------------------------------------------------------===// 97ac41484ea322e0ea5774df681660269f5dc321eKostya Serebryany// 1047b1634df012507799eb39aa17d4022d748ba67bAlexey Samsonov// This file is shared between AddressSanitizer and ThreadSanitizer 1147b1634df012507799eb39aa17d4022d748ba67bAlexey Samsonov// run-time libraries. 127ac41484ea322e0ea5774df681660269f5dc321eKostya Serebryany// 1347b1634df012507799eb39aa17d4022d748ba67bAlexey Samsonov// The file provides 'placement new'. 147ac41484ea322e0ea5774df681660269f5dc321eKostya Serebryany// Do not include it into header files, only into source files. 157ac41484ea322e0ea5774df681660269f5dc321eKostya Serebryany//===----------------------------------------------------------------------===// 1647b1634df012507799eb39aa17d4022d748ba67bAlexey Samsonov#ifndef SANITIZER_PLACEMENT_NEW_H 1747b1634df012507799eb39aa17d4022d748ba67bAlexey Samsonov#define SANITIZER_PLACEMENT_NEW_H 187ac41484ea322e0ea5774df681660269f5dc321eKostya Serebryany 1947b1634df012507799eb39aa17d4022d748ba67bAlexey Samsonov#include "sanitizer_internal_defs.h" 207ac41484ea322e0ea5774df681660269f5dc321eKostya Serebryany 21877bfcfaf592e63916333fd644bb8f30b673f35dAlexey Samsonovnamespace __sanitizer { 22877bfcfaf592e63916333fd644bb8f30b673f35dAlexey Samsonov#if (__WORDSIZE == 64) || defined(__APPLE__) 2364afb7ef53b4f08477e7af29cfce17eb66754e59Alexey Samsonovtypedef uptr operator_new_ptr_type; 249fe7b96f92606057dacb9130c08d32430d8be86fAlexey Samsonov#else 2564afb7ef53b4f08477e7af29cfce17eb66754e59Alexey Samsonovtypedef u32 operator_new_ptr_type; 26877bfcfaf592e63916333fd644bb8f30b673f35dAlexey Samsonov#endif 27877bfcfaf592e63916333fd644bb8f30b673f35dAlexey Samsonov} // namespace __sanitizer 28877bfcfaf592e63916333fd644bb8f30b673f35dAlexey Samsonov 2964afb7ef53b4f08477e7af29cfce17eb66754e59Alexey Samsonovinline void *operator new(__sanitizer::operator_new_ptr_type sz, void *p) { 309fe7b96f92606057dacb9130c08d32430d8be86fAlexey Samsonov return p; 319fe7b96f92606057dacb9130c08d32430d8be86fAlexey Samsonov} 327ac41484ea322e0ea5774df681660269f5dc321eKostya Serebryany 3347b1634df012507799eb39aa17d4022d748ba67bAlexey Samsonov#endif // SANITIZER_PLACEMENT_NEW_H 34