mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-24 09:27:31 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
|
|
@ -0,0 +1,72 @@
|
|||
// 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 "base_refcounted.h"
|
||||
|
||||
#include <cstddef>
|
||||
|
||||
namespace {
|
||||
|
||||
// Unsafe; should error.
|
||||
class AnonymousDerivedProtectedToPublicInImpl
|
||||
: public ProtectedRefCountedDtorInHeader {
|
||||
public:
|
||||
AnonymousDerivedProtectedToPublicInImpl() {}
|
||||
~AnonymousDerivedProtectedToPublicInImpl() {}
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
// Unsafe; should error.
|
||||
class PublicRefCountedDtorInImpl
|
||||
: public base::RefCounted<PublicRefCountedDtorInImpl> {
|
||||
public:
|
||||
PublicRefCountedDtorInImpl() {}
|
||||
~PublicRefCountedDtorInImpl() {}
|
||||
|
||||
private:
|
||||
friend class base::RefCounted<PublicRefCountedDtorInImpl>;
|
||||
};
|
||||
|
||||
class Foo {
|
||||
public:
|
||||
class BarInterface {
|
||||
protected:
|
||||
virtual ~BarInterface() {}
|
||||
};
|
||||
|
||||
typedef base::RefCounted<BarInterface> RefCountedBar;
|
||||
typedef RefCountedBar AnotherTypedef;
|
||||
};
|
||||
|
||||
class Baz {
|
||||
public:
|
||||
typedef typename Foo::AnotherTypedef MyLocalTypedef;
|
||||
};
|
||||
|
||||
// Unsafe; should error.
|
||||
class UnsafeTypedefChainInImpl : public Baz::MyLocalTypedef {
|
||||
public:
|
||||
UnsafeTypedefChainInImpl() {}
|
||||
~UnsafeTypedefChainInImpl() {}
|
||||
};
|
||||
|
||||
int main() {
|
||||
PublicRefCountedDtorInHeader bad;
|
||||
PublicRefCountedDtorInImpl also_bad;
|
||||
|
||||
ProtectedRefCountedDtorInHeader* protected_ok = NULL;
|
||||
PrivateRefCountedDtorInHeader* private_ok = NULL;
|
||||
|
||||
DerivedProtectedToPublicInHeader still_bad;
|
||||
PublicRefCountedThreadSafeDtorInHeader another_bad_variation;
|
||||
AnonymousDerivedProtectedToPublicInImpl and_this_is_bad_too;
|
||||
ImplicitDerivedProtectedToPublicInHeader bad_yet_again;
|
||||
UnsafeTypedefChainInImpl and_again_this_is_bad;
|
||||
|
||||
WebKitPublicDtorInHeader ignored;
|
||||
WebKitDerivedPublicDtorInHeader still_ignored;
|
||||
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue