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

Thu, 15 Jan 2015 21:03:48 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 21:03:48 +0100
branch
TOR_BUG_9701
changeset 11
deefc01c0e14
permissions
-rw-r--r--

Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)

     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