emitting dwarf debug info on mach fails with assert

Compiling the IR code at http://pastebin.com/hSwdLdD0 for target triple
fails with :
   assert(Symbol->isUndefined() && "Cannot define a symbol twice!");

`anon'::MCMachOStreamer::EmitLabel(llvm::MCSymbol * Symbol)
llvm::DwarfDebug::emitDebugInfo() Line 1752 + 0x3c bytes C++
llvm::DwarfDebug::endModule() Line 865 C++
llvm::AsmPrinter::doFinalization(llvm::Module & M) Line 878 C++
llvm::FPPassManager::doFinalization(llvm::Module & M) Line 1536
llvm::FPPassManager::runOnModule(llvm::Module & M) Line 1520
llvm::MPPassManager::runOnModule(llvm::Module & M) Line 1572
llvm::PassManagerImpl::run(llvm::Module & M) Line 1655
llvm::PassManager::run(llvm::Module & M) Line 1685 C++
LLVMTargetMachineEmitToFile(LLVMTargetMachine * T, LLVMOpaqueModule * M, char * Filename, LLVMCodeGenFileType codegen, char * * ErrorMessage) Line 194 C++

There are two "CodeFile1.pas" files in the same IR file, however they're in different directories so that should be fine, from a debuggers pov.

Is this something I'm doing wrong, or a bug, and if a bug, how can I help fix it?

As we discussed on IRC you'll probably want to try to define
everything in a single .o file in terms of a single compilation unit.