From e05d3d8c3adcad69d30912695dc615572117c2fc Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Tue, 4 Aug 2009 12:21:59 +0200 Subject: [PATCH] lookupTarget no longer takes a Module. And we need to get TargetData from the module if the Target doesn't have it. --- gen/main.cpp | 2 +- gen/toobj.cpp | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/gen/main.cpp b/gen/main.cpp index 60aca4dd..2e113ce7 100644 --- a/gen/main.cpp +++ b/gen/main.cpp @@ -486,7 +486,7 @@ LDC_TARGETS #if LLVM_REV < 77946 std::auto_ptr target(theTarget->createTargetMachine(mod, FeaturesStr)); #else - std::auto_ptr target(theTarget->createTargetMachine(mod, mod.getTargetTriple(), FeaturesStr)); + std::auto_ptr target(theTarget->createTargetMachine(mod.getTargetTriple(), FeaturesStr)); #endif assert(target.get() && "Could not allocate target machine!"); gTargetMachine = target.get(); diff --git a/gen/toobj.cpp b/gen/toobj.cpp index 0c7dabcc..778a0310 100644 --- a/gen/toobj.cpp +++ b/gen/toobj.cpp @@ -295,7 +295,10 @@ void write_asm_to_file(llvm::TargetMachine &Target, llvm::Module& m, llvm::raw_f ExistingModuleProvider Provider(&m); FunctionPassManager Passes(&Provider); - Passes.add(new TargetData(*Target.getTargetData())); + if (const TargetData *TD = Target.getTargetData()) + Passes.add(new TargetData(*TD)); + else + Passes.add(new TargetData(&m)); // Ask the target to add backend passes as necessary. MachineCodeEmitter *MCE = 0;