summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/Sema.h
diff options
context:
space:
mode:
authorSebastian Redl <sebastian.redl@getdesigned.at>2008-12-03 20:26:15 +0000
committerSebastian Redl <sebastian.redl@getdesigned.at>2008-12-03 20:26:15 +0000
commitfaf6808e7ac9fdf1f1e905531e6350c2ec677b9d (patch)
tree6f3c1a36d4e5946912f00a09b653654f1dc61453 /clang/lib/Sema/Sema.h
parentcd7cc1ec0b8897c61d35d9eaad2ef37a0ab9ad35 (diff)
downloadbcm5719-llvm-faf6808e7ac9fdf1f1e905531e6350c2ec677b9d.tar.gz
bcm5719-llvm-faf6808e7ac9fdf1f1e905531e6350c2ec677b9d.zip
Overload resolution for the operator new function. Member version is still untested.
llvm-svn: 60503
Diffstat (limited to 'clang/lib/Sema/Sema.h')
-rw-r--r--clang/lib/Sema/Sema.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/Sema/Sema.h b/clang/lib/Sema/Sema.h
index cfb221bf401..150b32ec51d 100644
--- a/clang/lib/Sema/Sema.h
+++ b/clang/lib/Sema/Sema.h
@@ -202,6 +202,10 @@ public:
/// The C++ "std" namespace, where the standard library resides. Cached here
/// by GetStdNamespace
NamespaceDecl *StdNamespace;
+
+ /// A flag to remember whether the implicit forms of operator new and delete
+ /// have been declared.
+ bool GlobalNewDeleteDeclared;
/// ObjCMethodList - a linked list of methods with different signatures.
struct ObjCMethodList {
@@ -831,6 +835,14 @@ public:
ExprTy **ConstructorArgs, unsigned NumConsArgs,
SourceLocation ConstructorRParen);
bool CheckAllocatedType(QualType AllocType, const Declarator &D);
+ bool FindAllocationFunctions(SourceLocation StartLoc, bool UseGlobal,
+ QualType AllocType, bool IsArray,
+ Expr **PlaceArgs, unsigned NumPlaceArgs,
+ FunctionDecl *&OperatorNew,
+ FunctionDecl *&OperatorDelete);
+ void DeclareGlobalNewDelete();
+ void DeclareGlobalAllocationFunction(DeclarationName Name, QualType Return,
+ QualType Argument);
/// ActOnCXXDelete - Parsed a C++ 'delete' expression
virtual ExprResult ActOnCXXDelete(SourceLocation StartLoc, bool UseGlobal,
OpenPOWER on IntegriCloud