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 struct Bar : public Foo { 12 int another_dummy; 13 }; 14 ExpectsRawPtr(Foo * foo)15void ExpectsRawPtr(Foo* foo) { 16 Foo* temp = foo; 17 } 18 19 // Ensure that de-referencing scoped_refptr<>'s are properly rewritten as 20 // ->get() calls, and that the correct conversion is rewritten (eg: not the 21 // Bar* -> Foo* conversion). GetHeapFoo()22Foo* GetHeapFoo() { 23 scoped_refptr<Bar>* heap_allocated = new scoped_refptr<Bar>(); 24 *heap_allocated = new Bar; 25 return heap_allocated->get(); 26 } 27