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 struct Bar : public Foo {
     12   int another_dummy;
     13 };
     14 
     15 void 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).
     22 Foo* GetHeapFoo() {
     23   scoped_refptr<Bar>* heap_allocated = new scoped_refptr<Bar>();
     24   *heap_allocated = new Bar;
     25   return *heap_allocated;
     26 }
     27