Roll src/third_party/WebKit f36d5e0:68b67cd (svn 193299:193303)
[chromium-blink-merge.git] / tools / clang / blink_gc_plugin / tests / ignore_fields.h
blobe12bbaba1be53f88eb81bd13614a8fce6ecee1e0
1 // Copyright 2014 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.
5 #ifndef IGNORE_FIELDS_H_
6 #define IGNORE_FIELDS_H_
8 #include "heap/stubs.h"
10 namespace blink {
12 class HeapObject : public GarbageCollected<HeapObject> {
13 public:
14 virtual void trace(Visitor*) { }
17 // Don't warn about raw pointers to heap allocated objects.
18 class A : public GarbageCollected<A>{
19 private:
20 GC_PLUGIN_IGNORE("http://crbug.com/12345")
21 HeapObject* m_obj;
24 // Don't require trace method when (all) GC fields are ignored.
25 class B : public GarbageCollected<B> {
26 private:
27 GC_PLUGIN_IGNORE("http://crbug.com/12345")
28 Member<HeapObject> m_one;
31 // Don't require tracing an ignored field.
32 class C : public GarbageCollected<C> {
33 public:
34 void trace(Visitor*);
35 private:
36 Member<HeapObject> m_one;
37 GC_PLUGIN_IGNORE("http://crbug.com/12345")
38 Member<HeapObject> m_two;
43 #endif