Index: uspace/lib/cpp/src/internal/runtime.cpp
===================================================================
--- uspace/lib/cpp/src/internal/runtime.cpp	(revision ad403590c480f2aa31da81859e9b0bbc756a86a0)
+++ uspace/lib/cpp/src/internal/runtime.cpp	(revision 9317f45fae2db3d59061cbdc6774dcae384a1ef9)
@@ -36,4 +36,5 @@
      * call of a pure virtual function cannot be made.
      */
+    // TODO: terminate in this
     extern "C" void __cxa_pure_call()
     { /* DUMMY BODY */ }
@@ -69,8 +70,24 @@
     { /* DUMMY BODY */ }
 
+    /**
+     * This structure represents part of the vtable segment
+     * that contains data related to dynamic_cast.
+     */
+    struct vtable
+    {
+        // Unimportant to us.
+
+        std::ptrdiff_t offset_to_top;
+        std::type_info* tinfo;
+
+        // Actual vtable.
+    };
     extern "C" void* __dynamic_cast(const void* sub, const __class_type_info* src,
                                     const __class_type_info* dst, std::ptrdiff_t offset)
     {
         // TODO: implement
+        // NOTE: as far as I understand it, we get vtable prefix from sub, get the type_info
+        //       ptr from that and then climb the inheritance hierarchy upwards till we either
+        //       fint dst or fail and return nullptr
         return nullptr;
     }
