// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "scoped_refptr.h"
struct Foo {
int dummy;
};
// A temporary scoped_refptr is passed as a raw pointer function argument. Since
// temporaries are destroyed at the end of the full expression, this is 'safe'
// and could be rewritten to use get(). However, the tool just skips this case
// This should be rare enough that manual intervention is sufficient, since
// seeing this pattern probably indicates a code smell.
scoped_refptr<Foo> GetBuggyFoo() {
return new Foo;
}
void Bar(Foo* f);
void UseBuggyFoo() {
Bar(GetBuggyFoo());
}