summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/CodeGen/CodeGenFunction.cpp4
-rw-r--r--clang/CodeGen/CodeGenFunction.h7
-rw-r--r--clang/CodeGen/CodeGenModule.cpp4
-rw-r--r--clang/CodeGen/CodeGenModule.h8
4 files changed, 17 insertions, 6 deletions
diff --git a/clang/CodeGen/CodeGenFunction.cpp b/clang/CodeGen/CodeGenFunction.cpp
index 4dece886bec..d3abbc97e2b 100644
--- a/clang/CodeGen/CodeGenFunction.cpp
+++ b/clang/CodeGen/CodeGenFunction.cpp
@@ -23,7 +23,7 @@ using namespace clang;
using namespace CodeGen;
CodeGenFunction::CodeGenFunction(CodeGenModule &cgm)
- : CGM(cgm), Target(CGM.getContext().Target), Types(Target) {}
+ : CGM(cgm), Target(CGM.getContext().Target) {}
ASTContext &CodeGenFunction::getContext() const {
return CGM.getContext();
@@ -40,7 +40,7 @@ llvm::BasicBlock *CodeGenFunction::getBasicBlockForLabel(const LabelStmt *S) {
const llvm::Type *CodeGenFunction::ConvertType(QualType T, SourceLocation Loc) {
- return Types.ConvertType(T, Loc);
+ return CGM.getTypes().ConvertType(T, Loc);
}
void CodeGenFunction::GenerateCode(const FunctionDecl *FD) {
diff --git a/clang/CodeGen/CodeGenFunction.h b/clang/CodeGen/CodeGenFunction.h
index 8897d04eb34..d40ce4b3ced 100644
--- a/clang/CodeGen/CodeGenFunction.h
+++ b/clang/CodeGen/CodeGenFunction.h
@@ -16,7 +16,7 @@
#include "llvm/ADT/DenseMap.h"
#include "llvm/Support/LLVMBuilder.h"
-#include "CodeGenTypes.h"
+#include <vector>
namespace llvm {
class Module;
@@ -26,6 +26,10 @@ namespace clang {
class ASTContext;
class Decl;
class FunctionDecl;
+ class TargetInfo;
+ class SourceLocation;
+ class QualType;
+ class FunctionTypeProto;
class Stmt;
class CompoundStmt;
@@ -121,7 +125,6 @@ class CodeGenFunction {
CodeGenModule &CGM; // Per-module state.
TargetInfo &Target;
llvm::LLVMBuilder Builder;
- CodeGenTypes Types;
const FunctionDecl *CurFuncDecl;
llvm::Function *CurFn;
diff --git a/clang/CodeGen/CodeGenModule.cpp b/clang/CodeGen/CodeGenModule.cpp
index 648e0ad30a5..6ec9b796bd9 100644
--- a/clang/CodeGen/CodeGenModule.cpp
+++ b/clang/CodeGen/CodeGenModule.cpp
@@ -13,11 +13,15 @@
#include "CodeGenModule.h"
#include "CodeGenFunction.h"
+#include "clang/AST/ASTContext.h"
#include "clang/AST/Decl.h"
using namespace clang;
using namespace CodeGen;
+CodeGenModule::CodeGenModule(ASTContext &C, llvm::Module &M)
+ : Context(C), TheModule(M), Types(C.Target) {}
+
void CodeGenModule::EmitFunction(FunctionDecl *FD) {
// If this is not a prototype, emit the body.
if (FD->getBody())
diff --git a/clang/CodeGen/CodeGenModule.h b/clang/CodeGen/CodeGenModule.h
index 448d0f17f86..d72b84549c8 100644
--- a/clang/CodeGen/CodeGenModule.h
+++ b/clang/CodeGen/CodeGenModule.h
@@ -14,6 +14,8 @@
#ifndef CODEGEN_CODEGENMODULE_H
#define CODEGEN_CODEGENMODULE_H
+#include "CodeGenTypes.h"
+
namespace llvm {
class Module;
class Constant;
@@ -31,13 +33,15 @@ namespace CodeGen {
class CodeGenModule {
ASTContext &Context;
llvm::Module &TheModule;
-
+ CodeGenTypes Types;
+
//llvm::DenseMap<const Decl*, llvm::Constant*> GlobalDeclMap;
public:
- CodeGenModule(ASTContext &C, llvm::Module &M) : Context(C), TheModule(M) {}
+ CodeGenModule(ASTContext &C, llvm::Module &M);
ASTContext &getContext() const { return Context; }
llvm::Module &getModule() const { return TheModule; }
+ CodeGenTypes &getTypes() { return Types; }
void EmitFunction(FunctionDecl *FD);
OpenPOWER on IntegriCloud