Index: tools/clang/blink_gc_plugin/tests/fields_require_tracing.cpp |
diff --git a/tools/clang/blink_gc_plugin/tests/fields_require_tracing.cpp b/tools/clang/blink_gc_plugin/tests/fields_require_tracing.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..880ce1e9d6791c98eed60c6ccc2cfd9e2063aae4 |
--- /dev/null |
+++ b/tools/clang/blink_gc_plugin/tests/fields_require_tracing.cpp |
@@ -0,0 +1,26 @@ |
+// Copyright 2014 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 "fields_require_tracing.h" |
+ |
+namespace blink { |
+ |
+void PartObject::trace(Visitor* visitor) { |
+ m_obj1->trace(visitor); // Don't allow direct tracing. |
+ visitor->trace(m_obj2); |
+ // Missing visitor->trace(m_obj3); |
+ visitor->trace(m_parts); |
+} |
+ |
+void PartBObject::trace(Visitor* visitor) { |
+ // Missing visitor->trace(m_set); |
+ visitor->trace(m_vector); |
+} |
+ |
+void HeapObject::trace(Visitor* visitor) { |
+ // Missing visitor->trace(m_part); |
+ visitor->trace(m_obj); |
+} |
+ |
+} |