Index: libcfa/src/exception.c
===================================================================
--- libcfa/src/exception.c	(revision fc1347d0307b24d6841b90f1cee2e3c16d759e52)
+++ libcfa/src/exception.c	(revision 8f9104301dac64ff5114b917d62f3da005252937)
@@ -48,5 +48,5 @@
 
 // Base Exception type id:
-struct __cfa__parent_vtable __cfatid_exception_t = {
+struct __cfavir_type_info __cfatid_exception_t = {
 	NULL,
 };
Index: libcfa/src/exception.h
===================================================================
--- libcfa/src/exception.h	(revision fc1347d0307b24d6841b90f1cee2e3c16d759e52)
+++ libcfa/src/exception.h	(revision 8f9104301dac64ff5114b917d62f3da005252937)
@@ -29,7 +29,7 @@
 struct __cfaehm_base_exception_t;
 typedef struct __cfaehm_base_exception_t exception_t;
-struct __cfa__parent_vtable;
+struct __cfavir_type_info;
 struct __cfaehm_base_exception_t_vtable {
-	const struct __cfa__parent_vtable * __cfavir_typeid;
+	const struct __cfavir_type_info * __cfavir_typeid;
 	size_t size;
 	void (*copy)(struct __cfaehm_base_exception_t *this,
@@ -41,5 +41,5 @@
 	struct __cfaehm_base_exception_t_vtable const * virtual_table;
 };
-extern struct __cfa__parent_vtable __cfatid_exception_t;
+extern struct __cfavir_type_info __cfatid_exception_t;
 
 
Index: libcfa/src/exception.hfa
===================================================================
--- libcfa/src/exception.hfa	(revision fc1347d0307b24d6841b90f1cee2e3c16d759e52)
+++ libcfa/src/exception.hfa	(revision 8f9104301dac64ff5114b917d62f3da005252937)
@@ -157,5 +157,5 @@
 #define _EHM_TYPE_ID_STRUCT(exception_name, forall_clause) \
 	forall_clause _EHM_TYPE_ID_TYPE(exception_name) { \
-		__cfa__parent_vtable const * parent; \
+		__cfavir_type_info const * parent; \
 	}
 
Index: libcfa/src/virtual.c
===================================================================
--- libcfa/src/virtual.c	(revision fc1347d0307b24d6841b90f1cee2e3c16d759e52)
+++ libcfa/src/virtual.c	(revision 8f9104301dac64ff5114b917d62f3da005252937)
@@ -10,6 +10,6 @@
 // Created On       : Tus Jul 11 15:10:00 2017
 // Last Modified By : Andrew Beach
-// Last Modified On : Wed Jul 26 14:24:00 2017
-// Update Count     : 1
+// Last Modified On : Mon May 17 11:01:00 2021
+// Update Count     : 2
 //
 
@@ -17,6 +17,7 @@
 #include "assert.h"
 
-int __cfa__is_parent( struct __cfa__parent_vtable const * parent,
-    	struct __cfa__parent_vtable const * child ) {
+int __cfavir_is_parent(
+		__cfavir_type_id parent,
+		__cfavir_type_id child ) {
 	assert( child );
 	do {
@@ -28,7 +29,8 @@
 }
 
-void * __cfa__virtual_cast( struct __cfa__parent_vtable const * parent,
-    	struct __cfa__parent_vtable const * const * child ) {
+void * __cfavir_virtual_cast(
+		__cfavir_type_id parent,
+		__cfavir_type_id const * child ) {
 	assert( child );
-	return (__cfa__is_parent(parent, *child)) ? (void *)child : (void *)0;
+	return (__cfavir_is_parent(parent, *child)) ? (void *)child : (void *)0;
 }
Index: libcfa/src/virtual.h
===================================================================
--- libcfa/src/virtual.h	(revision fc1347d0307b24d6841b90f1cee2e3c16d759e52)
+++ libcfa/src/virtual.h	(revision 8f9104301dac64ff5114b917d62f3da005252937)
@@ -10,6 +10,6 @@
 // Created On       : Tus Jul 11 15:08:00 2017
 // Last Modified By : Andrew Beach
-// Last Modified On : Wed Jul 26 14:18:00 2017
-// Update Count     : 1
+// Last Modified On : Mon May 17 11:03:00 2021
+// Update Count     : 2
 //
 
@@ -20,18 +20,24 @@
 #endif
 
-// All strict/explicate vtables should have this head, showing their parent.
-struct __cfa__parent_vtable {
-    struct __cfa__parent_vtable const * const parent;
+// Information on a type for the virtual system.
+// There should be exactly one instance per type and there should be a
+// pointer to it at the head of every virtual table.
+struct __cfavir_type_info {
+	// Type id of parent type, null if this is a root type.
+    struct __cfavir_type_info const * const parent;
 };
 
-// Takes in two non-null pointers to type_objects.
-int __cfa__is_parent( struct __cfa__parent_vtable const * parent,
-		struct __cfa__parent_vtable const * child );
+// A pointer to type information acts as the type id.
+typedef struct __cfavir_type_info const * __cfavir_type_id;
+
+// Takes in two non-null type ids.
+int __cfavir_is_parent(
+		__cfavir_type_id parent, __cfavir_type_id child );
 
 // If parent is a parent of child then return child, otherwise return NULL.
 // Input pointers are none-null, child's first level should be an object with
 // a vtable
-void * __cfa__virtual_cast( struct __cfa__parent_vtable const * parent,
-		struct __cfa__parent_vtable const * const * child );
+void * __cfavir_virtual_cast(
+		__cfavir_type_id parent, __cfavir_type_id const * child );
 
 #ifdef __cforall
Index: src/Virtual/ExpandCasts.cc
===================================================================
--- src/Virtual/ExpandCasts.cc	(revision fc1347d0307b24d6841b90f1cee2e3c16d759e52)
+++ src/Virtual/ExpandCasts.cc	(revision 8f9104301dac64ff5114b917d62f3da005252937)
@@ -105,5 +105,5 @@
 	void VirtualCastCore::premutate( FunctionDecl * functionDecl ) {
 		if ( (! vcast_decl) &&
-		     functionDecl->get_name() == "__cfa__virtual_cast" ) {
+		     functionDecl->get_name() == "__cfavir_virtual_cast" ) {
 			vcast_decl = functionDecl;
 		}
@@ -113,5 +113,5 @@
 		if ( pvt_decl || ! structDecl->has_body() ) {
 			return;
-		} else if ( structDecl->get_name() == "__cfa__parent_vtable" ) {
+		} else if ( structDecl->get_name() == "__cfavir_type_info" ) {
 			pvt_decl = structDecl;
 		}
Index: tests/exceptions/virtual-cast.cfa
===================================================================
--- tests/exceptions/virtual-cast.cfa	(revision fc1347d0307b24d6841b90f1cee2e3c16d759e52)
+++ tests/exceptions/virtual-cast.cfa	(revision 8f9104301dac64ff5114b917d62f3da005252937)
@@ -16,10 +16,10 @@
 // Hand defined alpha virtual type:
 struct __cfatid_struct_alpha {
-	__cfa__parent_vtable const * parent;
+	__cfavir_type_info parent;
 };
 
-__attribute__(( section(".gnu.linkonce.__cfatid_alpha") ))
+__attribute__(( cfa_linkonce ))
 struct __cfatid_struct_alpha __cfatid_alpha = {
-	(__cfa__parent_vtable *)0,
+	(__cfavir_type_info *)0,
 };
 
Index: tests/exceptions/virtual-poly.cfa
===================================================================
--- tests/exceptions/virtual-poly.cfa	(revision fc1347d0307b24d6841b90f1cee2e3c16d759e52)
+++ tests/exceptions/virtual-poly.cfa	(revision 8f9104301dac64ff5114b917d62f3da005252937)
@@ -10,10 +10,10 @@
 
 struct __cfatid_struct_mono_base {
-    __cfa__parent_vtable const * parent;
+    __cfavir_type_info const * parent;
 };
 
-__attribute__(( section(".gnu.linkonce.__cfatid_mono_base") ))
+__attribute__(( cfa_linkonce ))
 struct __cfatid_struct_mono_base __cfatid_mono_base = {
-    (__cfa__parent_vtable *)0,
+    (__cfavir_type_info *)0,
 };
 
@@ -58,5 +58,5 @@
 forall(U)
 struct __cfatid_struct_poly_base {
-    __cfa__parent_vtable const * parent;
+    __cfavir_type_info const * parent;
 };
 
@@ -87,5 +87,5 @@
 
 __cfatid_struct_poly_base(int) __cfatid_poly_base @= {
-	(__cfa__parent_vtable *)0,
+	(__cfavir_type_info *)0,
 };
 __cfatid_struct_poly_child(int) __cfatid_poly_child = {
