diff options
author | Daniel Dunbar <daniel@zuster.org> | 2008-08-26 08:29:31 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2008-08-26 08:29:31 +0000 |
commit | af05bb9073319d8381b71c4325188853fd4b8ed6 (patch) | |
tree | 9379a25b653295e0c48894a0f777865b3a134e0c /lib/CodeGen/CodeGenFunction.h | |
parent | 394d33f1f602f7681032a659dff5bb09061ee510 (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.h | 14 |
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); |