Index: tools/clang/blink_gc_plugin/tests/fields_illegal_tracing.txt |
diff --git a/tools/clang/blink_gc_plugin/tests/fields_illegal_tracing.txt b/tools/clang/blink_gc_plugin/tests/fields_illegal_tracing.txt |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5e428dcd44671781eaf1cde02021c99c3169e037 |
--- /dev/null |
+++ b/tools/clang/blink_gc_plugin/tests/fields_illegal_tracing.txt |
@@ -0,0 +1,50 @@ |
+In file included from fields_illegal_tracing.cpp:5: |
+./fields_illegal_tracing.h:32:1: warning: [blink-gc] Class 'PartObject' contains invalid fields. |
+class PartObject { |
+^ |
+./fields_illegal_tracing.h:37:5: note: [blink-gc] OwnPtr field 'm_obj1' to a GC managed class declared here: |
+ OwnPtr<HeapObject> m_obj1; |
+ ^ |
+./fields_illegal_tracing.h:38:5: note: [blink-gc] RefPtr field 'm_obj2' to a GC managed class declared here: |
+ RefPtr<HeapObject> m_obj2; |
+ ^ |
+./fields_illegal_tracing.h:40:5: note: [blink-gc] std::unique_ptr field 'm_obj4' to a GC managed class declared here: |
+ std::unique_ptr<HeapObject> m_obj4; |
+ ^ |
+./fields_illegal_tracing.h:43:1: warning: [blink-gc] Class 'HeapObject' contains invalid fields. |
+class HeapObject : public GarbageCollectedFinalized<HeapObject> { |
+^ |
+./fields_illegal_tracing.h:48:5: note: [blink-gc] OwnPtr field 'm_obj1' to a GC managed class declared here: |
+ OwnPtr<HeapObject> m_obj1; |
+ ^ |
+./fields_illegal_tracing.h:49:5: note: [blink-gc] RefPtr field 'm_obj2' to a GC managed class declared here: |
+ RefPtr<HeapObject> m_obj2; |
+ ^ |
+./fields_illegal_tracing.h:51:5: note: [blink-gc] std::unique_ptr field 'm_obj4' to a GC managed class declared here: |
+ std::unique_ptr<HeapObject> m_obj4; |
+ ^ |
+fields_illegal_tracing.cpp:9:1: warning: [blink-gc] Class 'PartObject' has untraced or not traceable fields. |
+void PartObject::trace(Visitor* visitor) { |
+^ |
+./fields_illegal_tracing.h:37:5: note: [blink-gc] Untraceable field 'm_obj1' declared here: |
+ OwnPtr<HeapObject> m_obj1; |
+ ^ |
+./fields_illegal_tracing.h:38:5: note: [blink-gc] Untraceable field 'm_obj2' declared here: |
+ RefPtr<HeapObject> m_obj2; |
+ ^ |
+./fields_illegal_tracing.h:40:5: note: [blink-gc] Untraceable field 'm_obj4' declared here: |
+ std::unique_ptr<HeapObject> m_obj4; |
+ ^ |
+fields_illegal_tracing.cpp:16:1: warning: [blink-gc] Class 'HeapObject' has untraced or not traceable fields. |
+void HeapObject::trace(Visitor* visitor) { |
+^ |
+./fields_illegal_tracing.h:48:5: note: [blink-gc] Untraceable field 'm_obj1' declared here: |
+ OwnPtr<HeapObject> m_obj1; |
+ ^ |
+./fields_illegal_tracing.h:49:5: note: [blink-gc] Untraceable field 'm_obj2' declared here: |
+ RefPtr<HeapObject> m_obj2; |
+ ^ |
+./fields_illegal_tracing.h:51:5: note: [blink-gc] Untraceable field 'm_obj4' declared here: |
+ std::unique_ptr<HeapObject> m_obj4; |
+ ^ |
+4 warnings generated. |