diff options
author | Chris Lattner <sabre@nondot.org> | 2008-03-30 23:03:07 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-03-30 23:03:07 +0000 |
commit | 4bd5596d0827ce8d021c8b67fcd9dca041d654ba (patch) | |
tree | 15155f84ef230d5d246a17bd72b8c653ff41ba27 /clang/lib/CodeGen/CodeGenFunction.h | |
parent | dd0ace574bcad687e1644d773974593d5df18434 (diff) | |
download | bcm5719-llvm-4bd5596d0827ce8d021c8b67fcd9dca041d654ba.tar.gz bcm5719-llvm-4bd5596d0827ce8d021c8b67fcd9dca041d654ba.zip |
Add initial support for objc codegen for methods, ivars, and the
etoile runtime, patch by David Chisnall!
llvm-svn: 48969
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.h')
-rw-r--r-- | clang/lib/CodeGen/CodeGenFunction.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h index 509e8296d20..121b7953bdc 100644 --- a/clang/lib/CodeGen/CodeGenFunction.h +++ b/clang/lib/CodeGen/CodeGenFunction.h @@ -14,6 +14,7 @@ #ifndef CLANG_CODEGEN_CODEGENFUNCTION_H #define CLANG_CODEGEN_CODEGENFUNCTION_H +#include "clang/AST/Type.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/SmallVector.h" #include "llvm/Support/LLVMBuilder.h" @@ -27,8 +28,8 @@ namespace clang { class ASTContext; class Decl; class FunctionDecl; + class ObjCMethodDecl; class TargetInfo; - class QualType; class FunctionTypeProto; class Stmt; @@ -66,6 +67,7 @@ namespace clang { class ChooseExpr; class PreDefinedExpr; class ObjCStringLiteral; + class ObjCIvarRefExpr; class MemberExpr; class BlockVarDecl; @@ -245,6 +247,7 @@ public: llvm::LLVMFoldingBuilder Builder; const FunctionDecl *CurFuncDecl; + QualType FnRetTy; llvm::Function *CurFn; /// AllocaInsertPoint - This is an instruction in the entry block before which @@ -286,6 +289,7 @@ public: ASTContext &getContext() const; + void GenerateObjCMethod(const ObjCMethodDecl *OMD); void GenerateCode(const FunctionDecl *FD); const llvm::Type *ConvertType(QualType T); @@ -422,7 +426,8 @@ public: LValue EmitLValueForField(llvm::Value* Base, FieldDecl* Field, bool isUnion); - + + LValue EmitObjCIvarRefLValue(const ObjCIvarRefExpr *E); //===--------------------------------------------------------------------===// // Scalar Expression Emission //===--------------------------------------------------------------------===// |