Index: llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp =================================================================== --- llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp +++ llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp @@ -122,6 +122,10 @@ return new XCoreTargetAsmStreamer(S, OS); } +static MCTargetStreamer *createNullTargetStreamer(MCStreamer &S) { + return new XCoreTargetStreamer(S); +} + // Force static initialization. extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeXCoreTargetMC() { // Register the MC asm info. @@ -145,4 +149,7 @@ TargetRegistry::RegisterAsmTargetStreamer(getTheXCoreTarget(), createTargetAsmStreamer); + + TargetRegistry::RegisterNullTargetStreamer(getTheXCoreTarget(), + createNullTargetStreamer); } Index: llvm/lib/Target/XCore/XCoreTargetStreamer.h =================================================================== --- llvm/lib/Target/XCore/XCoreTargetStreamer.h +++ llvm/lib/Target/XCore/XCoreTargetStreamer.h @@ -16,10 +16,10 @@ public: XCoreTargetStreamer(MCStreamer &S); ~XCoreTargetStreamer() override; - virtual void emitCCTopData(StringRef Name) = 0; - virtual void emitCCTopFunction(StringRef Name) = 0; - virtual void emitCCBottomData(StringRef Name) = 0; - virtual void emitCCBottomFunction(StringRef Name) = 0; + virtual void emitCCTopData(StringRef Name){}; + virtual void emitCCTopFunction(StringRef Name){}; + virtual void emitCCBottomData(StringRef Name){}; + virtual void emitCCBottomFunction(StringRef Name){}; }; } Index: llvm/test/CodeGen/XCore/globals.ll =================================================================== --- llvm/test/CodeGen/XCore/globals.ll +++ llvm/test/CodeGen/XCore/globals.ll @@ -1,4 +1,5 @@ ; RUN: llc < %s -march=xcore -mcpu=xs1b-generic | FileCheck %s +; RUN: llc -march=xcore -mcpu=xs1b-generic -filetype=null %s define i32 *@addr_G1() { entry: