summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/tools/clang/plugins/tests/virtual_methods.h
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libwebrtc/tools/clang/plugins/tests/virtual_methods.h')
-rw-r--r--third_party/libwebrtc/tools/clang/plugins/tests/virtual_methods.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/third_party/libwebrtc/tools/clang/plugins/tests/virtual_methods.h b/third_party/libwebrtc/tools/clang/plugins/tests/virtual_methods.h
new file mode 100644
index 0000000000..d9fbf96ed3
--- /dev/null
+++ b/third_party/libwebrtc/tools/clang/plugins/tests/virtual_methods.h
@@ -0,0 +1,39 @@
+// Copyright (c) 2011 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.
+
+#ifndef VIRTUAL_METHODS_H_
+#define VIRTUAL_METHODS_H_
+
+// Should warn about virtual method usage.
+class VirtualMethodsInHeaders {
+ public:
+ // Don't complain about these.
+ virtual void MethodIsAbstract() = 0;
+ virtual void MethodHasNoArguments();
+ virtual void MethodHasEmptyDefaultImpl() {}
+
+ // But complain about this:
+ virtual bool ComplainAboutThis() { return true; }
+};
+
+// Complain on missing 'virtual' keyword in overrides.
+class WarnOnMissingVirtual : public VirtualMethodsInHeaders {
+ public:
+ void MethodHasNoArguments() override;
+};
+
+// Don't complain about things in a 'testing' namespace.
+namespace testing {
+struct TestStruct {};
+} // namespace testing
+
+class VirtualMethodsInHeadersTesting : public VirtualMethodsInHeaders {
+ public:
+ // Don't complain about no virtual testing methods.
+ void MethodHasNoArguments();
+ private:
+ testing::TestStruct tester_;
+};
+
+#endif // VIRTUAL_METHODS_H_