In file included from base_refcounted.cpp:5:
./base_refcounted.h:47:3: warning: [chromium-style] Classes that are ref-counted should have destructors that are declared protected or private.
  ~PublicRefCountedDtorInHeader() {}
  ^
./base_refcounted.h:44:7: note: [chromium-style] 'PublicRefCountedDtorInHeader' inherits from 'base::RefCounted<PublicRefCountedDtorInHeader>' here
    : public base::RefCounted<PublicRefCountedDtorInHeader> {
      ^
./base_refcounted.h:59:3: warning: [chromium-style] Classes that are ref-counted should have destructors that are declared protected or private.
  ~PublicRefCountedThreadSafeDtorInHeader() {}
  ^
./base_refcounted.h:55:7: note: [chromium-style] 'PublicRefCountedThreadSafeDtorInHeader' inherits from 'base::RefCountedThreadSafe<PublicRefCountedThreadSafeDtorInHeader>' here
    : public base::RefCountedThreadSafe<
      ^
./base_refcounted.h:73:3: warning: [chromium-style] Classes that are ref-counted and have non-private destructors should declare their destructor virtual.
  ~ProtectedRefCountedDtorInHeader() {}
  ^
./base_refcounted.h:110:3: warning: [chromium-style] Classes that are ref-counted should have destructors that are declared protected or private.
  virtual ~DerivedProtectedToPublicInHeader() {}
  ^
./base_refcounted.h:107:7: note: [chromium-style] 'DerivedProtectedToPublicInHeader' inherits from 'ProtectedRefCountedVirtualDtorInHeader' here
    : public ProtectedRefCountedVirtualDtorInHeader {
      ^
./base_refcounted.h:81:7: note: [chromium-style] 'ProtectedRefCountedVirtualDtorInHeader' inherits from 'base::RefCounted<ProtectedRefCountedVirtualDtorInHeader>' here
    : public base::RefCounted<ProtectedRefCountedVirtualDtorInHeader> {
      ^
./base_refcounted.h:115:7: warning: [chromium-style] Classes that are ref-counted should have explicit destructors that are declared protected or private.
class ImplicitDerivedProtectedToPublicInHeader
      ^
./base_refcounted.h:116:7: note: [chromium-style] 'ImplicitDerivedProtectedToPublicInHeader' inherits from 'ProtectedRefCountedVirtualDtorInHeader' here
    : public ProtectedRefCountedVirtualDtorInHeader {
      ^
./base_refcounted.h:81:7: note: [chromium-style] 'ProtectedRefCountedVirtualDtorInHeader' inherits from 'base::RefCounted<ProtectedRefCountedVirtualDtorInHeader>' here
    : public base::RefCounted<ProtectedRefCountedVirtualDtorInHeader> {
      ^
./base_refcounted.h:145:1: warning: [chromium-style] Classes that are ref-counted should have destructors that are declared protected or private.
class ImplementsAPublicInterface
^
./base_refcounted.h:147:7: note: [chromium-style] 'ImplementsAPublicInterface' inherits from 'base::RefCounted<ImplementsAPublicInterface>' here
      public base::RefCounted<ImplementsAPublicInterface> {
      ^
./base_refcounted.h:139:3: note: [chromium-style] Public destructor declared here
  virtual ~APublicInterface() {}
  ^
./base_refcounted.h:146:7: note: [chromium-style] 'ImplementsAPublicInterface' inherits from 'APublicInterface' here
    : public APublicInterface,
      ^
./base_refcounted.h:164:1: warning: [chromium-style] Classes that are ref-counted should have explicit destructors that are declared protected or private.
class ImplementsAnImplicitInterface
^
./base_refcounted.h:166:7: note: [chromium-style] 'ImplementsAnImplicitInterface' inherits from 'base::RefCounted<ImplementsAnImplicitInterface>' here
      public base::RefCounted<ImplementsAnImplicitInterface> {
      ^
./base_refcounted.h:158:7: note: [chromium-style] No explicit destructor for 'AnImplicitInterface' defined
class AnImplicitInterface {
      ^
./base_refcounted.h:165:7: note: [chromium-style] 'ImplementsAnImplicitInterface' inherits from 'AnImplicitInterface' here
    : public AnImplicitInterface,
      ^
./base_refcounted.h:204:3: warning: [chromium-style] Classes that are ref-counted and have non-private destructors should declare their destructor virtual.
  ~RefcountedType() {}
  ^
./base_refcounted.h:204:3: warning: [chromium-style] Classes that are ref-counted and have non-private destructors should declare their destructor virtual.
base_refcounted.cpp:16:3: warning: [chromium-style] Classes that are ref-counted should have destructors that are declared protected or private.
  virtual ~AnonymousDerivedProtectedToPublicInImpl() {}
  ^
base_refcounted.cpp:13:7: note: [chromium-style] 'AnonymousDerivedProtectedToPublicInImpl' inherits from 'ProtectedRefCountedVirtualDtorInHeader' here
    : public ProtectedRefCountedVirtualDtorInHeader {
      ^
./base_refcounted.h:81:7: note: [chromium-style] 'ProtectedRefCountedVirtualDtorInHeader' inherits from 'base::RefCounted<ProtectedRefCountedVirtualDtorInHeader>' here
    : public base::RefCounted<ProtectedRefCountedVirtualDtorInHeader> {
      ^
./base_refcounted.h:73:3: warning: [chromium-style] Classes that are ref-counted and have non-private destructors should declare their destructor virtual.
  ~ProtectedRefCountedDtorInHeader() {}
  ^
base_refcounted.cpp:33:3: warning: [chromium-style] Classes that are ref-counted should have destructors that are declared protected or private.
  ~PublicRefCountedDtorInImpl() {}
  ^
base_refcounted.cpp:30:7: note: [chromium-style] 'PublicRefCountedDtorInImpl' inherits from 'base::RefCounted<PublicRefCountedDtorInImpl>' here
    : public base::RefCounted<PublicRefCountedDtorInImpl> {
      ^
base_refcounted.cpp:59:3: warning: [chromium-style] Classes that are ref-counted should have destructors that are declared protected or private.
  ~UnsafeTypedefChainInImpl() {}
  ^
base_refcounted.cpp:56:34: note: [chromium-style] 'UnsafeTypedefChainInImpl' inherits from 'Baz::MyLocalTypedef' (aka 'RefCounted<Foo::BarInterface>') here
class UnsafeTypedefChainInImpl : public Baz::MyLocalTypedef {
                                 ^
13 warnings generated.
