namespace llvm {
class ByteStreamer {
public:
+ virtual ~ByteStreamer() {}
+
// For now we're just handling the calls we need for dwarf emission/hashing.
virtual void EmitInt8(uint8_t Byte, const Twine &Comment = "") = 0;
virtual void EmitSLEB128(uint64_t DWord, const Twine &Comment = "") = 0;
public:
APByteStreamer(AsmPrinter &Asm) : AP(Asm) {}
- void EmitInt8(uint8_t Byte, const Twine &Comment) {
+ void EmitInt8(uint8_t Byte, const Twine &Comment) override {
AP.OutStreamer.AddComment(Comment);
AP.EmitInt8(Byte);
}
- void EmitSLEB128(uint64_t DWord, const Twine &Comment) {
+ void EmitSLEB128(uint64_t DWord, const Twine &Comment) override {
AP.OutStreamer.AddComment(Comment);
AP.EmitSLEB128(DWord);
}
- void EmitULEB128(uint64_t DWord, const Twine &Comment) {
+ void EmitULEB128(uint64_t DWord, const Twine &Comment) override {
AP.OutStreamer.AddComment(Comment);
AP.EmitULEB128(DWord);
}
DIEHash &Hash;
public:
HashingByteStreamer(DIEHash &H) : Hash(H) {}
- void EmitInt8(uint8_t Byte, const Twine &Comment) {
+ void EmitInt8(uint8_t Byte, const Twine &Comment) override {
Hash.update(Byte);
}
- void EmitSLEB128(uint64_t DWord, const Twine &Comment) {
+ void EmitSLEB128(uint64_t DWord, const Twine &Comment) override {
Hash.addSLEB128(DWord);
}
- void EmitULEB128(uint64_t DWord, const Twine &Comment) {
+ void EmitULEB128(uint64_t DWord, const Twine &Comment) override {
Hash.addULEB128(DWord);
}
};