In file included from stack_allocated.cpp:5: ./stack_allocated.h:14:1: warning: [blink-gc] Class 'PartObject' requires a trace method. class PartObject { ^ ./stack_allocated.h:17:5: note: [blink-gc] Untraced field 'm_obj' declared here: Member m_obj; // Needs tracing. ^ ./stack_allocated.h:24:5: warning: [blink-gc] The stack allocated class 'StackObject' provides an unnecessary trace method: void Trace(Visitor* visitor) const { visitor->Trace(m_obj); } ^ ./stack_allocated.h:30:1: warning: [blink-gc] Class 'HeapObject' contains invalid fields. class HeapObject : public GarbageCollected { ^ ./stack_allocated.h:35:5: note: [blink-gc] Stack-allocated field 'm_part' declared here: StackObject m_part; // Cannot embed a stack allocated object. ^ ./stack_allocated.h:39:27: warning: [blink-gc] Stack-allocated class 'DerivedHeapObject' derives class 'HeapObject' which is garbage collected. class DerivedHeapObject : public HeapObject, public StackObject { ^ ./stack_allocated.h:43:28: warning: [blink-gc] Stack-allocated class 'DerivedHeapObject2' derives class 'HeapObject' which is garbage collected. class DerivedHeapObject2 : public HeapObject { ^ ./stack_allocated.h:24:5: warning: [blink-gc] Class 'StackObject' has untraced or not traceable fields. void Trace(Visitor* visitor) const { visitor->Trace(m_obj); } ^ ./stack_allocated.h:27:5: note: [blink-gc] Untraceable field 'm_obj' declared here: HeapObject* m_obj; // Does not need tracing. ^ 6 warnings generated.