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 7 struct 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. 16 scoped_refptr<Foo> GetBuggyFoo() { 17 return new Foo; 18 } 19 20 void Bar(Foo* f); 21 22 void UseBuggyFoo() { 23 Bar(GetBuggyFoo()); 24 } 25