aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CodeGenFunction.h
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2008-08-26 08:29:31 +0000
committerDaniel Dunbar <daniel@zuster.org>2008-08-26 08:29:31 +0000
commitaf05bb9073319d8381b71c4325188853fd4b8ed6 (patch)
tree9379a25b653295e0c48894a0f777865b3a134e0c /lib/CodeGen/CodeGenFunction.h
parent394d33f1f602f7681032a659dff5bb09061ee510 (diff)
Objective-C @synthesize support.
- Only supports simple assignment and atomic semantics are ignored. - Not quite usable yet because the methods do not actually get added to the class metadata. - Added ObjCPropertyDecl::getSetterKind (one of Assign, Copy, Retain). - Rearrange CodeGenFunction so synthesis can reuse function prolog / epilog code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55365 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CodeGenFunction.h')
-rw-r--r--lib/CodeGen/CodeGenFunction.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h
index 2ba6b8ddcc..4eed9a7173 100644
--- a/lib/CodeGen/CodeGenFunction.h
+++ b/lib/CodeGen/CodeGenFunction.h
@@ -39,6 +39,7 @@ namespace clang {
class FunctionTypeProto;
class LabelStmt;
class ObjCMethodDecl;
+ class ObjCPropertyImplDecl;
class TargetInfo;
class VarDecl;
@@ -112,9 +113,20 @@ public:
ASTContext &getContext() const;
void GenerateObjCMethod(const ObjCMethodDecl *OMD);
+
+ void StartObjCMethod(const ObjCMethodDecl *MD);
+
+ /// GenerateObjCGetter - Synthesize an Objective-C property getter
+ /// function.
+ void GenerateObjCGetter(const ObjCPropertyImplDecl *PID);
+
+ /// GenerateObjCSetter - Synthesize an Objective-C property setter
+ /// function for the given property.
+ void GenerateObjCSetter(const ObjCPropertyImplDecl *PID);
+
void GenerateCode(const FunctionDecl *FD,
llvm::Function *Fn);
- void GenerateFunction(const Stmt *Body);
+ void FinishFunction(SourceLocation EndLoc=SourceLocation());
const llvm::Type *ConvertType(QualType T);