-Wdeprecated-clean: Fix cases of violating the rule of 5 in ways that are deprecated in C++11

Some functions return concrete ByteStreamers by value - explicitly
support that in the base class. (dtor can be virtual, no one seems to be
polymorphically owning/destroying them)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243897 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
David Blaikie 2015-08-03 20:12:58 +00:00
parent afb53796b8
commit 43247f1977

View File

@ -24,16 +24,19 @@
namespace llvm {
class ByteStreamer {
public:
virtual ~ByteStreamer() {}
protected:
~ByteStreamer() = default;
ByteStreamer(const ByteStreamer&) = default;
ByteStreamer() = default;
public:
// 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;
virtual void EmitULEB128(uint64_t DWord, const Twine &Comment = "") = 0;
};
class APByteStreamer : public ByteStreamer {
class APByteStreamer final : public ByteStreamer {
private:
AsmPrinter ≈
@ -53,7 +56,7 @@ public:
}
};
class HashingByteStreamer : public ByteStreamer {
class HashingByteStreamer final : public ByteStreamer {
private:
DIEHash &Hash;
public:
@ -69,7 +72,7 @@ class HashingByteStreamer : public ByteStreamer {
}
};
class BufferByteStreamer : public ByteStreamer {
class BufferByteStreamer final : public ByteStreamer {
private:
SmallVectorImpl<char> &Buffer;
SmallVectorImpl<std::string> &Comments;