media/webrtc/trunk/tools/clang/plugins/tests/virtual_methods.cpp

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
     2 // Use of this source code is governed by a BSD-style license that can be
     3 // found in the LICENSE file.
     5 #include "virtual_methods.h"
     7 // Shouldn't warn about method usage in the implementation file.
     8 class VirtualMethodsInImplementation {
     9  public:
    10   virtual void MethodIsAbstract() = 0;
    11   virtual void MethodHasNoArguments();
    12   virtual void MethodHasEmptyDefaultImpl() {}
    13   virtual bool ComplainAboutThis() { return true; }
    14 };
    16 // Stubs to fill in the abstract method
    17 class ConcreteVirtualMethodsInHeaders : public VirtualMethodsInHeaders {
    18  public:
    19   virtual void MethodIsAbstract() override {}
    20 };
    22 class ConcreteVirtualMethodsInImplementation
    23     : public VirtualMethodsInImplementation {
    24  public:
    25   virtual void MethodIsAbstract() override {}
    26 };
    28 // Fill in the implementations
    29 void VirtualMethodsInHeaders::MethodHasNoArguments() {}
    30 void WarnOnMissingVirtual::MethodHasNoArguments() {}
    31 void VirtualMethodsInImplementation::MethodHasNoArguments() {}
    33 int main() {
    34   ConcreteVirtualMethodsInHeaders one;
    35   ConcreteVirtualMethodsInImplementation two;
    36 }

mercurial