aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/XCore
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2022-10-29 12:55:57 -0700
committerMatt Arsenault <arsenm2@gmail.com>2022-11-01 11:11:03 -0700
commit3bb12d3005ffdf5b2b34d4a84008e50ef4577e46 (patch)
tree096702fe4ed7119212fcc9da3ba87e2e0716f54b /llvm/lib/Target/XCore
parente83e289fd1aabac9253a04fc8ae6051759ccb20e (diff)
downloadllvm-3bb12d3005ffdf5b2b34d4a84008e50ef4577e46.zip
llvm-3bb12d3005ffdf5b2b34d4a84008e50ef4577e46.tar.gz
llvm-3bb12d3005ffdf5b2b34d4a84008e50ef4577e46.tar.bz2
XCore: Register null MCTargetStreamer
Fixes null dereference when printing globals
Diffstat (limited to 'llvm/lib/Target/XCore')
-rw-r--r--llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp7
-rw-r--r--llvm/lib/Target/XCore/XCoreTargetStreamer.h8
2 files changed, 11 insertions, 4 deletions
diff --git a/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp b/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp
index a782ff4..bc69e18 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 3543fc5..373f0d7 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){};
};
}