1// Copyright (c) 2014 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.
4
5#include "base/memory/ref_counted.h"
6
7struct Foo : public base::RefCounted<Foo> {
8  int dummy;
9};
10
11class Bar {
12  scoped_refptr<Foo> TestFunction();
13};
14
15scoped_refptr<Foo> CreateFoo();
16
17// An example of an unsafe conversion--the scoped_refptr will be destroyed by
18// the time function returns, since it's a temporary, so the returned raw
19// pointer may point to a deleted object.
20scoped_refptr<Foo> Bar::TestFunction() {
21  return CreateFoo();
22}
23