1// Copyright (c) 2013 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 "scoped_refptr.h"
6
7struct Foo {
8  int dummy;
9};
10
11// A temporary scoped_refptr is passed as a raw pointer function argument. Since
12// temporaries are destroyed at the end of the full expression, this is 'safe'
13// and could be rewritten to use get(). However, the tool just skips this case
14// This should be rare enough that manual intervention is sufficient, since
15// seeing this pattern probably indicates a code smell.
16scoped_refptr<Foo> GetBuggyFoo() {
17  return new Foo;
18}
19
20void Bar(Foo* f);
21
22void UseBuggyFoo() {
23  Bar(GetBuggyFoo());
24}
25