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