1//===- ASTContextAllocate.h - ASTContext allocate functions -----*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8// 9// This file declares ASTContext allocation functions separate from the main 10// code in ASTContext.h. 11// 12//===----------------------------------------------------------------------===// 13 14#ifndef LLVM_CLANG_AST_ASTCONTEXTALLOCATE_H 15#define LLVM_CLANG_AST_ASTCONTEXTALLOCATE_H 16 17#include <cstddef> 18 19namespace clang { 20 21class ASTContext; 22 23} // namespace clang 24 25// Defined in ASTContext.h 26void *operator new(size_t Bytes, const clang::ASTContext &C, 27 size_t Alignment = 8); 28void *operator new[](size_t Bytes, const clang::ASTContext &C, 29 size_t Alignment = 8); 30 31// It is good practice to pair new/delete operators. Also, MSVC gives many 32// warnings if a matching delete overload is not declared, even though the 33// throw() spec guarantees it will not be implicitly called. 34void operator delete(void *Ptr, const clang::ASTContext &C, size_t); 35void operator delete[](void *Ptr, const clang::ASTContext &C, size_t); 36 37#endif // LLVM_CLANG_AST_ASTCONTEXTALLOCATE_H 38