CodeGen for try statements. (We just emit the body for now).
llvm-svn: 82910
This commit is contained in:
parent
336e2bd91b
commit
52d78a518a
|
@ -21,6 +21,7 @@
|
|||
#include "clang/AST/Decl.h"
|
||||
#include "clang/AST/DeclCXX.h"
|
||||
#include "clang/AST/DeclObjC.h"
|
||||
#include "clang/AST/StmtCXX.h"
|
||||
#include "llvm/ADT/StringExtras.h"
|
||||
using namespace clang;
|
||||
using namespace CodeGen;
|
||||
|
@ -28,10 +29,8 @@ using namespace CodeGen;
|
|||
void
|
||||
CodeGenFunction::EmitCXXGlobalDtorRegistration(const CXXDestructorDecl *Dtor,
|
||||
llvm::Constant *DeclPtr) {
|
||||
// FIXME: This is ABI dependent and we use the Itanium ABI.
|
||||
|
||||
const llvm::Type *Int8PtrTy =
|
||||
llvm::PointerType::getUnqual(llvm::Type::getInt8Ty(VMContext));
|
||||
const llvm::Type *Int8PtrTy =
|
||||
llvm::Type::getInt8Ty(VMContext)->getPointerTo();
|
||||
|
||||
std::vector<const llvm::Type *> Params;
|
||||
Params.push_back(Int8PtrTy);
|
||||
|
@ -1939,3 +1938,9 @@ void CodeGenFunction::SynthesizeDefaultDestructor(const CXXDestructorDecl *Dtor,
|
|||
EmitDtorEpilogue(Dtor, DtorType);
|
||||
FinishFunction();
|
||||
}
|
||||
|
||||
// FIXME: Move this to CGCXXStmt.cpp
|
||||
void CodeGenFunction::EmitCXXTryStmt(const CXXTryStmt &S) {
|
||||
// FIXME: We need to do more here.
|
||||
EmitStmt(S.getTryBlock());
|
||||
}
|
||||
|
|
|
@ -114,6 +114,10 @@ void CodeGenFunction::EmitStmt(const Stmt *S) {
|
|||
case Stmt::ObjCForCollectionStmtClass:
|
||||
EmitObjCForCollectionStmt(cast<ObjCForCollectionStmt>(*S));
|
||||
break;
|
||||
|
||||
case Stmt::CXXTryStmtClass:
|
||||
EmitCXXTryStmt(cast<CXXTryStmt>(*S));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@ namespace llvm {
|
|||
namespace clang {
|
||||
class ASTContext;
|
||||
class CXXDestructorDecl;
|
||||
class CXXTryStmt;
|
||||
class Decl;
|
||||
class EnumConstantDecl;
|
||||
class FunctionDecl;
|
||||
|
@ -711,6 +712,8 @@ public:
|
|||
void EmitObjCAtThrowStmt(const ObjCAtThrowStmt &S);
|
||||
void EmitObjCAtSynchronizedStmt(const ObjCAtSynchronizedStmt &S);
|
||||
|
||||
void EmitCXXTryStmt(const CXXTryStmt &S);
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
// LValue Expression Emission
|
||||
//===--------------------------------------------------------------------===//
|
||||
|
|
Loading…
Reference in New Issue