Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / tools / clang / blink_gc_plugin / tests / polymorphic_class_with_non_virtual_trace.h
index 3396c94..f5d999e 100644 (file)
@@ -41,6 +41,21 @@ private:
     Member<HeapObject> m_obj;
 };
 
+template<typename T>
+class TemplatedNonPolymorphicBase
+    : public GarbageCollected<TemplatedNonPolymorphicBase<T> > {
+public:
+    void trace(Visitor* visitor) { visitor->trace(m_obj); }
+private:
+    Member<HeapObject> m_obj;
+};
+
+// Looks OK, but will result in an incorrect object pointer when marking.
+class TemplatedIsNotLeftMostPolymorphic
+    : public TemplatedNonPolymorphicBase<TemplatedIsNotLeftMostPolymorphic>,
+      public PolymorphicBase {
+};
+
 }
 
 #endif