[llvm] 3bb12d3 - XCore: Register null MCTargetStreamer
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 1 11:11:41 PDT 2022
Author: Matt Arsenault
Date: 2022-11-01T11:11:03-07:00
New Revision: 3bb12d3005ffdf5b2b34d4a84008e50ef4577e46
URL: https://github.com/llvm/llvm-project/commit/3bb12d3005ffdf5b2b34d4a84008e50ef4577e46
DIFF: https://github.com/llvm/llvm-project/commit/3bb12d3005ffdf5b2b34d4a84008e50ef4577e46.diff
LOG: XCore: Register null MCTargetStreamer
Fixes null dereference when printing globals
Added:
Modified:
llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp
llvm/lib/Target/XCore/XCoreTargetStreamer.h
llvm/test/CodeGen/XCore/globals.ll
Removed:
################################################################################
diff --git a/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp b/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp
index a782ff436dc09..bc69e1868b88f 100644
--- a/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp
+++ b/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp
@@ -122,6 +122,10 @@ static MCTargetStreamer *createTargetAsmStreamer(MCStreamer &S,
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 @@ extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeXCoreTargetMC() {
TargetRegistry::RegisterAsmTargetStreamer(getTheXCoreTarget(),
createTargetAsmStreamer);
+
+ TargetRegistry::RegisterNullTargetStreamer(getTheXCoreTarget(),
+ createNullTargetStreamer);
}
diff --git a/llvm/lib/Target/XCore/XCoreTargetStreamer.h b/llvm/lib/Target/XCore/XCoreTargetStreamer.h
index 3543fc52ea7fc..373f0d7b9fee0 100644
--- a/llvm/lib/Target/XCore/XCoreTargetStreamer.h
+++ b/llvm/lib/Target/XCore/XCoreTargetStreamer.h
@@ -16,10 +16,10 @@ class XCoreTargetStreamer : public MCTargetStreamer {
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){};
};
}
diff --git a/llvm/test/CodeGen/XCore/globals.ll b/llvm/test/CodeGen/XCore/globals.ll
index c7eba786b99e5..5d626f9cbbdc5 100644
--- a/llvm/test/CodeGen/XCore/globals.ll
+++ b/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:
More information about the llvm-commits
mailing list