14#ifndef LLVM_CLANG_SEMA_DYNAMICALLOCATIONARGUMENTSCXX_H
15#define LLVM_CLANG_SEMA_DYNAMICALLOCATIONARGUMENTSCXX_H
18#include "llvm/ADT/ArrayRef.h"
19#include "llvm/ADT/SmallVector.h"
26struct ImplicitAllocationArguments {
30 return ArrayRef(ImplicitArguments, ArgumentCount);
35 return ImplicitArguments[ArgumentCount - 1];
41 std::optional<LookupResult> &)
const;
47 ImplicitAllocationArguments(
Sema &SemaRef,
Expr *TypeIdentityArg,
52 static constexpr unsigned MaxImplicitArguments = 3;
53 unsigned ArgumentCount;
54 Expr *ImplicitArguments[MaxImplicitArguments];
Defines the clang::Expr interface and subclasses for C++ expressions.
This represents one expression.
Represents a function declaration or definition.
Represents the results of name lookup.
Sema - This implements semantic analysis and AST building for C.
The JSON file list parser is used to communicate input to InstallAPI.
TypeAwareAllocationMode PassTypeIdentity
bool IsMSVCCompatibilityFallback
ArrayRef< Expr * > getImplicitArguments() const
const LookupResult & updateLookupForMSVCCompatibility(Sema &, const LookupResult &, std::optional< LookupResult > &) const
Expr * getAlignmentArgument() const
AlignedAllocationMode PassAlignment
FunctionDecl * OperatorDelete
ImplicitAllocationParameters IAP
FunctionDecl * OperatorNew
SmallVector< Expr *, 4 > Arguments