diff options
author | Rahul Joshi <rjoshi@nvidia.com> | 2025-09-02 07:28:36 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-09-02 07:28:36 -0700 |
commit | 0196d7ec6988c39fa08ba296d28ffb00494f2834 (patch) | |
tree | c38373619ec6c65d324248a833dfe25eb48186c6 /llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp | |
parent | 1ff6bfe7a5c672a7349a5a619d44b4892c8b7f74 (diff) | |
download | llvm-0196d7ec6988c39fa08ba296d28ffb00494f2834.zip llvm-0196d7ec6988c39fa08ba296d28ffb00494f2834.tar.gz llvm-0196d7ec6988c39fa08ba296d28ffb00494f2834.tar.bz2 |
[MC][DecoderEmitter] Fix build warning: explicit specialization cannot have a storage class (#156375)
Move `InsnBitWidth` template into anonymous namespace in the generated
code and move template specialization of `InsnBitWidth` to anonymous
namespace as well, and drop `static` for them. This makes `InsnBitWidth`
completely private to each target and fixes the "explicit specialization
cannot have a storage class" warning as well as any potential linker
errors if `InsnBitWidth` is kept in the `llvm::MCD` namespace.
Diffstat (limited to 'llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp')
-rw-r--r-- | llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp index 987d6c7..b1b7ea5 100644 --- a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp +++ b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp @@ -701,11 +701,13 @@ static constexpr DecoderListEntry DecoderList32[]{ {DecoderTableZdinxRV32Only32, {}, "RV32-only Zdinx (Double in Integer)"}, }; +namespace { // Define bitwidths for various types used to instantiate the decoder. -template <> inline constexpr uint32_t llvm::MCD::InsnBitWidth<uint16_t> = 16; -template <> inline constexpr uint32_t llvm::MCD::InsnBitWidth<uint32_t> = 32; +template <> constexpr uint32_t InsnBitWidth<uint16_t> = 16; +template <> constexpr uint32_t InsnBitWidth<uint32_t> = 32; // Use uint64_t to represent 48 bit instructions. -template <> inline constexpr uint32_t llvm::MCD::InsnBitWidth<uint64_t> = 48; +template <> constexpr uint32_t InsnBitWidth<uint64_t> = 48; +} // namespace DecodeStatus RISCVDisassembler::getInstruction32(MCInst &MI, uint64_t &Size, ArrayRef<uint8_t> Bytes, |