| // Copyright 2017 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/memory/ref_counted.h" |
| |
| namespace base { |
| |
| class InitialRefCountIsZero : public base::RefCounted<InitialRefCountIsZero> { |
| public: |
| InitialRefCountIsZero() {} |
| private: |
| friend class base::RefCounted<InitialRefCountIsZero>; |
| ~InitialRefCountIsZero() {} |
| }; |
| |
| // TODO(hans): Remove .* and update the static_assert expectations once we roll |
| // past Clang r313315. https://crbug.com/765692. |
| |
| #if defined(NCTEST_ADOPT_REF_TO_ZERO_START) // [r"fatal error: static_assert failed .*\"Use AdoptRef only for the reference count starts from one\.\""] |
| |
| void WontCompile() { |
| AdoptRef(new InitialRefCountIsZero()); |
| } |
| |
| #endif |
| |
| } // namespace base |