diff --git a/llvm/include/llvm/MC/MCParser/MCAsmParser.h b/llvm/include/llvm/MC/MCParser/MCAsmParser.h index e3f44a08db641..ea0c29e16c397 100644 --- a/llvm/include/llvm/MC/MCParser/MCAsmParser.h +++ b/llvm/include/llvm/MC/MCParser/MCAsmParser.h @@ -162,6 +162,7 @@ class LLVM_ABI MCAsmParser { virtual void addAliasForDirective(StringRef Directive, StringRef Alias) = 0; MCContext &getContext() { return Ctx; } + const MCContext &getContext() const { return Ctx; } MCStreamer &getStreamer() { return Out; } SourceMgr &getSourceManager() { return SrcMgr; } AsmLexer &getLexer() { return Lexer; } diff --git a/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h b/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h index f8387d888fc21..5344acd8012d8 100644 --- a/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h +++ b/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h @@ -53,6 +53,7 @@ class LLVM_ABI MCAsmParserExtension { /// @{ MCContext &getContext() { return getParser().getContext(); } + const MCContext &getContext() const { return getParser().getContext(); } AsmLexer &getLexer() { return getParser().getLexer(); } const AsmLexer &getLexer() const { diff --git a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp index 56f79c2d67d3f..df3070b92e32c 100644 --- a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp +++ b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp @@ -1592,9 +1592,7 @@ class AMDGPUAsmParser : public MCTargetAsmParser { } const MCRegisterInfo *getMRI() const { - // We need this const_cast because for some reason getContext() is not const - // in MCAsmParser. - return const_cast(this)->getContext().getRegisterInfo(); + return getContext().getRegisterInfo(); } const MCInstrInfo *getMII() const {