Index: CodeGen/ModuleBuilder.cpp
===================================================================
--- CodeGen/ModuleBuilder.cpp	(revision 43992)
+++ CodeGen/ModuleBuilder.cpp	(working copy)
@@ -17,30 +17,30 @@
 
 
 /// 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();
 }
Index: Driver/ASTConsumers.cpp
===================================================================
--- Driver/ASTConsumers.cpp	(revision 43992)
+++ Driver/ASTConsumers.cpp	(working copy)
@@ -511,7 +511,7 @@
     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) {
Index: include/clang/CodeGen/ModuleBuilder.h
===================================================================
--- include/clang/CodeGen/ModuleBuilder.h	(revision 43992)
+++ include/clang/CodeGen/ModuleBuilder.h	(working copy)
@@ -23,30 +23,28 @@
   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
 
