chromium/tools/clang/blink_gc_plugin/tests/member_on_stack.h

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef MEMBER_ON_STACK_H
#define MEMBER_ON_STACK_H

#include "heap/stubs.h"

namespace blink {

class HeapObject : public GarbageCollected<HeapObject> {
 public:
  void Trace(Visitor*) const;

  void DoSomething() {
    Member<HeapObject> strong;
    WeakMember<HeapObject> weak;
    Member<HeapObject>* ptr;
    Member<HeapObject>& ref = strong;
  }
};

class GCedWithMember : public GarbageCollected<GCedWithMember> {
 public:
  void Trace(Visitor*) const;

  Member<HeapObject> member_;
};

}  // namespace blink

#endif  // MEMBER_ON_STACK_H