diff options
Diffstat (limited to 'media/webrtc/trunk/tools/clang/plugins/tests/virtual_methods.cpp')
-rw-r--r-- | media/webrtc/trunk/tools/clang/plugins/tests/virtual_methods.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/media/webrtc/trunk/tools/clang/plugins/tests/virtual_methods.cpp b/media/webrtc/trunk/tools/clang/plugins/tests/virtual_methods.cpp new file mode 100644 index 000000000..a07cbe487 --- /dev/null +++ b/media/webrtc/trunk/tools/clang/plugins/tests/virtual_methods.cpp @@ -0,0 +1,36 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "virtual_methods.h" + +// Shouldn't warn about method usage in the implementation file. +class VirtualMethodsInImplementation { + public: + virtual void MethodIsAbstract() = 0; + virtual void MethodHasNoArguments(); + virtual void MethodHasEmptyDefaultImpl() {} + virtual bool ComplainAboutThis() { return true; } +}; + +// Stubs to fill in the abstract method +class ConcreteVirtualMethodsInHeaders : public VirtualMethodsInHeaders { + public: + virtual void MethodIsAbstract() override {} +}; + +class ConcreteVirtualMethodsInImplementation + : public VirtualMethodsInImplementation { + public: + virtual void MethodIsAbstract() override {} +}; + +// Fill in the implementations +void VirtualMethodsInHeaders::MethodHasNoArguments() {} +void WarnOnMissingVirtual::MethodHasNoArguments() {} +void VirtualMethodsInImplementation::MethodHasNoArguments() {} + +int main() { + ConcreteVirtualMethodsInHeaders one; + ConcreteVirtualMethodsInImplementation two; +} |