/// Init - Create an ModuleBuilder with the specified ASTContext.
-clang::CodeGen::BuilderTy *
+clang::CodeGen::CodeGenModule *
clang::CodeGen::Init(ASTContext &Context, llvm::Module &M,
const llvm::TargetData &TD) {
return new CodeGenModule(Context, M, TD);
}
-void clang::CodeGen::Terminate(BuilderTy *B) {
- delete static_cast<CodeGenModule*>(B);
+void clang::CodeGen::Terminate(CodeGenModule *B) {
+ delete B;
}
/// CodeGenFunction - Convert the AST node for a FunctionDecl into LLVM.
///
-void clang::CodeGen::CodeGenFunction(BuilderTy *B, FunctionDecl *D) {
- static_cast<CodeGenModule*>(B)->EmitFunction(D);
+void clang::CodeGen::CodeGenFunction(CodeGenModule *B, FunctionDecl *D) {
+ B->EmitFunction(D);
}
/// CodeGenGlobalVar - Emit the specified global variable to LLVM.
-void clang::CodeGen::CodeGenGlobalVar(BuilderTy *Builder, FileVarDecl *D) {
- static_cast<CodeGenModule*>(Builder)->EmitGlobalVarDeclarator(D);
+void clang::CodeGen::CodeGenGlobalVar(CodeGenModule *Builder, FileVarDecl *D) {
+ Builder->EmitGlobalVarDeclarator(D);
}
/// PrintStats - Emit statistic information to stderr.
///
-void clang::CodeGen::PrintStats(BuilderTy *B) {
- static_cast<CodeGenModule*>(B)->PrintStats();
+void clang::CodeGen::PrintStats(CodeGenModule *B) {
+ B->PrintStats();
}
llvm::Module *M;
const llvm::TargetData *TD;
ASTContext *Ctx;
- CodeGen::BuilderTy *Builder;
+ CodeGen::CodeGenModule *Builder;
public:
LLVMEmitter(Diagnostic &diags) : Diags(diags) {}
virtual void Initialize(ASTContext &Context, unsigned MainFileID) {
class ASTContext;
class FunctionDecl;
class FileVarDecl;
-
+
namespace CodeGen {
- /// BuilderTy - This is an opaque type used to reference ModuleBuilder
- /// objects.
- typedef void BuilderTy;
+ class CodeGenModule;
/// Init - Create an ModuleBuilder with the specified ASTContext.
- BuilderTy *Init(ASTContext &Context, llvm::Module &M,
+ CodeGenModule *Init(ASTContext &Context, llvm::Module &M,
const llvm::TargetData &TD);
/// CodeGenFunction - Convert the AST node for a FunctionDecl into LLVM.
///
- void CodeGenFunction(BuilderTy *Builder, FunctionDecl *D);
+ void CodeGenFunction(CodeGenModule *Builder, FunctionDecl *D);
/// CodeGenGlobalVar - Emit the specified global variable to LLVM.
- void CodeGenGlobalVar(BuilderTy *Builder, FileVarDecl *D);
+ void CodeGenGlobalVar(CodeGenModule *Builder, FileVarDecl *D);
/// PrintStats - Emit statistic information to stderr.
///
- void PrintStats(BuilderTy *Builder);
+ void PrintStats(CodeGenModule *Builder);
/// Terminate - Gracefully shut down the builder.
///
- void Terminate(BuilderTy *Builder);
+ void Terminate(CodeGenModule *Builder);
} // end namespace CodeGen
} // end namespace clang