From 1756630dfaa19ba00c4d0dc0266831ddb609b433 Mon Sep 17 00:00:00 2001 From: Raphael Isemann Date: Fri, 3 May 2019 10:03:28 +0000 Subject: [PATCH] C.128 override, virtual keyword handling Summary: According to [C128] "Virtual functions should specify exactly one of `virtual`, `override`, or `final`", I've added override where a virtual function is overriden but the explicit `override` keyword was missing. Whenever both `virtual` and `override` were specified, I removed `virtual`. As C.128 puts it: > [...] writing more than one of these three is both redundant and > a potential source of errors. I anticipate a discussion about whether or not to add `override` to destructors but I went for it because of an example in [ISOCPP1000]. Let me repeat the comment for you here: Consider this code: ``` struct Base { virtual ~Base(){} }; struct SubClass : Base { ~SubClass() { std::cout << "It works!\n"; } }; int main() { std::unique_ptr ptr = std::make_unique(); } ``` If for some odd reason somebody removes the `virtual` keyword from the `Base` struct, the code will no longer print `It works!`. So adding `override` to destructors actively protects us from accidentally breaking our code at runtime. [C128]: https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c128-virtual-functions-should-specify-exactly-one-of-virtual-override-or-final [ISOCPP1000]: https://github.com/isocpp/CppCoreGuidelines/issues/1000#issuecomment-476951555 Reviewers: teemperor, JDevlieghere, davide, shafik Reviewed By: teemperor Subscribers: kwk, arphaman, kadircet, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D61440 llvm-svn: 359868 --- lldb/include/lldb/Core/Architecture.h | 2 +- lldb/include/lldb/Core/StreamBuffer.h | 6 +++--- lldb/include/lldb/Core/ValueObjectVariable.h | 2 +- lldb/include/lldb/Target/DynamicLoader.h | 2 +- lldb/include/lldb/Target/StackFrameRecognizer.h | 2 +- lldb/include/lldb/Target/StructuredDataPlugin.h | 2 +- lldb/include/lldb/Utility/Baton.h | 5 ++--- lldb/include/lldb/Utility/DataBufferLLVM.h | 2 +- lldb/include/lldb/Utility/StringExtractorGDBRemote.h | 2 +- lldb/source/API/SBBreakpointOptionCommon.h | 2 +- .../Darwin-Kernel/DynamicLoaderDarwinKernel.cpp | 2 +- .../DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h | 2 +- .../DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h | 2 +- .../DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h | 2 +- .../Plugins/ExpressionParser/Clang/ClangDiagnostic.h | 2 +- .../ExpressionParser/Clang/ClangExpressionParser.cpp | 4 ++-- .../Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp | 2 +- lldb/source/Plugins/Language/ObjC/NSDictionary.h | 8 ++++---- lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp | 2 +- .../ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp | 3 ++- .../RenderScriptRuntime/RenderScriptExpressionOpts.h | 2 +- lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h | 2 +- .../Platform/gdb-server/PlatformRemoteGDBServer.h | 2 +- .../Plugins/Process/gdb-remote/ProcessGDBRemote.cpp | 16 ++++++++-------- lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp | 4 ++-- .../StructuredData/DarwinLog/StructuredDataDarwinLog.cpp | 2 +- .../StructuredData/DarwinLog/StructuredDataDarwinLog.h | 2 +- lldb/source/Symbol/ClangASTContext.cpp | 2 +- lldb/source/Symbol/PostfixExpression.cpp | 12 ++++++------ lldb/source/Target/StructuredDataPlugin.cpp | 2 +- .../intel-features/intel-mpx/cli-wrapper-mpxtable.cpp | 8 ++++---- lldb/unittests/Editline/EditlineTest.cpp | 4 ++-- .../Process/gdb-remote/GDBRemoteClientBaseTest.cpp | 8 ++++---- lldb/unittests/Symbol/TestClangASTContext.cpp | 4 ++-- lldb/unittests/Target/ProcessInstanceInfoTest.cpp | 4 ++-- 35 files changed, 65 insertions(+), 65 deletions(-) diff --git a/lldb/include/lldb/Core/Architecture.h b/lldb/include/lldb/Core/Architecture.h index 031f958..d8dbbb4 100644 --- a/lldb/include/lldb/Core/Architecture.h +++ b/lldb/include/lldb/Core/Architecture.h @@ -16,7 +16,7 @@ namespace lldb_private { class Architecture : public PluginInterface { public: Architecture() = default; - virtual ~Architecture() = default; + ~Architecture() override = default; /// This is currently intended to handle cases where a /// program stops at an instruction that won't get executed and it diff --git a/lldb/include/lldb/Core/StreamBuffer.h b/lldb/include/lldb/Core/StreamBuffer.h index 9fbdbf9..6c51651 100644 --- a/lldb/include/lldb/Core/StreamBuffer.h +++ b/lldb/include/lldb/Core/StreamBuffer.h @@ -23,9 +23,9 @@ public: StreamBuffer(uint32_t flags, uint32_t addr_size, lldb::ByteOrder byte_order) : Stream(flags, addr_size, byte_order), m_packet() {} - virtual ~StreamBuffer() {} + ~StreamBuffer() override {} - virtual void Flush() { + void Flush() override { // Nothing to do when flushing a buffer based stream... } @@ -42,7 +42,7 @@ public: protected: llvm::SmallVector m_packet; - virtual size_t WriteImpl(const void *s, size_t length) { + size_t WriteImpl(const void *s, size_t length) override { if (s && length) m_packet.append((const char *)s, ((const char *)s) + length); return length; diff --git a/lldb/include/lldb/Core/ValueObjectVariable.h b/lldb/include/lldb/Core/ValueObjectVariable.h index 93feb8e..75fe617 100644 --- a/lldb/include/lldb/Core/ValueObjectVariable.h +++ b/lldb/include/lldb/Core/ValueObjectVariable.h @@ -74,7 +74,7 @@ public: bool SetData(DataExtractor &data, Status &error) override; - virtual lldb::VariableSP GetVariable() override { return m_variable_sp; } + lldb::VariableSP GetVariable() override { return m_variable_sp; } protected: bool UpdateValue() override; diff --git a/lldb/include/lldb/Target/DynamicLoader.h b/lldb/include/lldb/Target/DynamicLoader.h index c8ad4b4..c3f8fa5 100644 --- a/lldb/include/lldb/Target/DynamicLoader.h +++ b/lldb/include/lldb/Target/DynamicLoader.h @@ -84,7 +84,7 @@ public: /// /// The destructor is virtual since this class is designed to be inherited /// from by the plug-in instance. - virtual ~DynamicLoader() override; + ~DynamicLoader() override; /// Called after attaching a process. /// diff --git a/lldb/include/lldb/Target/StackFrameRecognizer.h b/lldb/include/lldb/Target/StackFrameRecognizer.h index 472c396..2021ac5 100644 --- a/lldb/include/lldb/Target/StackFrameRecognizer.h +++ b/lldb/include/lldb/Target/StackFrameRecognizer.h @@ -73,7 +73,7 @@ class ScriptedStackFrameRecognizer : public StackFrameRecognizer { public: ScriptedStackFrameRecognizer(lldb_private::ScriptInterpreter *interpreter, const char *pclass); - ~ScriptedStackFrameRecognizer() {} + ~ScriptedStackFrameRecognizer() override {} std::string GetName() override { return GetPythonClassName(); diff --git a/lldb/include/lldb/Target/StructuredDataPlugin.h b/lldb/include/lldb/Target/StructuredDataPlugin.h index 1b36670..b20bdb3 100644 --- a/lldb/include/lldb/Target/StructuredDataPlugin.h +++ b/lldb/include/lldb/Target/StructuredDataPlugin.h @@ -41,7 +41,7 @@ class StructuredDataPlugin : public PluginInterface, public std::enable_shared_from_this { public: - virtual ~StructuredDataPlugin(); + ~StructuredDataPlugin() override; lldb::ProcessSP GetProcess() const; diff --git a/lldb/include/lldb/Utility/Baton.h b/lldb/include/lldb/Utility/Baton.h index 68b9e9f..4050f2a 100644 --- a/lldb/include/lldb/Utility/Baton.h +++ b/lldb/include/lldb/Utility/Baton.h @@ -44,7 +44,7 @@ public: class UntypedBaton : public Baton { public: UntypedBaton(void *Data) : m_data(Data) {} - virtual ~UntypedBaton() { + ~UntypedBaton() override { // The default destructor for an untyped baton does NOT attempt to clean up // anything in m_data. } @@ -63,8 +63,7 @@ public: const T *getItem() const { return Item.get(); } void *data() override { return Item.get(); } - virtual void GetDescription(Stream *s, - lldb::DescriptionLevel level) const override {} + void GetDescription(Stream *s, lldb::DescriptionLevel level) const override {} protected: std::unique_ptr Item; diff --git a/lldb/include/lldb/Utility/DataBufferLLVM.h b/lldb/include/lldb/Utility/DataBufferLLVM.h index e643851..d4c1107 100644 --- a/lldb/include/lldb/Utility/DataBufferLLVM.h +++ b/lldb/include/lldb/Utility/DataBufferLLVM.h @@ -25,7 +25,7 @@ namespace lldb_private { class FileSystem; class DataBufferLLVM : public DataBuffer { public: - ~DataBufferLLVM(); + ~DataBufferLLVM() override; uint8_t *GetBytes() override; const uint8_t *GetBytes() const override; diff --git a/lldb/include/lldb/Utility/StringExtractorGDBRemote.h b/lldb/include/lldb/Utility/StringExtractorGDBRemote.h index b3f58f32..8c9c014 100644 --- a/lldb/include/lldb/Utility/StringExtractorGDBRemote.h +++ b/lldb/include/lldb/Utility/StringExtractorGDBRemote.h @@ -34,7 +34,7 @@ public: StringExtractorGDBRemote(const StringExtractorGDBRemote &rhs) : StringExtractor(rhs), m_validator(rhs.m_validator) {} - virtual ~StringExtractorGDBRemote() {} + ~StringExtractorGDBRemote() override {} bool ValidateResponse() const; diff --git a/lldb/source/API/SBBreakpointOptionCommon.h b/lldb/source/API/SBBreakpointOptionCommon.h index b030cc0..52049e4 100644 --- a/lldb/source/API/SBBreakpointOptionCommon.h +++ b/lldb/source/API/SBBreakpointOptionCommon.h @@ -24,7 +24,7 @@ public: SBBreakpointCallbackBaton(SBBreakpointHitCallback callback, void *baton); - ~SBBreakpointCallbackBaton(); + ~SBBreakpointCallbackBaton() override; static bool PrivateBreakpointHitCallback(void *baton, lldb_private::StoppointCallbackContext *ctx, diff --git a/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp index ab1cd93..760f344 100644 --- a/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp +++ b/lldb/source/Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.cpp @@ -94,7 +94,7 @@ public: m_collection_sp->Initialize(g_properties); } - virtual ~DynamicLoaderDarwinKernelProperties() {} + ~DynamicLoaderDarwinKernelProperties() override {} bool GetLoadKexts() const { const uint32_t idx = ePropertyLoadKexts; diff --git a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h index 8f4c65d..aac0a5d 100644 --- a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h +++ b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h @@ -28,7 +28,7 @@ class DynamicLoaderDarwin : public lldb_private::DynamicLoader { public: DynamicLoaderDarwin(lldb_private::Process *process); - virtual ~DynamicLoaderDarwin() override; + ~DynamicLoaderDarwin() override; /// Called after attaching a process. /// diff --git a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h index 1e965a5..9ccb3bc 100644 --- a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h +++ b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h @@ -32,7 +32,7 @@ class DynamicLoaderMacOS : public lldb_private::DynamicLoaderDarwin { public: DynamicLoaderMacOS(lldb_private::Process *process); - virtual ~DynamicLoaderMacOS() override; + ~DynamicLoaderMacOS() override; // Static Functions static void Initialize(); diff --git a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h index 656a204..77c8209 100644 --- a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h +++ b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h @@ -36,7 +36,7 @@ class DynamicLoaderMacOSXDYLD : public lldb_private::DynamicLoaderDarwin { public: DynamicLoaderMacOSXDYLD(lldb_private::Process *process); - virtual ~DynamicLoaderMacOSXDYLD() override; + ~DynamicLoaderMacOSXDYLD() override; // Static Functions static void Initialize(); diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangDiagnostic.h b/lldb/source/Plugins/ExpressionParser/Clang/ClangDiagnostic.h index 30a7c93..db50c2a 100644 --- a/lldb/source/Plugins/ExpressionParser/Clang/ClangDiagnostic.h +++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangDiagnostic.h @@ -33,7 +33,7 @@ public: uint32_t compiler_id) : Diagnostic(message, severity, eDiagnosticOriginClang, compiler_id) {} - virtual ~ClangDiagnostic() = default; + ~ClangDiagnostic() override = default; bool HasFixIts() const override { return !m_fixit_vec.empty(); } diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp index 925ece5..e3b70fe 100644 --- a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp +++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp @@ -153,7 +153,7 @@ public: } void HandleDiagnostic(DiagnosticsEngine::Level DiagLevel, - const clang::Diagnostic &Info) { + const clang::Diagnostic &Info) override { if (m_manager) { llvm::SmallVector diag_str; Info.FormatDiagnostic(diag_str); @@ -719,7 +719,7 @@ public: } /// Deregisters and destroys this code-completion consumer. - virtual ~CodeComplete() {} + ~CodeComplete() override {} /// \name Code-completion filtering /// Check if the result should be filtered out. diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp index c2a09cb..44b9e5e 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp @@ -914,7 +914,7 @@ static void LoadSystemFormatters(lldb::TypeCategoryImplSP cpp_category_sp) { std::unique_ptr CPlusPlusLanguage::GetTypeScavenger() { class CPlusPlusTypeScavenger : public Language::ImageListTypeScavenger { public: - virtual CompilerType AdjustForInclusion(CompilerType &candidate) override { + CompilerType AdjustForInclusion(CompilerType &candidate) override { LanguageType lang_type(candidate.GetMinimumLanguage()); if (!Language::LanguageIsC(lang_type) && !Language::LanguageIsCPlusPlus(lang_type)) diff --git a/lldb/source/Plugins/Language/ObjC/NSDictionary.h b/lldb/source/Plugins/Language/ObjC/NSDictionary.h index e69582d..ecb3fcc 100644 --- a/lldb/source/Plugins/Language/ObjC/NSDictionary.h +++ b/lldb/source/Plugins/Language/ObjC/NSDictionary.h @@ -51,8 +51,8 @@ public: class Prefix : public Matcher { public: Prefix(ConstString p); - virtual ~Prefix() = default; - virtual bool Match(ConstString class_name) override; + ~Prefix() override = default; + bool Match(ConstString class_name) override; private: ConstString m_prefix; @@ -60,8 +60,8 @@ public: class Full : public Matcher { public: Full(ConstString n); - virtual ~Full() = default; - virtual bool Match(ConstString class_name) override; + ~Full() override = default; + bool Match(ConstString class_name) override; private: ConstString m_name; diff --git a/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp b/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp index ad29534..45cb485 100644 --- a/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp +++ b/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp @@ -994,7 +994,7 @@ std::unique_ptr ObjCLanguage::GetTypeScavenger() { class ObjCDebugInfoScavenger : public Language::ImageListTypeScavenger { public: - virtual CompilerType AdjustForInclusion(CompilerType &candidate) override { + CompilerType AdjustForInclusion(CompilerType &candidate) override { LanguageType lang_type(candidate.GetMinimumLanguage()); if (!Language::LanguageIsObjC(lang_type)) return CompilerType(); diff --git a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp index 9362eb2..9f2540f 100644 --- a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp +++ b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp @@ -2659,7 +2659,8 @@ class ObjCExceptionRecognizedStackFrame : public RecognizedStackFrame { }; class ObjCExceptionThrowFrameRecognizer : public StackFrameRecognizer { - lldb::RecognizedStackFrameSP RecognizeFrame(lldb::StackFrameSP frame) { + lldb::RecognizedStackFrameSP + RecognizeFrame(lldb::StackFrameSP frame) override { return lldb::RecognizedStackFrameSP( new ObjCExceptionRecognizedStackFrame(frame)); }; diff --git a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.h b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.h index 00425b7..3ec4e37 100644 --- a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.h +++ b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptExpressionOpts.h @@ -34,7 +34,7 @@ public: RenderScriptRuntimeModulePass(const lldb_private::Process *process) : ModulePass(ID), m_process_ptr(process) {} - bool runOnModule(llvm::Module &module); + bool runOnModule(llvm::Module &module) override; private: const lldb_private::Process *m_process_ptr; diff --git a/lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h b/lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h index 3c8fba3..9b696de 100644 --- a/lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h +++ b/lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h @@ -113,7 +113,7 @@ public: uint32_t GetDependentModules(lldb_private::FileSpecList &files) override; - virtual lldb_private::Address GetEntryPointAddress() override; + lldb_private::Address GetEntryPointAddress() override; lldb_private::Address GetBaseAddress() override; diff --git a/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h b/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h index 94d61bb..c774daa 100644 --- a/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h +++ b/lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h @@ -33,7 +33,7 @@ public: PlatformRemoteGDBServer(); - virtual ~PlatformRemoteGDBServer(); + ~PlatformRemoteGDBServer() override; // lldb_private::PluginInterface functions ConstString GetPluginName() override { return GetPluginNameStatic(); } diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp index 890b536..db95d91 100644 --- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp @@ -135,7 +135,7 @@ public: m_collection_sp->Initialize(g_properties); } - virtual ~PluginProperties() {} + ~PluginProperties() override {} uint64_t GetPacketTimeout() { const uint32_t idx = ePropertyPacketTimeout; @@ -5158,7 +5158,7 @@ public: m_option_group.Finalize(); } - ~CommandObjectProcessGDBRemoteSpeedTest() {} + ~CommandObjectProcessGDBRemoteSpeedTest() override {} Options *GetOptions() override { return &m_option_group; } @@ -5209,7 +5209,7 @@ public: : CommandObjectParsed(interpreter, "process plugin packet history", "Dumps the packet history buffer. ", NULL) {} - ~CommandObjectProcessGDBRemotePacketHistory() {} + ~CommandObjectProcessGDBRemotePacketHistory() override {} bool DoExecute(Args &command, CommandReturnObject &result) override { const size_t argc = command.GetArgumentCount(); @@ -5240,7 +5240,7 @@ public: "Maximum size that lldb will try to read/write one one chunk.", NULL) {} - ~CommandObjectProcessGDBRemotePacketXferSize() {} + ~CommandObjectProcessGDBRemotePacketXferSize() override {} bool DoExecute(Args &command, CommandReturnObject &result) override { const size_t argc = command.GetArgumentCount(); @@ -5282,7 +5282,7 @@ public: "stripped from the result.", NULL) {} - ~CommandObjectProcessGDBRemotePacketSend() {} + ~CommandObjectProcessGDBRemotePacketSend() override {} bool DoExecute(Args &command, CommandReturnObject &result) override { const size_t argc = command.GetArgumentCount(); @@ -5333,7 +5333,7 @@ public: "encoded into a valid 'qRcmd' packet, sent and the " "response will be printed.") {} - ~CommandObjectProcessGDBRemotePacketMonitor() {} + ~CommandObjectProcessGDBRemotePacketMonitor() override {} bool DoExecute(llvm::StringRef command, CommandReturnObject &result) override { @@ -5397,7 +5397,7 @@ public: interpreter))); } - ~CommandObjectProcessGDBRemotePacket() {} + ~CommandObjectProcessGDBRemotePacket() override {} }; class CommandObjectMultiwordProcessGDBRemote : public CommandObjectMultiword { @@ -5412,7 +5412,7 @@ public: CommandObjectSP(new CommandObjectProcessGDBRemotePacket(interpreter))); } - ~CommandObjectMultiwordProcessGDBRemote() {} + ~CommandObjectMultiwordProcessGDBRemote() override {} }; CommandObject *ProcessGDBRemote::GetPluginCommandObject() { diff --git a/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp b/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp index 5d32ba6..f59bd83 100644 --- a/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp +++ b/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp @@ -683,7 +683,7 @@ public: m_option_group.Finalize(); } - ~CommandObjectProcessMinidumpDump() {} + ~CommandObjectProcessMinidumpDump() override {} Options *GetOptions() override { return &m_option_group; } @@ -813,7 +813,7 @@ public: CommandObjectSP(new CommandObjectProcessMinidumpDump(interpreter))); } - ~CommandObjectMultiwordProcessMinidump() {} + ~CommandObjectMultiwordProcessMinidump() override {} }; CommandObject *ProcessMinidump::GetPluginCommandObject() { diff --git a/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp b/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp index 3994dd0..81a2712 100644 --- a/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp +++ b/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp @@ -141,7 +141,7 @@ public: m_collection_sp->Initialize(g_properties); } - virtual ~StructuredDataDarwinLogProperties() {} + ~StructuredDataDarwinLogProperties() override {} bool GetEnableOnStartup() const { const uint32_t idx = ePropertyEnableOnStartup; diff --git a/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.h b/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.h index 7ff3721..8fa1eed 100644 --- a/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.h +++ b/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.h @@ -65,7 +65,7 @@ public: void ModulesDidLoad(Process &process, ModuleList &module_list) override; - ~StructuredDataDarwinLog(); + ~StructuredDataDarwinLog() override; private: // Private constructors diff --git a/lldb/source/Symbol/ClangASTContext.cpp b/lldb/source/Symbol/ClangASTContext.cpp index 726963f..22c9a70 100644 --- a/lldb/source/Symbol/ClangASTContext.cpp +++ b/lldb/source/Symbol/ClangASTContext.cpp @@ -951,7 +951,7 @@ public: } void HandleDiagnostic(DiagnosticsEngine::Level DiagLevel, - const clang::Diagnostic &info) { + const clang::Diagnostic &info) override { if (m_log) { llvm::SmallVector diag_str(10); info.FormatDiagnostic(diag_str); diff --git a/lldb/source/Symbol/PostfixExpression.cpp b/lldb/source/Symbol/PostfixExpression.cpp index df51288..9b6108c 100644 --- a/lldb/source/Symbol/PostfixExpression.cpp +++ b/lldb/source/Symbol/PostfixExpression.cpp @@ -124,23 +124,23 @@ public: using Visitor<>::Dispatch; private: - void Visit(BinaryOpNode &binary, Node *&); + void Visit(BinaryOpNode &binary, Node *&) override; - void Visit(InitialValueNode &val, Node *&); + void Visit(InitialValueNode &val, Node *&) override; - void Visit(IntegerNode &integer, Node *&) { + void Visit(IntegerNode &integer, Node *&) override { m_out_stream.PutHex8(DW_OP_constu); m_out_stream.PutULEB128(integer.GetValue()); ++m_stack_depth; } - void Visit(RegisterNode ®, Node *&); + void Visit(RegisterNode ®, Node *&) override; - void Visit(SymbolNode &symbol, Node *&) { + void Visit(SymbolNode &symbol, Node *&) override { llvm_unreachable("Symbols should have been resolved by now!"); } - void Visit(UnaryOpNode &unary, Node *&); + void Visit(UnaryOpNode &unary, Node *&) override; Stream &m_out_stream; diff --git a/lldb/source/Target/StructuredDataPlugin.cpp b/lldb/source/Target/StructuredDataPlugin.cpp index 842708b..a22902d 100644 --- a/lldb/source/Target/StructuredDataPlugin.cpp +++ b/lldb/source/Target/StructuredDataPlugin.cpp @@ -23,7 +23,7 @@ public: "Parent for per-plugin structured data commands", "plugin structured-data ") {} - ~CommandStructuredData() {} + ~CommandStructuredData() override {} }; } diff --git a/lldb/tools/intel-features/intel-mpx/cli-wrapper-mpxtable.cpp b/lldb/tools/intel-features/intel-mpx/cli-wrapper-mpxtable.cpp index 34d9441..b706ee7 100644 --- a/lldb/tools/intel-features/intel-mpx/cli-wrapper-mpxtable.cpp +++ b/lldb/tools/intel-features/intel-mpx/cli-wrapper-mpxtable.cpp @@ -302,8 +302,8 @@ static bool GetInitInfo(lldb::SBDebugger debugger, lldb::SBTarget &target, class MPXTableShow : public lldb::SBCommandPluginInterface { public: - virtual bool DoExecute(lldb::SBDebugger debugger, char **command, - lldb::SBCommandReturnObject &result) { + bool DoExecute(lldb::SBDebugger debugger, char **command, + lldb::SBCommandReturnObject &result) override { if (command) { int arg_c = 0; @@ -347,8 +347,8 @@ public: class MPXTableSet : public lldb::SBCommandPluginInterface { public: - virtual bool DoExecute(lldb::SBDebugger debugger, char **command, - lldb::SBCommandReturnObject &result) { + bool DoExecute(lldb::SBDebugger debugger, char **command, + lldb::SBCommandReturnObject &result) override { if (command) { int arg_c = 0; diff --git a/lldb/unittests/Editline/EditlineTest.cpp b/lldb/unittests/Editline/EditlineTest.cpp index f4130d0..c696564 100644 --- a/lldb/unittests/Editline/EditlineTest.cpp +++ b/lldb/unittests/Editline/EditlineTest.cpp @@ -250,7 +250,7 @@ public: setenv("TERM", "vt100", 1); } - void SetUp() { + void SetUp() override { FileSystem::Initialize(); // Validate the editline adapter. @@ -263,7 +263,7 @@ public: std::make_shared([&] { _el_adapter.ConsumeAllOutput(); }); } - void TearDown() { + void TearDown() override { _el_adapter.CloseInput(); if (_sp_output_thread) _sp_output_thread->join(); diff --git a/lldb/unittests/Process/gdb-remote/GDBRemoteClientBaseTest.cpp b/lldb/unittests/Process/gdb-remote/GDBRemoteClientBaseTest.cpp index 477f65a..afba5c64 100644 --- a/lldb/unittests/Process/gdb-remote/GDBRemoteClientBaseTest.cpp +++ b/lldb/unittests/Process/gdb-remote/GDBRemoteClientBaseTest.cpp @@ -29,11 +29,11 @@ struct MockDelegate : public GDBRemoteClientBase::ContinueDelegate { unsigned stop_reply_called = 0; std::vector structured_data_packets; - void HandleAsyncStdout(llvm::StringRef out) { output += out; } - void HandleAsyncMisc(llvm::StringRef data) { misc_data += data; } - void HandleStopReply() { ++stop_reply_called; } + void HandleAsyncStdout(llvm::StringRef out) override { output += out; } + void HandleAsyncMisc(llvm::StringRef data) override { misc_data += data; } + void HandleStopReply() override { ++stop_reply_called; } - void HandleAsyncStructuredDataPacket(llvm::StringRef data) { + void HandleAsyncStructuredDataPacket(llvm::StringRef data) override { structured_data_packets.push_back(data); } }; diff --git a/lldb/unittests/Symbol/TestClangASTContext.cpp b/lldb/unittests/Symbol/TestClangASTContext.cpp index 39b0fb0..ae146d0 100644 --- a/lldb/unittests/Symbol/TestClangASTContext.cpp +++ b/lldb/unittests/Symbol/TestClangASTContext.cpp @@ -34,12 +34,12 @@ public: FileSystem::Terminate(); } - virtual void SetUp() override { + void SetUp() override { std::string triple = HostInfo::GetTargetTriple(); m_ast.reset(new ClangASTContext(triple.c_str())); } - virtual void TearDown() override { m_ast.reset(); } + void TearDown() override { m_ast.reset(); } protected: std::unique_ptr m_ast; diff --git a/lldb/unittests/Target/ProcessInstanceInfoTest.cpp b/lldb/unittests/Target/ProcessInstanceInfoTest.cpp index 657f500..80be01d 100644 --- a/lldb/unittests/Target/ProcessInstanceInfoTest.cpp +++ b/lldb/unittests/Target/ProcessInstanceInfoTest.cpp @@ -16,13 +16,13 @@ namespace { /// for odd ones. class DummyUserIDResolver : public UserIDResolver { protected: - llvm::Optional DoGetUserName(id_t uid) { + llvm::Optional DoGetUserName(id_t uid) override { if (uid % 2) return ("user" + llvm::Twine(uid)).str(); return llvm::None; } - llvm::Optional DoGetGroupName(id_t gid) { + llvm::Optional DoGetGroupName(id_t gid) override { if (gid % 2) return ("group" + llvm::Twine(gid)).str(); return llvm::None; -- 2.7.4