Home | History | Annotate | Download | only in tests
      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