[applied] writer: Annotate pointer representation

Message ID 875y9i96o1.fsf@redhat.com
State New
Headers
Series [applied] writer: Annotate pointer representation |

Commit Message

Dodji Seketeli April 26, 2023, 12:20 p.m. UTC
  Hello,

When starring at abixml I noticed that abixml --annotate would not
annotate pointer-type-def XML elements.  This patch fixes that and
makes the code of write_pointer_type_def easier to debug.

	* src/abg-writer.cc (write_pointer_type_def): Invoke annotate.
	Add a temporary for the output of write_context::get_id_for_type.
	It makes it easier to inspect in the debugger.
	* tests/data/test-annotate/libtest23.so.abi: Adjust.
	* tests/data/test-annotate/libtest24-drop-fns-2.so.abi: Adjust.
	* tests/data/test-annotate/libtest24-drop-fns.so.abi: Adjust.
	* tests/data/test-annotate/test1.abi: Adjust.
	* tests/data/test-annotate/test13-pr18894.so.abi: Adjust.
	* tests/data/test-annotate/test14-pr18893.so.abi: Adjust.
	* tests/data/test-annotate/test15-pr18892.so.abi: Adjust.
	* tests/data/test-annotate/test17-pr19027.so.abi: Adjust.
	* tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
	Adjust.
	* tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
	Adjust.
	* tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi:
	Adjust.
	* tests/data/test-annotate/test21-pr19092.so.abi: Adjust.
	* tests/data/test-annotate/test5.o.abi: Adjust.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
---
 src/abg-writer.cc                             | 16 ++--
 tests/data/test-annotate/libtest23.so.abi     |  1 +
 .../test-annotate/libtest24-drop-fns-2.so.abi |  2 +
 .../test-annotate/libtest24-drop-fns.so.abi   |  2 +
 tests/data/test-annotate/test1.abi            |  1 +
 .../data/test-annotate/test13-pr18894.so.abi  | 11 +++
 .../data/test-annotate/test14-pr18893.so.abi  | 33 ++++++++
 .../data/test-annotate/test15-pr18892.so.abi  | 84 +++++++++++++++++++
 .../data/test-annotate/test17-pr19027.so.abi  | 25 ++++++
 ...st18-pr19037-libvtkRenderingLIC-6.1.so.abi | 19 +++++
 ...19-pr19023-libtcmalloc_and_profiler.so.abi | 48 +++++++++++
 ...st20-pr19025-libvtkParallelCore-6.1.so.abi | 23 +++++
 .../data/test-annotate/test21-pr19092.so.abi  | 55 ++++++++++++
 tests/data/test-annotate/test5.o.abi          |  1 +
 14 files changed, 315 insertions(+), 6 deletions(-)
  

Patch

diff --git a/src/abg-writer.cc b/src/abg-writer.cc
index d6cd78d1..850c8759 100644
--- a/src/abg-writer.cc
+++ b/src/abg-writer.cc
@@ -2741,15 +2741,19 @@  write_pointer_type_def(const pointer_type_def_sptr&	decl,
 
   ostream& o = ctxt.get_ostream();
 
+  annotate(decl, ctxt, indent);
+
+  do_indent(o, indent);
+
+  string i;
+
+  o << "<pointer-type-def ";
 
   type_base_sptr pointed_to_type = decl->get_pointed_to_type();
 
-  annotate(decl->get_canonical_type(), ctxt, indent);
+  i = ctxt.get_id_for_type(pointed_to_type);
 
-  do_indent(o, indent);
-  o << "<pointer-type-def type-id='"
-    << ctxt.get_id_for_type(pointed_to_type)
-    << "'";
+  o << "type-id='" << i << "'";
 
   ctxt.record_type_as_referenced(pointed_to_type);
 
@@ -2759,7 +2763,7 @@  write_pointer_type_def(const pointer_type_def_sptr&	decl,
 			    : decl->get_translation_unit()->get_address_size()),
 			   0);
 
-  string i = id;
+  i = id;
   if (i.empty())
     i = ctxt.get_id_for_type(decl);
 
diff --git a/tests/data/test-annotate/libtest23.so.abi b/tests/data/test-annotate/libtest23.so.abi
index 2eb9eac2..d8745ff3 100644
--- a/tests/data/test-annotate/libtest23.so.abi
+++ b/tests/data/test-annotate/libtest23.so.abi
@@ -474,6 +474,7 @@ 
     <type-decl name='variadic parameter type' id='type-id-98'/>
     <!-- void -->
     <type-decl name='void' id='type-id-96'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-96' size-in-bits='64' id='type-id-16'/>
     <!-- void emit(std::string&) -->
     <function-decl name='emit' mangled-name='_Z4emitRSs' filepath='/home/dodji/git/libabigail/PR20369/tests/data/test-read-dwarf/test23-first-tu.cc' line='12' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z4emitRSs'>
diff --git a/tests/data/test-annotate/libtest24-drop-fns-2.so.abi b/tests/data/test-annotate/libtest24-drop-fns-2.so.abi
index bd43c4d8..b8ce810c 100644
--- a/tests/data/test-annotate/libtest24-drop-fns-2.so.abi
+++ b/tests/data/test-annotate/libtest24-drop-fns-2.so.abi
@@ -528,7 +528,9 @@ 
     <type-decl name='variadic parameter type' id='type-id-117'/>
     <!-- void -->
     <type-decl name='void' id='type-id-118'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-118' size-in-bits='64' id='type-id-119'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-118' size-in-bits='64' id='type-id-22'/>
     <!-- std::string foo(const std::string&) -->
     <function-decl name='foo' mangled-name='_Z3fooRKSs' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='14' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z3fooRKSs'>
diff --git a/tests/data/test-annotate/libtest24-drop-fns.so.abi b/tests/data/test-annotate/libtest24-drop-fns.so.abi
index bd43c4d8..b8ce810c 100644
--- a/tests/data/test-annotate/libtest24-drop-fns.so.abi
+++ b/tests/data/test-annotate/libtest24-drop-fns.so.abi
@@ -528,7 +528,9 @@ 
     <type-decl name='variadic parameter type' id='type-id-117'/>
     <!-- void -->
     <type-decl name='void' id='type-id-118'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-118' size-in-bits='64' id='type-id-119'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-118' size-in-bits='64' id='type-id-22'/>
     <!-- std::string foo(const std::string&) -->
     <function-decl name='foo' mangled-name='_Z3fooRKSs' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='14' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z3fooRKSs'>
diff --git a/tests/data/test-annotate/test1.abi b/tests/data/test-annotate/test1.abi
index 7eb74bd5..b8b8c468 100644
--- a/tests/data/test-annotate/test1.abi
+++ b/tests/data/test-annotate/test1.abi
@@ -184,6 +184,7 @@ 
     <pointer-type-def type-id='type-id-15' size-in-bits='64' id='type-id-12'/>
     <!-- void -->
     <type-decl name='void' id='type-id-13'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-15'/>
     <!-- void foo(s0&) -->
     <function-decl name='foo' mangled-name='_Z3fooR2s0' filepath='/home/dodji/git/libabigail/dwarf/tests/data/test-read-dwarf/test1.cc' line='42' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z3fooR2s0'>
diff --git a/tests/data/test-annotate/test13-pr18894.so.abi b/tests/data/test-annotate/test13-pr18894.so.abi
index 02690a9d..e43ea84d 100644
--- a/tests/data/test-annotate/test13-pr18894.so.abi
+++ b/tests/data/test-annotate/test13-pr18894.so.abi
@@ -609,7 +609,9 @@ 
     <pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-24'/>
     <!-- void -->
     <type-decl name='void' id='type-id-25'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-12'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-9'/>
     <!-- void dbus_address_entries_free(DBusAddressEntry**) -->
     <function-decl name='dbus_address_entries_free' mangled-name='dbus_address_entries_free' filepath='/tmp/legendre/spack-stage/spack-stage-hI99PR/dbus-1.9.0/dbus/dbus-address.c' line='189' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dbus_address_entries_free'>
@@ -1605,6 +1607,7 @@ 
     </class-decl>
     <!-- struct DBusWatchList -->
     <class-decl name='DBusWatchList' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-115'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-46'/>
     <!-- dbus_bool_t dbus_connection_has_messages_to_send(DBusConnection*) -->
     <function-decl name='dbus_connection_has_messages_to_send' mangled-name='dbus_connection_has_messages_to_send' filepath='/tmp/legendre/spack-stage/spack-stage-hI99PR/dbus-1.9.0/dbus/dbus-connection.c' line='588' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dbus_connection_has_messages_to_send'>
@@ -2397,6 +2400,7 @@ 
   <abi-instr address-size='64' path='dbus-memory.c' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-hI99PR/dbus-1.9.0/dbus' language='LANG_C89'>
     <!-- typedef unsigned long int size_t -->
     <typedef-decl name='size_t' type-id='type-id-31' filepath='/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include/stddef.h' line='211' column='1' id='type-id-149'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-150'/>
     <!-- void* dbus_malloc(size_t) -->
     <function-decl name='dbus_malloc' mangled-name='dbus_malloc' filepath='/tmp/legendre/spack-stage/spack-stage-hI99PR/dbus-1.9.0/dbus/dbus-memory.c' line='461' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dbus_malloc'>
@@ -2530,7 +2534,9 @@ 
     <qualified-type-def type-id='type-id-92' const='yes' id='type-id-157'/>
     <!-- const DBusMessage* -->
     <pointer-type-def type-id='type-id-157' size-in-bits='64' id='type-id-158'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-152'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-159'/>
     <!-- void dbus_message_set_serial(DBusMessage*, dbus_uint32_t) -->
     <function-decl name='dbus_message_set_serial' mangled-name='dbus_message_set_serial' filepath='/tmp/legendre/spack-stage/spack-stage-hI99PR/dbus-1.9.0/dbus/dbus-message.c' line='254' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dbus_message_set_serial'>
@@ -3243,6 +3249,7 @@ 
     <typedef-decl name='DBusPendingCallNotifyFunction' type-id='type-id-160' filepath='../dbus/dbus-connection.h' line='162' column='1' id='type-id-141'/>
     <!-- void (DBusPendingCall*, void*)* -->
     <pointer-type-def type-id='type-id-161' size-in-bits='64' id='type-id-160'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-162'/>
     <!-- DBusPendingCall* dbus_pending_call_ref(DBusPendingCall*) -->
     <function-decl name='dbus_pending_call_ref' mangled-name='dbus_pending_call_ref' filepath='/tmp/legendre/spack-stage/spack-stage-hI99PR/dbus-1.9.0/dbus/dbus-pending-call.c' line='577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dbus_pending_call_ref'>
@@ -3475,6 +3482,7 @@ 
     <class-decl name='DBusTimeoutList' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-184'/>
     <!-- struct DBusWatchList -->
     <class-decl name='DBusWatchList' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-185'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-171'/>
     <!-- DBusServer* dbus_server_listen(const char*, DBusError*) -->
     <function-decl name='dbus_server_listen' mangled-name='dbus_server_listen' filepath='/tmp/legendre/spack-stage/spack-stage-hI99PR/dbus-1.9.0/dbus/dbus-server.c' line='549' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dbus_server_listen'>
@@ -3670,6 +3678,7 @@ 
     <qualified-type-def type-id='type-id-186' const='yes' id='type-id-190'/>
     <!-- const DBusSignatureIter* -->
     <pointer-type-def type-id='type-id-190' size-in-bits='64' id='type-id-191'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-188'/>
     <!-- void dbus_signature_iter_init(DBusSignatureIter*, const char*) -->
     <function-decl name='dbus_signature_iter_init' mangled-name='dbus_signature_iter_init' filepath='/tmp/legendre/spack-stage/spack-stage-hI99PR/dbus-1.9.0/dbus/dbus-signature.c' line='67' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dbus_signature_iter_init'>
@@ -4078,6 +4087,7 @@ 
     <typedef-decl name='DBusTimeoutHandler' type-id='type-id-230' filepath='/tmp/legendre/spack-stage/spack-stage-hI99PR/dbus-1.9.0/dbus/dbus-timeout.h' line='41' column='1' id='type-id-142'/>
     <!-- typedef dbus_bool_t (void*)* -->
     <pointer-type-def type-id='type-id-231' size-in-bits='64' id='type-id-230'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-143'/>
     <!-- int dbus_timeout_get_interval(DBusTimeout*) -->
     <function-decl name='dbus_timeout_get_interval' mangled-name='dbus_timeout_get_interval' filepath='/tmp/legendre/spack-stage/spack-stage-hI99PR/dbus-1.9.0/dbus/dbus-timeout.c' line='416' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dbus_timeout_get_interval'>
@@ -4196,6 +4206,7 @@ 
     <typedef-decl name='DBusWatchHandler' type-id='type-id-232' filepath='/tmp/legendre/spack-stage/spack-stage-hI99PR/dbus-1.9.0/dbus/dbus-watch.h' line='43' column='1' id='type-id-144'/>
     <!-- typedef dbus_bool_t (DBusWatch*, unsigned int, void*)* -->
     <pointer-type-def type-id='type-id-233' size-in-bits='64' id='type-id-232'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-145'/>
     <!-- int dbus_watch_get_fd(DBusWatch*) -->
     <function-decl name='dbus_watch_get_fd' mangled-name='dbus_watch_get_fd' filepath='/tmp/legendre/spack-stage/spack-stage-hI99PR/dbus-1.9.0/dbus/dbus-watch.c' line='536' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='dbus_watch_get_fd'>
diff --git a/tests/data/test-annotate/test14-pr18893.so.abi b/tests/data/test-annotate/test14-pr18893.so.abi
index ff278045..d504e9d1 100644
--- a/tests/data/test-annotate/test14-pr18893.so.abi
+++ b/tests/data/test-annotate/test14-pr18893.so.abi
@@ -850,6 +850,7 @@ 
     </class-decl>
     <!-- struct CurveMap -->
     <class-decl name='CurveMap' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-31'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-17'/>
     <!-- void (const GLfloat*) -->
     <function-type size-in-bits='64' id='type-id-35'>
@@ -1901,6 +1902,7 @@ 
         </function-decl>
       </member-function>
     </class-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-61'/>
     <!-- GLUnurbs* gluNewNurbsRenderer() -->
     <function-decl name='gluNewNurbsRenderer' mangled-name='gluNewNurbsRenderer' filepath='libnurbs/interface/glinterface.cc' line='66' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gluNewNurbsRenderer'>
@@ -2741,6 +2743,7 @@ 
         </function-decl>
       </member-function>
     </class-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-85'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/interface/glsurfeval.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -4313,6 +4316,7 @@ 
     </class-decl>
     <!-- struct SurfaceMap -->
     <class-decl name='SurfaceMap' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-106'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-57'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/interface/incurveeval.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -6789,6 +6793,7 @@ 
         <var-decl name='mapdesc' type-id='type-id-138' visibility='default' filepath='libnurbs/internals/bezierarc.h' line='48' column='1'/>
       </data-member>
     </class-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-139'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/arcsorter.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -10219,6 +10224,7 @@ 
     <class-decl name='Quilt' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-183'/>
     <!-- struct Renderhints -->
     <class-decl name='Renderhints' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-184'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-206'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/arctess.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -10251,6 +10257,7 @@ 
     <pointer-type-def type-id='type-id-207' size-in-bits='64' id='type-id-138'/>
     <!-- struct Mapdesc -->
     <class-decl name='Mapdesc' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-207'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-118'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/backend.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -11906,6 +11913,7 @@ 
   <abi-instr address-size='64' path='libnurbs/internals/bin.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/bufpool.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-211'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/cachingeval.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -12870,7 +12878,9 @@ 
     <pointer-type-def type-id='type-id-220' size-in-bits='64' id='type-id-225'/>
     <!-- Uarray* -->
     <pointer-type-def type-id='type-id-222' size-in-bits='64' id='type-id-226'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-227'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-228'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/curve.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -13721,6 +13731,7 @@ 
         </function-decl>
       </member-function>
     </class-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-255'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/curvelist.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -14156,6 +14167,7 @@ 
     <class-decl name='Flist' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-258'/>
     <!-- struct Mapdesc -->
     <class-decl name='Mapdesc' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-259'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-260'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/curvesub.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -14236,6 +14248,7 @@ 
     <class-decl name='Curve' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-262'/>
     <!-- struct Mapdesc -->
     <class-decl name='Mapdesc' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-263'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-264'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/dataTransform.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -14396,6 +14409,7 @@ 
     <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-81'/>
     <!-- void (NurbsTessellator*, void*)* -->
     <pointer-type-def type-id='type-id-273' size-in-bits='64' id='type-id-272'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-269'/>
     <!-- void (NurbsTessellator*, void*) -->
     <function-type size-in-bits='64' id='type-id-273'>
@@ -14596,6 +14610,7 @@ 
     <pointer-type-def type-id='type-id-221' size-in-bits='64' id='type-id-276'/>
     <!-- Hull* -->
     <pointer-type-def type-id='type-id-274' size-in-bits='64' id='type-id-277'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-278'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/intersect.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -14603,6 +14618,7 @@ 
     <class-decl name='Quilt' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-279'/>
     <!-- struct Renderhints -->
     <class-decl name='Renderhints' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-280'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-281'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/knotvector.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -15497,6 +15513,7 @@ 
         </function-decl>
       </member-function>
     </class-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-284'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/mapdescv.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -15628,6 +15645,7 @@ 
     <pointer-type-def type-id='type-id-138' size-in-bits='64' id='type-id-285'/>
     <!-- Maplist* -->
     <pointer-type-def type-id='type-id-66' size-in-bits='64' id='type-id-286'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-119'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/mesher.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -15897,7 +15915,9 @@ 
     <pointer-type-def type-id='type-id-189' size-in-bits='64' id='type-id-290'/>
     <!-- const float -->
     <qualified-type-def type-id='type-id-27' const='yes' id='type-id-288'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-291'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-292'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/monoTriangulationBackend.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -16858,6 +16878,7 @@ 
     <class-decl name='Quilt' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-307'/>
     <!-- struct Renderhints -->
     <class-decl name='Renderhints' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-308'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-309'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/nurbsinterfac.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -17786,9 +17807,11 @@ 
     <pointer-type-def type-id='type-id-78' size-in-bits='64' id='type-id-72'/>
     <!-- Property* -->
     <pointer-type-def type-id='type-id-321' size-in-bits='64' id='type-id-322'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-84'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/nurbstess.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-323'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/patch.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -18360,9 +18383,11 @@ 
     </class-decl>
     <!-- Flist* -->
     <pointer-type-def type-id='type-id-336' size-in-bits='64' id='type-id-337'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-338'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/reader.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-339'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/renderhints.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -19851,7 +19876,9 @@ 
     <pointer-type-def type-id='type-id-346' size-in-bits='64' id='type-id-348'/>
     <!-- rectBlockArray* -->
     <pointer-type-def type-id='type-id-347' size-in-bits='64' id='type-id-192'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-349'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-350'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/sorter.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -19951,6 +19978,7 @@ 
         </function-decl>
       </member-function>
     </class-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-195'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/splitarcs.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -19958,9 +19986,11 @@ 
     <class-decl name='Quilt' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-351'/>
     <!-- struct Renderhints -->
     <class-decl name='Renderhints' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-352'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-353'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/subdivider.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-354'/>
   </abi-instr>
   <abi-instr address-size='64' path='libnurbs/internals/tobezier.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-T0fsxk/Mesa-8.0.5/src/glu/sgi' language='LANG_C_plus_plus'>
@@ -22800,6 +22830,7 @@ 
     <pointer-type-def type-id='type-id-458' size-in-bits='64' id='type-id-421'/>
     <!-- void** -->
     <pointer-type-def type-id='type-id-398' size-in-bits='64' id='type-id-191'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-398'/>
     <!-- typedef void* DictListKey -->
     <typedef-decl name='DictListKey' type-id='type-id-398' filepath='libtess/dict.h' line='60' column='1' id='type-id-403'/>
@@ -23045,7 +23076,9 @@ 
     <typedef-decl name='GLsizei' type-id='type-id-10' filepath='../../../include/GL/gl.h' line='159' column='1' id='type-id-465'/>
     <!-- void -->
     <type-decl name='void' id='type-id-19'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-466'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-467'/>
     <!-- GLint gluScaleImage(GLenum, GLsizei, GLsizei, GLenum, void*, GLsizei, GLsizei, GLenum, void*) -->
     <function-decl name='gluScaleImage' mangled-name='gluScaleImage' filepath='libutil/mipmap.c' line='3498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gluScaleImage'>
diff --git a/tests/data/test-annotate/test15-pr18892.so.abi b/tests/data/test-annotate/test15-pr18892.so.abi
index 2f561b92..17b85867 100644
--- a/tests/data/test-annotate/test15-pr18892.so.abi
+++ b/tests/data/test-annotate/test15-pr18892.so.abi
@@ -3036,6 +3036,7 @@ 
     <elf-symbol name='__asan_cplus_demangle_operators' size='1488' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
   </elf-variable-symbols>
   <abi-instr address-size='64' path='../../.././libsanitizer/interception/interception_linux.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/interception' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-2'/>
     <!-- namespace __interception -->
     <namespace-decl name='__interception'>
@@ -3155,7 +3156,9 @@ 
         <var-decl name='size' type-id='type-id-13' visibility='default' filepath='../../.././libsanitizer/libbacktrace/../../libbacktrace/mmap.c' line='60' column='1'/>
       </data-member>
     </class-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-8'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-26'/>
     <!-- int __asan_backtrace_dwarf_add(backtrace_state*, uintptr_t, const unsigned char*, size_t, const unsigned char*, size_t, const unsigned char*, size_t, const unsigned char*, size_t, const unsigned char*, size_t, int, backtrace_error_callback, void*, fileline*) -->
     <function-decl name='__asan_backtrace_dwarf_add' mangled-name='__asan_backtrace_dwarf_add' filepath='../../.././libsanitizer/libbacktrace/../../libbacktrace/dwarf.c' line='2958' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__asan_backtrace_dwarf_add'>
@@ -3401,7 +3404,9 @@ 
     </function-type>
   </abi-instr>
   <abi-instr address-size='64' path='../../.././libsanitizer/libbacktrace/../../libbacktrace/elf.c' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/libbacktrace' language='LANG_C89'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-37'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-38'/>
     <!-- int __asan_backtrace_initialize(backtrace_state*, int, backtrace_error_callback, void*, fileline*) -->
     <function-decl name='__asan_backtrace_initialize' mangled-name='__asan_backtrace_initialize' filepath='../../.././libsanitizer/libbacktrace/../../libbacktrace/elf.c' line='921' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__asan_backtrace_initialize'>
@@ -3464,6 +3469,7 @@ 
     </function-type>
   </abi-instr>
   <abi-instr address-size='64' path='../../.././libsanitizer/libbacktrace/../../libbacktrace/fileline.c' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/libbacktrace' language='LANG_C89'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-43'/>
     <!-- int __asan_backtrace_pcinfo(backtrace_state*, uintptr_t, backtrace_full_callback, backtrace_error_callback, void*) -->
     <function-decl name='__asan_backtrace_pcinfo' mangled-name='__asan_backtrace_pcinfo' filepath='../../.././libsanitizer/libbacktrace/../../libbacktrace/fileline.c' line='166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__asan_backtrace_pcinfo'>
@@ -3508,7 +3514,9 @@ 
         <var-decl name='size' type-id='type-id-13' visibility='default' filepath='../../.././libsanitizer/libbacktrace/../../libbacktrace/mmap.c' line='60' column='1'/>
       </data-member>
     </class-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-44'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-45'/>
     <!-- void* __asan_backtrace_vector_finish(backtrace_state*, backtrace_vector*, backtrace_error_callback, void*) -->
     <function-decl name='__asan_backtrace_vector_finish' mangled-name='__asan_backtrace_vector_finish' filepath='../../.././libsanitizer/libbacktrace/../../libbacktrace/mmap.c' line='258' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__asan_backtrace_vector_finish'>
@@ -3593,7 +3601,9 @@ 
     <typedef-decl name='off_t' type-id='type-id-46' filepath='/usr/include/sys/types.h' line='87' column='1' id='type-id-51'/>
     <!-- backtrace_view* -->
     <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-52'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-49'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-48'/>
     <!-- int __asan_backtrace_get_view(backtrace_state*, int, off_t, size_t, backtrace_error_callback, void*, backtrace_view*) -->
     <function-decl name='__asan_backtrace_get_view' mangled-name='__asan_backtrace_get_view' filepath='../../.././libsanitizer/libbacktrace/../../libbacktrace/mmapio.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__asan_backtrace_get_view'>
@@ -3629,6 +3639,7 @@ 
     </function-decl>
   </abi-instr>
   <abi-instr address-size='64' path='../../.././libsanitizer/libbacktrace/../../libbacktrace/posix.c' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/libbacktrace' language='LANG_C89'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-53'/>
     <!-- int fcntl(int, int, ...) -->
     <function-decl name='fcntl' filepath='/usr/include/fcntl.h' line='122' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -3659,10 +3670,13 @@ 
     </function-decl>
   </abi-instr>
   <abi-instr address-size='64' path='../../.././libsanitizer/libbacktrace/../../libbacktrace/sort.c' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/libbacktrace' language='LANG_C89'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-54'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-55'/>
   </abi-instr>
   <abi-instr address-size='64' path='../../.././libsanitizer/libbacktrace/../../libbacktrace/state.c' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/libbacktrace' language='LANG_C89'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-56'/>
     <!-- backtrace_state* __asan_backtrace_create_state(const char*, int, backtrace_error_callback, void*) -->
     <function-decl name='__asan_backtrace_create_state' mangled-name='__asan_backtrace_create_state' filepath='../../.././libsanitizer/libbacktrace/../../libbacktrace/state.c' line='46' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__asan_backtrace_create_state'>
@@ -4116,7 +4130,9 @@ 
     <pointer-type-def type-id='type-id-76' size-in-bits='64' id='type-id-74'/>
     <!-- demangle_component** -->
     <pointer-type-def type-id='type-id-74' size-in-bits='64' id='type-id-75'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-96'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-97'/>
     <!-- int __asan_cplus_demangle_fill_name(demangle_component*, const char*, int) -->
     <function-decl name='__asan_cplus_demangle_fill_name' mangled-name='__asan_cplus_demangle_fill_name' filepath='../../.././libsanitizer/libbacktrace/../../libiberty/cp-demangle.c' line='783' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__asan_cplus_demangle_fill_name'>
@@ -4343,7 +4359,9 @@ 
     </function-type>
   </abi-instr>
   <abi-instr address-size='64' path='../../.././libsanitizer/libbacktrace/bridge.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/libbacktrace' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-101'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-102'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -4360,7 +4378,9 @@ 
     <pointer-type-def type-id='type-id-107' size-in-bits='64' id='type-id-108'/>
     <!-- void (typedef __sanitizer::uptr, typedef __sanitizer::uptr)* -->
     <pointer-type-def type-id='type-id-109' size-in-bits='64' id='type-id-110'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-111'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-112'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -4645,7 +4665,9 @@ 
     <reference-type-def kind='lvalue' type-id='type-id-155' size-in-bits='64' id='type-id-156'/>
     <!-- unsigned long int** -->
     <pointer-type-def type-id='type-id-157' size-in-bits='64' id='type-id-158'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-159'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-160'/>
     <!-- void __sanitizer_set_report_path(const char*) -->
     <function-decl name='__sanitizer_set_report_path' mangled-name='__sanitizer_set_report_path' filepath='../../.././libsanitizer/sanitizer_common/sanitizer_common.cc' line='250' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__sanitizer_set_report_path'>
@@ -5412,7 +5434,9 @@ 
     <pointer-type-def type-id='type-id-155' size-in-bits='64' id='type-id-198'/>
     <!-- unsigned int& -->
     <reference-type-def kind='lvalue' type-id='type-id-194' size-in-bits='64' id='type-id-199'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-200'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-201'/>
     <!-- void __sanitizer_cov(void*) -->
     <function-decl name='__sanitizer_cov' mangled-name='__sanitizer_cov' filepath='../../.././libsanitizer/sanitizer_common/sanitizer_coverage.cc' line='107' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__sanitizer_cov'>
@@ -5671,7 +5695,9 @@ 
     </namespace-decl>
   </abi-instr>
   <abi-instr address-size='64' path='../../.././libsanitizer/sanitizer_common/sanitizer_flags.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/sanitizer_common' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-203'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-204'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -5680,7 +5706,9 @@ 
     </namespace-decl>
   </abi-instr>
   <abi-instr address-size='64' path='../../.././libsanitizer/sanitizer_common/sanitizer_libc.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/sanitizer_common' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-207'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-208'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -6200,7 +6228,9 @@ 
     <pointer-type-def type-id='type-id-256' size-in-bits='64' id='type-id-257'/>
     <!-- void (void*, typedef __sanitizer::uptr)* -->
     <pointer-type-def type-id='type-id-258' size-in-bits='64' id='type-id-259'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-239'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-260'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -6832,7 +6862,9 @@ 
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-99'/>
     <!-- struct _Unwind_Context -->
     <class-decl name='_Unwind_Context' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-283'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-290'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-291'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -8043,7 +8075,9 @@ 
     </namespace-decl>
   </abi-instr>
   <abi-instr address-size='64' path='../../.././libsanitizer/sanitizer_common/sanitizer_posix.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/sanitizer_common' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-295'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-296'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -8092,6 +8126,7 @@ 
     <qualified-type-def type-id='type-id-300' const='yes' id='type-id-301'/>
     <!-- const rlimit* -->
     <pointer-type-def type-id='type-id-301' size-in-bits='64' id='type-id-302'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-303'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -8172,6 +8207,7 @@ 
   <abi-instr address-size='64' path='../../.././libsanitizer/sanitizer_common/sanitizer_printf.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/sanitizer_common' language='LANG_C_plus_plus'>
     <!-- void (const char*)* -->
     <pointer-type-def type-id='type-id-306' size-in-bits='64' id='type-id-307'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-308'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -8229,7 +8265,9 @@ 
     <reference-type-def kind='lvalue' type-id='type-id-329' size-in-bits='64' id='type-id-330'/>
     <!-- const __sanitizer::StackDepotReverseMap::IdDescPair* -->
     <pointer-type-def type-id='type-id-329' size-in-bits='64' id='type-id-331'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-332'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-333'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -8621,6 +8659,7 @@ 
     </function-type>
   </abi-instr>
   <abi-instr address-size='64' path='../../.././libsanitizer/sanitizer_common/sanitizer_stacktrace.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/sanitizer_common' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-335'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -8662,7 +8701,9 @@ 
     <qualified-type-def type-id='type-id-340' const='yes' id='type-id-348'/>
     <!-- const __sanitizer::ScopedStackSpaceWithGuard* -->
     <pointer-type-def type-id='type-id-348' size-in-bits='64' id='type-id-349'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-350'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-351'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -8894,7 +8935,9 @@ 
     </namespace-decl>
   </abi-instr>
   <abi-instr address-size='64' path='../../.././libsanitizer/sanitizer_common/sanitizer_suppressions.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/sanitizer_common' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-357'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-358'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -9008,7 +9051,9 @@ 
     <pointer-type-def type-id='type-id-35' size-in-bits='64' id='type-id-359'/>
     <!-- void (void*, typedef uintptr_t, const char*, typedef uintptr_t, typedef uintptr_t)* -->
     <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-361'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-363'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-364'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -9111,7 +9156,9 @@ 
         <return type-id='type-id-30'/>
       </function-decl>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-379'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-380'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -9886,6 +9933,7 @@ 
     </function-type>
   </abi-instr>
   <abi-instr address-size='64' path='../../.././libsanitizer/sanitizer_common/sanitizer_thread_registry.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/sanitizer_common' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-382'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -9943,7 +9991,9 @@ 
     <pointer-type-def type-id='type-id-135' size-in-bits='64' id='type-id-404'/>
     <!-- void -->
     <type-decl name='void' id='type-id-1'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-405'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-406'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -10536,6 +10586,7 @@ 
     </namespace-decl>
   </abi-instr>
   <abi-instr address-size='64' path='../../.././libsanitizer/tsan/tsan_fd.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/tsan' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-407'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -10673,6 +10724,7 @@ 
     <pointer-type-def type-id='type-id-132' size-in-bits='64' id='type-id-411'/>
     <!-- const char** -->
     <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-412'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-413'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -12373,14 +12425,18 @@ 
     <qualified-type-def type-id='type-id-268' volatile='yes' id='type-id-1281'/>
     <!-- wchar_t* -->
     <pointer-type-def type-id='type-id-983' size-in-bits='64' id='type-id-1282'/>
+    <!-- const kernel_sigset_t* -->
     <pointer-type-def type-id='type-id-1105' size-in-bits='64' id='type-id-1283'/>
+    <!-- kernel_sigset_t* -->
     <pointer-type-def type-id='type-id-654' size-in-bits='64' id='type-id-1284'/>
     <!-- namespace std -->
     <namespace-decl name='std'>
       <!-- struct std::nothrow_t -->
       <class-decl name='nothrow_t' size-in-bits='8' is-struct='yes' visibility='default' filepath='../../.././libsanitizer/tsan/tsan_interceptors.cc' line='108' column='1' id='type-id-1106'/>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-430'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1285'/>
     <!-- namespace __interception -->
     <namespace-decl name='__interception'>
@@ -27292,6 +27348,7 @@ 
     <pointer-type-def type-id='type-id-1304' size-in-bits='64' id='type-id-1313'/>
     <!-- uu64* -->
     <pointer-type-def type-id='type-id-1305' size-in-bits='64' id='type-id-1314'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1315'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -27440,7 +27497,9 @@ 
     <reference-type-def kind='lvalue' type-id='type-id-1328' size-in-bits='64' id='type-id-1329'/>
     <!-- const __tsan::Vector<__tsan::ExpectRace>* -->
     <pointer-type-def type-id='type-id-1328' size-in-bits='64' id='type-id-1330'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1331'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1332'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -28599,8 +28658,11 @@ 
     <pointer-type-def type-id='type-id-1536' size-in-bits='64' id='type-id-1551'/>
     <!-- volatile void -->
     <qualified-type-def type-id='type-id-1' volatile='yes' id='type-id-1539'/>
+    <!-- const volatile void* -->
     <pointer-type-def type-id='type-id-1540' size-in-bits='64' id='type-id-1357'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1381'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1552'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -35351,6 +35413,7 @@ 
     <pointer-type-def type-id='type-id-1569' size-in-bits='64' id='type-id-1570'/>
     <!-- __tsan::ScopedJavaFunc* -->
     <pointer-type-def type-id='type-id-1571' size-in-bits='64' id='type-id-1572'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1573'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -35582,7 +35645,9 @@ 
     <pointer-type-def type-id='type-id-1575' size-in-bits='64' id='type-id-1576'/>
     <!-- unsigned char* -->
     <pointer-type-def type-id='type-id-20' size-in-bits='64' id='type-id-1577'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1578'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1579'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -35698,7 +35763,9 @@ 
     <qualified-type-def type-id='type-id-1611' const='yes' id='type-id-1612'/>
     <!-- const __tsan::MapUnmapCallback* -->
     <pointer-type-def type-id='type-id-1612' size-in-bits='64' id='type-id-1613'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-217'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1554'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -36956,6 +37023,7 @@ 
     </namespace-decl>
   </abi-instr>
   <abi-instr address-size='64' path='../../.././libsanitizer/tsan/tsan_mutexset.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/tsan' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1624'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -37058,6 +37126,7 @@ 
     <pointer-type-def type-id='type-id-1645' size-in-bits='64' id='type-id-356'/>
     <!-- void (typedef __sanitizer::uptr, typedef __sanitizer::uptr, bool, __sanitizer::uptr*, typedef __sanitizer::uptr)* -->
     <pointer-type-def type-id='type-id-1646' size-in-bits='64' id='type-id-272'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1647'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -37604,6 +37673,7 @@ 
     <pointer-type-def type-id='type-id-1723' size-in-bits='64' id='type-id-1725'/>
     <!-- variadic parameter type -->
     <type-decl name='variadic parameter type' id='type-id-1726'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1727'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -39165,7 +39235,9 @@ 
     <qualified-type-def type-id='type-id-1558' volatile='yes' id='type-id-1745'/>
     <!-- volatile __sanitizer::atomic_uint8_t* -->
     <pointer-type-def type-id='type-id-1745' size-in-bits='64' id='type-id-130'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1747'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1748'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -40494,6 +40566,7 @@ 
     </namespace-decl>
   </abi-instr>
   <abi-instr address-size='64' path='../../.././libsanitizer/tsan/tsan_rtl_mutex.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/tsan' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1751'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -40627,7 +40700,9 @@ 
     <reference-type-def kind='lvalue' type-id='type-id-1760' size-in-bits='64' id='type-id-1761'/>
     <!-- unsigned long int& -->
     <reference-type-def kind='lvalue' type-id='type-id-3' size-in-bits='64' id='type-id-181'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1614'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1617'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -40993,7 +41068,9 @@ 
     <reference-type-def kind='lvalue' type-id='type-id-1797' size-in-bits='64' id='type-id-1798'/>
     <!-- const __tsan::Vector<__tsan::ThreadLeak>* -->
     <pointer-type-def type-id='type-id-1797' size-in-bits='64' id='type-id-1799'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1298'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1800'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -42877,6 +42954,7 @@ 
     <reference-type-def kind='lvalue' type-id='type-id-1803' size-in-bits='64' id='type-id-222'/>
     <!-- const __sanitizer::InternalMmapVector<__sanitizer::Suppression*>* -->
     <pointer-type-def type-id='type-id-1803' size-in-bits='64' id='type-id-223'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1804'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -43043,7 +43121,9 @@ 
     <reference-type-def kind='lvalue' type-id='type-id-1811' size-in-bits='64' id='type-id-1812'/>
     <!-- int* -->
     <pointer-type-def type-id='type-id-7' size-in-bits='64' id='type-id-39'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1813'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1814'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -43426,7 +43506,9 @@ 
     <pointer-type-def type-id='type-id-1819' size-in-bits='64' id='type-id-42'/>
     <!-- int (dl_phdr_info*, typedef size_t, void*)* -->
     <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-40'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1822'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1827'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
@@ -43474,7 +43556,9 @@ 
     <qualified-type-def type-id='type-id-1832' const='yes' id='type-id-1838'/>
     <!-- const __tsan::MBlock* -->
     <pointer-type-def type-id='type-id-1838' size-in-bits='64' id='type-id-1839'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1840'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-1553'/>
     <!-- namespace __sanitizer -->
     <namespace-decl name='__sanitizer'>
diff --git a/tests/data/test-annotate/test17-pr19027.so.abi b/tests/data/test-annotate/test17-pr19027.so.abi
index b7bb3774..b028ce86 100644
--- a/tests/data/test-annotate/test17-pr19027.so.abi
+++ b/tests/data/test-annotate/test17-pr19027.so.abi
@@ -1089,6 +1089,7 @@ 
     <pointer-type-def type-id='type-id-62' size-in-bits='64' id='type-id-45'/>
     <!-- void -->
     <type-decl name='void' id='type-id-25'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-19'/>
     <!-- hb_blob_t* hb_blob_create(const char*, unsigned int, hb_memory_mode_t, void*, hb_destroy_func_t) -->
     <function-decl name='hb_blob_create' mangled-name='hb_blob_create' filepath='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src/hb-blob.cc' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hb_blob_create'>
@@ -3030,6 +3031,7 @@ 
         <var-decl name='s' type-id='type-id-168' visibility='default' filepath='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src/hb-common.cc' line='168' column='1'/>
       </data-member>
     </class-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-107'/>
     <!-- const char** hb_buffer_serialize_list_formats() -->
     <function-decl name='hb_buffer_serialize_list_formats' mangled-name='hb_buffer_serialize_list_formats' filepath='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src/hb-buffer-serialize.cc' line='46' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hb_buffer_serialize_list_formats'>
@@ -3325,6 +3327,7 @@ 
     <pointer-type-def type-id='type-id-179' size-in-bits='64' id='type-id-172'/>
     <!-- hb_segment_properties_t* -->
     <pointer-type-def type-id='type-id-86' size-in-bits='64' id='type-id-180'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-181'/>
     <!-- hb_bool_t hb_segment_properties_equal(const hb_segment_properties_t*, const hb_segment_properties_t*) -->
     <function-decl name='hb_segment_properties_equal' mangled-name='hb_segment_properties_equal' filepath='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src/hb-buffer.cc' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hb_segment_properties_equal'>
@@ -3754,6 +3757,7 @@ 
     <reference-type-def kind='lvalue' type-id='type-id-184' size-in-bits='64' id='type-id-187'/>
     <!-- hb_language_item_t* -->
     <pointer-type-def type-id='type-id-184' size-in-bits='64' id='type-id-185'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-40'/>
     <!-- hb_tag_t hb_tag_from_string(const char*, int) -->
     <function-decl name='hb_tag_from_string' mangled-name='hb_tag_from_string' filepath='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src/hb-common.cc' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hb_tag_from_string'>
@@ -5109,7 +5113,9 @@ 
     <pointer-type-def type-id='type-id-378' size-in-bits='64' id='type-id-229'/>
     <!-- variadic parameter type -->
     <type-decl name='variadic parameter type' id='type-id-379'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-196'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-164'/>
     <!-- hb_face_t* hb_face_create_for_tables(hb_reference_table_func_t, void*, hb_destroy_func_t) -->
     <function-decl name='hb_face_create_for_tables' mangled-name='hb_face_create_for_tables' filepath='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src/hb-face.cc' line='83' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hb_face_create_for_tables'>
@@ -9067,11 +9073,13 @@ 
     </function-type>
   </abi-instr>
   <abi-instr address-size='64' path='hb-fallback-shape.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-587'/>
   </abi-instr>
   <abi-instr address-size='64' path='hb-font.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src' language='LANG_C_plus_plus'>
     <!-- int* -->
     <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-588'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-589'/>
     <!-- hb_font_funcs_t* hb_font_funcs_create() -->
     <function-decl name='hb_font_funcs_create' mangled-name='hb_font_funcs_create' filepath='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src/hb-font.cc' line='242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hb_font_funcs_create'>
@@ -10418,6 +10426,7 @@ 
     <class-decl name='FT_Slot_InternalRec_' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-677'/>
     <!-- struct FT_SubGlyphRec_ -->
     <class-decl name='FT_SubGlyphRec_' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-678'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-596'/>
     <!-- hb_face_t* hb_ft_face_create(FT_Face, hb_destroy_func_t) -->
     <function-decl name='hb_ft_face_create' mangled-name='hb_ft_face_create' filepath='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src/hb-ft.cc' line='333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hb_ft_face_create'>
@@ -10642,6 +10651,7 @@ 
       <enumerator name='G_UNICODE_SCRIPT_TIRHUTA' value='124'/>
       <enumerator name='G_UNICODE_SCRIPT_WARANG_CITI' value='125'/>
     </enum-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-685'/>
     <!-- hb_script_t hb_glib_script_to_script(GUnicodeScript) -->
     <function-decl name='hb_glib_script_to_script' mangled-name='hb_glib_script_to_script' filepath='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src/hb-glib.cc' line='161' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hb_glib_script_to_script'>
@@ -11085,7 +11095,9 @@ 
     <pointer-type-def type-id='type-id-704' size-in-bits='64' id='type-id-707'/>
     <!-- hb_ot_face_metrics_accelerator_t* -->
     <pointer-type-def type-id='type-id-708' size-in-bits='64' id='type-id-711'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-197'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-547'/>
     <!-- namespace OT -->
     <namespace-decl name='OT'>
@@ -15903,7 +15915,9 @@ 
         </function-decl>
       </member-function>
     </class-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-198'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-548'/>
     <!-- namespace OT -->
     <namespace-decl name='OT'>
@@ -30329,7 +30343,9 @@ 
     <pointer-type-def type-id='type-id-1956' size-in-bits='64' id='type-id-1917'/>
     <!-- const unsigned int* -->
     <pointer-type-def type-id='type-id-90' size-in-bits='64' id='type-id-1914'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-549'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-199'/>
     <!-- namespace OT -->
     <namespace-decl name='OT'>
@@ -30576,6 +30592,7 @@ 
   <abi-instr address-size='64' path='hb-ot-shape-complex-hangul.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src' language='LANG_C_plus_plus'>
   </abi-instr>
   <abi-instr address-size='64' path='hb-ot-shape-complex-hebrew.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-2008'/>
   </abi-instr>
   <abi-instr address-size='64' path='hb-ot-shape-complex-indic-table.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src' language='LANG_C_plus_plus'>
@@ -30766,6 +30783,7 @@ 
     <pointer-type-def type-id='type-id-2025' size-in-bits='64' id='type-id-2021'/>
     <!-- would_substitute_feature_t* -->
     <pointer-type-def type-id='type-id-2019' size-in-bits='64' id='type-id-2022'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-2026'/>
   </abi-instr>
   <abi-instr address-size='64' path='hb-ot-shape-complex-myanmar.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src' language='LANG_C_plus_plus'>
@@ -30777,6 +30795,7 @@ 
   <abi-instr address-size='64' path='hb-ot-shape-complex-tibetan.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src' language='LANG_C_plus_plus'>
   </abi-instr>
   <abi-instr address-size='64' path='hb-ot-shape-fallback.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-585'/>
     <!-- namespace OT -->
     <namespace-decl name='OT'>
@@ -30800,6 +30819,7 @@ 
     </namespace-decl>
   </abi-instr>
   <abi-instr address-size='64' path='hb-ot-shape-normalize.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-2035'/>
   </abi-instr>
   <abi-instr address-size='64' path='hb-ot-shape.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src' language='LANG_C_plus_plus'>
@@ -31100,7 +31120,9 @@ 
     <pointer-type-def type-id='type-id-2060' size-in-bits='64' id='type-id-2040'/>
     <!-- void* (const hb_ot_shape_plan_t*)* -->
     <pointer-type-def type-id='type-id-2061' size-in-bits='64' id='type-id-2041'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-2062'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-1832'/>
     <!-- void hb_ot_shape_plan_collect_lookups(hb_shape_plan_t*, hb_tag_t, hb_set_t*) -->
     <function-decl name='hb_ot_shape_plan_collect_lookups' mangled-name='hb_ot_shape_plan_collect_lookups' filepath='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src/hb-ot-shape.cc' line='740' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hb_ot_shape_plan_collect_lookups'>
@@ -31548,6 +31570,7 @@ 
     <pointer-type-def type-id='type-id-1913' size-in-bits='64' id='type-id-980'/>
     <!-- hb_set_t::elt_t& -->
     <reference-type-def kind='lvalue' type-id='type-id-2063' size-in-bits='64' id='type-id-2069'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-2072'/>
     <!-- hb_set_t* hb_set_create() -->
     <function-decl name='hb_set_create' mangled-name='hb_set_create' filepath='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src/hb-set.cc' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hb_set_create'>
@@ -31771,6 +31794,7 @@ 
     </function-decl>
   </abi-instr>
   <abi-instr address-size='64' path='hb-shape-plan.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-2073'/>
     <!-- hb_shape_plan_t* hb_shape_plan_create(hb_face_t*, const hb_segment_properties_t*, const hb_feature_t*, unsigned int, const char* const*) -->
     <function-decl name='hb_shape_plan_create' mangled-name='hb_shape_plan_create' filepath='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src/hb-shape-plan.cc' line='112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hb_shape_plan_create'>
@@ -31930,6 +31954,7 @@ 
     </function-decl>
   </abi-instr>
   <abi-instr address-size='64' path='hb-unicode.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-25' size-in-bits='64' id='type-id-2076'/>
     <!-- hb_unicode_funcs_t* hb_unicode_funcs_get_default() -->
     <function-decl name='hb_unicode_funcs_get_default' mangled-name='hb_unicode_funcs_get_default' filepath='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src/hb-unicode.cc' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='hb_unicode_funcs_get_default'>
diff --git a/tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi b/tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi
index b93b6c8c..d0bb7764 100644
--- a/tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi
+++ b/tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi
@@ -7505,6 +7505,7 @@ 
     <pointer-type-def type-id='type-id-97' size-in-bits='64' id='type-id-229'/>
     <!-- wchar_t** -->
     <pointer-type-def type-id='type-id-229' size-in-bits='64' id='type-id-230'/>
+    <!-- _IO_lock_t* -->
     <pointer-type-def type-id='type-id-83' size-in-bits='64' id='type-id-73'/>
     <!-- class vtkAlgorithm -->
     <class-decl name='vtkAlgorithm' visibility='default' is-declaration-only='yes' id='type-id-192'>
@@ -10290,7 +10291,9 @@ 
     <type-decl name='variadic parameter type' id='type-id-254'/>
     <!-- void -->
     <type-decl name='void' id='type-id-18'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-255'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-48'/>
     <!-- int getchar() -->
     <function-decl name='getchar' filepath='/usr/include/bits/stdio.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -12418,7 +12421,9 @@ 
         <return type-id='type-id-178'/>
       </function-decl>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-279'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-278'/>
     <!-- std::basic_ostream<char, std::char_traits<char> >& (std::basic_ostream<char, std::char_traits<char> >&) -->
     <function-type size-in-bits='64' id='type-id-266'>
@@ -16783,7 +16788,9 @@ 
     </namespace-decl>
     <!-- struct vtkRenderWindow -->
     <class-decl name='vtkRenderWindow' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-434'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-386'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-399'/>
     <!-- namespace vtkLineIntegralConvolution2DUtil -->
     <namespace-decl name='vtkLineIntegralConvolution2DUtil'>
@@ -17160,7 +17167,9 @@ 
       <!-- class std::ios_base -->
       <class-decl name='ios_base' visibility='default' is-declaration-only='yes' id='type-id-445'/>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-50'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-446'/>
   </abi-instr>
   <abi-instr address-size='64' path='/tmp/legendre/spack-stage/spack-stage-R_crTC/VTK-6.1.0/Rendering/LIC/vtkStructuredGridLIC2D.cxx' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-R_crTC/VTK-6.1.0/spack-build/Rendering/LIC' language='LANG_C_plus_plus'>
@@ -18226,7 +18235,9 @@ 
     <class-decl name='vtkProgressObserver' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-498'/>
     <!-- struct vtkRenderWindow -->
     <class-decl name='vtkRenderWindow' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-499'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-497'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-500'/>
     <!-- namespace detail -->
     <namespace-decl name='detail'>
@@ -20177,7 +20188,9 @@ 
     <class-decl name='vtkOpenGLRenderWindow' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-553'/>
     <!-- struct vtkTextureObject -->
     <class-decl name='vtkTextureObject' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-554'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-509'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-555'/>
     <!-- namespace __gnu_cxx -->
     <namespace-decl name='__gnu_cxx'>
@@ -22509,7 +22522,9 @@ 
     <class-decl name='vtkRepresentationPainter' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-589'/>
     <!-- struct vtkScalarsToColorsPainter -->
     <class-decl name='vtkScalarsToColorsPainter' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-591'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-625'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-622'/>
   </abi-instr>
   <abi-instr address-size='64' path='/tmp/legendre/spack-stage/spack-stage-R_crTC/VTK-6.1.0/Rendering/LIC/vtkSurfaceLICPainter.cxx' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-R_crTC/VTK-6.1.0/spack-build/Rendering/LIC' language='LANG_C_plus_plus'>
@@ -27232,7 +27247,9 @@ 
     <class-decl name='vtkRenderWindow' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-810'/>
     <!-- struct vtkWindow -->
     <class-decl name='vtkWindow' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-766'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-778'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-811'/>
     <!-- namespace vtkSurfaceLICPainterUtil -->
     <namespace-decl name='vtkSurfaceLICPainterUtil'>
@@ -27605,7 +27622,9 @@ 
     </namespace-decl>
     <!-- struct vtkTextureObject -->
     <class-decl name='vtkTextureObject' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-829'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-825'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-18' size-in-bits='64' id='type-id-830'/>
   </abi-instr>
   <abi-instr address-size='64' path='/tmp/legendre/spack-stage/spack-stage-R_crTC/VTK-6.1.0/spack-build/Rendering/LIC/vtkLineIntegralConvolution2D_AAH.cxx' language='LANG_C_plus_plus'>
diff --git a/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi b/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi
index 63e2f543..f180e3c6 100644
--- a/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi
+++ b/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi
@@ -2371,6 +2371,7 @@ 
     <reference-type-def kind='lvalue' type-id='type-id-70' size-in-bits='64' id='type-id-71'/>
     <!-- const base::ElfMemImage::SymbolIterator* -->
     <pointer-type-def type-id='type-id-70' size-in-bits='64' id='type-id-72'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-74'/>
     <!-- void* const -->
     <qualified-type-def type-id='type-id-74' const='yes' id='type-id-75'/>
@@ -2743,6 +2744,7 @@ 
     <pointer-type-def type-id='type-id-82' size-in-bits='64' id='type-id-78'/>
     <!-- pid_t* -->
     <pointer-type-def type-id='type-id-81' size-in-bits='64' id='type-id-83'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-84'/>
     <!-- int TCMalloc_ListAllProcessThreads(void*, ListAllProcessThreadsCallBack, ...) -->
     <function-decl name='TCMalloc_ListAllProcessThreads' mangled-name='TCMalloc_ListAllProcessThreads' filepath='src/base/linuxthreads.cc' line='551' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='TCMalloc_ListAllProcessThreads'>
@@ -2834,6 +2836,7 @@ 
     </array-type-def>
     <!-- low_level_alloc_internal::AllocList* -->
     <pointer-type-def type-id='type-id-91' size-in-bits='64' id='type-id-88'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-92'/>
     <!-- namespace base -->
     <namespace-decl name='base'>
@@ -2953,6 +2956,7 @@ 
         </function-decl>
       </member-function>
     </class-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-107'/>
     <!-- namespace base -->
     <namespace-decl name='base'>
@@ -3421,6 +3425,7 @@ 
     <reference-type-def kind='lvalue' type-id='type-id-138' size-in-bits='64' id='type-id-139'/>
     <!-- const base::VDSOSupport* -->
     <pointer-type-def type-id='type-id-138' size-in-bits='64' id='type-id-140'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-77'/>
     <!-- namespace base -->
     <namespace-decl name='base'>
@@ -3678,7 +3683,9 @@ 
         <var-decl name='_unused2' type-id='type-id-160' visibility='default' filepath='/usr/include/libio.h' line='336' column='1'/>
       </data-member>
     </class-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-161'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-162'/>
     <!-- namespace base -->
     <namespace-decl name='base'>
@@ -4055,7 +4062,9 @@ 
     </namespace-decl>
   </abi-instr>
   <abi-instr address-size='64' path='src/common.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-kFgaKP/gperftools-2.4' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-179'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-180'/>
     <!-- namespace base -->
     <namespace-decl name='base'>
@@ -14014,7 +14023,9 @@ 
       <!-- typedef std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::string -->
       <typedef-decl name='string' type-id='type-id-844' filepath='/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stringfwd.h' line='56' column='1' id='type-id-849'/>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-250'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-243'/>
     <!-- void* const -->
     <qualified-type-def type-id='type-id-243' const='yes' id='type-id-773'/>
@@ -17193,7 +17204,9 @@ 
         <return type-id='type-id-73'/>
       </function-decl>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-215'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1007'/>
     <!-- void* const -->
     <qualified-type-def type-id='type-id-215' const='yes' id='type-id-1008'/>
@@ -17464,7 +17477,9 @@ 
     </class-decl>
     <!-- HeapProfileEndWriter* -->
     <pointer-type-def type-id='type-id-1013' size-in-bits='64' id='type-id-1014'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1015'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1016'/>
     <!-- namespace base -->
     <namespace-decl name='base'>
@@ -17614,6 +17629,7 @@ 
     <pointer-type-def type-id='type-id-1022' size-in-bits='64' id='type-id-1023'/>
     <!-- void (const char*, int)* -->
     <pointer-type-def type-id='type-id-1024' size-in-bits='64' id='type-id-1025'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1026'/>
     <!-- namespace base -->
     <namespace-decl name='base'>
@@ -18161,7 +18177,9 @@ 
         <return type-id='type-id-73'/>
       </function-decl>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1031'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1034'/>
     <!-- namespace __gnu_cxx -->
     <namespace-decl name='__gnu_cxx'>
@@ -18430,7 +18448,9 @@ 
         <return type-id='type-id-178'/>
       </function-decl>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1102'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1103'/>
     <!-- void* const -->
     <qualified-type-def type-id='type-id-1102' const='yes' id='type-id-1104'/>
@@ -19231,6 +19251,7 @@ 
     <pointer-type-def type-id='type-id-1111' size-in-bits='64' id='type-id-1112'/>
     <!-- pthread_once_t* -->
     <pointer-type-def type-id='type-id-1113' size-in-bits='64' id='type-id-1114'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1115'/>
     <!-- int perftools_pthread_key_create(pthread_key_t*, void (void*)*) -->
     <function-decl name='perftools_pthread_key_create' mangled-name='_Z28perftools_pthread_key_createPjPFvPvE' filepath='src/maybe_threads.cc' line='90' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z28perftools_pthread_key_createPjPFvPvE'>
@@ -19361,7 +19382,9 @@ 
       <!-- class std::reverse_iterator<__gnu_cxx::__normal_iterator<const char*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > -->
       <class-decl name='reverse_iterator&lt;__gnu_cxx::__normal_iterator&lt;const char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-1120'/>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1121'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1118'/>
     <!-- namespace tcmalloc -->
     <namespace-decl name='tcmalloc'>
@@ -20372,7 +20395,9 @@ 
         <return type-id='type-id-76'/>
       </function-decl>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-303'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-304'/>
     <!-- void* const -->
     <qualified-type-def type-id='type-id-303' const='yes' id='type-id-1176'/>
@@ -20440,7 +20465,9 @@ 
   <abi-instr address-size='64' path='src/page_heap.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-kFgaKP/gperftools-2.4' language='LANG_C_plus_plus'>
     <!-- tcmalloc::PageHeapAllocator<tcmalloc::StackTrace>* -->
     <pointer-type-def type-id='type-id-1177' size-in-bits='64' id='type-id-1178'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1179'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1180'/>
     <!-- namespace base -->
     <namespace-decl name='base'>
@@ -21315,7 +21342,9 @@ 
       <!-- struct std::_List_node<ProfileHandlerToken*> -->
       <class-decl name='_List_node&lt;ProfileHandlerToken*&gt;' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1224'/>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1192'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1256'/>
     <!-- typedef void* __timer_t -->
     <typedef-decl name='__timer_t' type-id='type-id-1192' filepath='/usr/include/bits/types.h' line='161' column='1' id='type-id-1257'/>
@@ -21545,6 +21574,7 @@ 
     </function-type>
   </abi-instr>
   <abi-instr address-size='64' path='src/profiledata.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-kFgaKP/gperftools-2.4' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1258'/>
     <!-- void* const -->
     <qualified-type-def type-id='type-id-1258' const='yes' id='type-id-1259'/>
@@ -22248,7 +22278,9 @@ 
     <pointer-type-def type-id='type-id-1310' size-in-bits='64' id='type-id-1269'/>
     <!-- siginfo_t* -->
     <pointer-type-def type-id='type-id-1304' size-in-bits='64' id='type-id-1191'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1311'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1270'/>
     <!-- void* const -->
     <qualified-type-def type-id='type-id-1311' const='yes' id='type-id-1312'/>
@@ -22458,7 +22490,9 @@ 
         <return type-id='type-id-1318'/>
       </function-decl>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1319'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1320'/>
     <!-- namespace tcmalloc -->
     <namespace-decl name='tcmalloc'>
@@ -22488,6 +22522,7 @@ 
   <abi-instr address-size='64' path='src/span.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-kFgaKP/gperftools-2.4' language='LANG_C_plus_plus'>
     <!-- tcmalloc::PageHeapAllocator<tcmalloc::Span>* -->
     <pointer-type-def type-id='type-id-1322' size-in-bits='64' id='type-id-1323'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1324'/>
     <!-- namespace tcmalloc -->
     <namespace-decl name='tcmalloc'>
@@ -22566,7 +22601,9 @@ 
     <pointer-type-def type-id='type-id-1338' size-in-bits='64' id='type-id-1342'/>
     <!-- tcmalloc::StackTraceTable::Bucket** -->
     <pointer-type-def type-id='type-id-1342' size-in-bits='64' id='type-id-1343'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1344'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1345'/>
     <!-- namespace base -->
     <namespace-decl name='base'>
@@ -22768,7 +22805,9 @@ 
     </namespace-decl>
   </abi-instr>
   <abi-instr address-size='64' path='src/stacktrace.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-kFgaKP/gperftools-2.4' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1347'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1348'/>
     <!-- namespace tcmalloc -->
     <namespace-decl name='tcmalloc'>
@@ -22839,6 +22878,7 @@ 
     </function-decl>
   </abi-instr>
   <abi-instr address-size='64' path='src/static_vars.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-kFgaKP/gperftools-2.4' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1349'/>
     <!-- namespace base -->
     <namespace-decl name='base'>
@@ -24150,6 +24190,7 @@ 
       <!-- struct std::pair<std::_Rb_tree_iterator<std::pair<const void* const, const char*> >, std::_Rb_tree_iterator<std::pair<const void* const, const char*> > > -->
       <class-decl name='pair&lt;std::_Rb_tree_iterator&lt;std::pair&lt;const void* const, const char*&gt; &gt;, std::_Rb_tree_iterator&lt;std::pair&lt;const void* const, const char*&gt; &gt; &gt;' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1404'/>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1357'/>
     <!-- void* const -->
     <qualified-type-def type-id='type-id-1357' const='yes' id='type-id-1398'/>
@@ -24528,7 +24569,9 @@ 
     <pointer-type-def type-id='type-id-1416' size-in-bits='64' id='type-id-1417'/>
     <!-- SbrkSysAllocator* -->
     <pointer-type-def type-id='type-id-1418' size-in-bits='64' id='type-id-1419'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1420'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1413'/>
     <!-- namespace base -->
     <namespace-decl name='base'>
@@ -27587,6 +27630,7 @@ 
     <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-5'/>
     <!-- wchar_t** -->
     <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-8'/>
+    <!-- _IO_lock_t* -->
     <pointer-type-def type-id='type-id-1489' size-in-bits='64' id='type-id-157'/>
     <!-- namespace std -->
     <namespace-decl name='std'>
@@ -29641,7 +29685,9 @@ 
     <type-decl name='variadic parameter type' id='type-id-1641'/>
     <!-- void -->
     <type-decl name='void' id='type-id-73'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1435'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-159'/>
     <!-- namespace base -->
     <namespace-decl name='base'>
@@ -33756,7 +33802,9 @@ 
         <return type-id='type-id-144'/>
       </function-decl>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1653'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-1649'/>
     <!-- namespace base -->
     <namespace-decl name='base'>
diff --git a/tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi b/tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi
index 455bf7b2..a11602fa 100644
--- a/tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi
+++ b/tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi
@@ -4570,6 +4570,7 @@ 
     <pointer-type-def type-id='type-id-165' size-in-bits='64' id='type-id-362'/>
     <!-- wchar_t** -->
     <pointer-type-def type-id='type-id-362' size-in-bits='64' id='type-id-363'/>
+    <!-- _IO_lock_t* -->
     <pointer-type-def type-id='type-id-152' size-in-bits='64' id='type-id-141'/>
     <!-- class vtkCharArray -->
     <class-decl name='vtkCharArray' visibility='default' is-declaration-only='yes' id='type-id-332'/>
@@ -8592,7 +8593,9 @@ 
     <type-decl name='variadic parameter type' id='type-id-417'/>
     <!-- void -->
     <type-decl name='void' id='type-id-13'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-25'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-26'/>
     <!-- int getchar() -->
     <function-decl name='getchar' filepath='/usr/include/bits/stdio.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -10256,7 +10259,9 @@ 
       <!-- struct std::basic_ostream<char, std::char_traits<char> > -->
       <class-decl name='basic_ostream&lt;char, std::char_traits&lt;char&gt; &gt;' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-439'/>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-431'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-430'/>
   </abi-instr>
   <abi-instr address-size='64' path='/tmp/legendre/spack-stage/spack-stage-R_crTC/VTK-6.1.0/Parallel/Core/vtkDummyController.cxx' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-R_crTC/VTK-6.1.0/spack-build/Parallel/Core' language='LANG_C_plus_plus'>
@@ -11278,7 +11283,9 @@ 
         </function-decl>
       </member-function>
     </class-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-479'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-459'/>
     <!-- void (void*, void*, int, int) -->
     <function-type size-in-bits='64' id='type-id-449'>
@@ -11743,7 +11750,9 @@ 
         </function-decl>
       </member-function>
     </class-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-507'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-508'/>
     <!-- int strcoll(const char*, const char*) -->
     <function-decl name='strcoll' filepath='/usr/include/string.h' line='150' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -19046,7 +19055,9 @@ 
     <class-decl name='vtkDataObject' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1066'/>
     <!-- struct vtkGarbageCollector -->
     <class-decl name='vtkGarbageCollector' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1067'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-462'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-1068'/>
     <!-- void* const -->
     <qualified-type-def type-id='type-id-462' const='yes' id='type-id-934'/>
@@ -23575,7 +23586,9 @@ 
         <return type-id='type-id-13'/>
       </function-decl>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-1137'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-1138'/>
     <!-- namespace __gnu_cxx -->
     <namespace-decl name='__gnu_cxx'>
@@ -23993,6 +24006,7 @@ 
         <return type-id='type-id-304'/>
       </function-decl>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-1148'/>
   </abi-instr>
   <abi-instr address-size='64' path='/tmp/legendre/spack-stage/spack-stage-R_crTC/VTK-6.1.0/Parallel/Core/vtkProcessGroup.cxx' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-R_crTC/VTK-6.1.0/spack-build/Parallel/Core' language='LANG_C_plus_plus'>
@@ -24411,7 +24425,9 @@ 
         <return type-id='type-id-304'/>
       </function-decl>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-1158'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-1157'/>
   </abi-instr>
   <abi-instr address-size='64' path='/tmp/legendre/spack-stage/spack-stage-R_crTC/VTK-6.1.0/Parallel/Core/vtkSocketCommunicator.cxx' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-R_crTC/VTK-6.1.0/spack-build/Parallel/Core' language='LANG_C_plus_plus'>
@@ -28632,7 +28648,9 @@ 
         <return type-id='type-id-304'/>
       </function-decl>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-1173'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-418'/>
     <!-- namespace __gnu_cxx -->
     <namespace-decl name='__gnu_cxx'>
@@ -29326,6 +29344,7 @@ 
       <!-- struct std::basic_ostream<char, std::char_traits<char> > -->
       <class-decl name='basic_ostream&lt;char, std::char_traits&lt;char&gt; &gt;' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1412'/>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-1413'/>
   </abi-instr>
   <abi-instr address-size='64' path='/tmp/legendre/spack-stage/spack-stage-R_crTC/VTK-6.1.0/Parallel/Core/vtkSubCommunicator.cxx' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-R_crTC/VTK-6.1.0/spack-build/Parallel/Core' language='LANG_C_plus_plus'>
@@ -29636,7 +29655,9 @@ 
         <return type-id='type-id-304'/>
       </function-decl>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-1419'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-1418'/>
   </abi-instr>
   <abi-instr address-size='64' path='/tmp/legendre/spack-stage/spack-stage-R_crTC/VTK-6.1.0/Parallel/Core/vtkSubGroup.cxx' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-R_crTC/VTK-6.1.0/spack-build/Parallel/Core' language='LANG_C_plus_plus'>
@@ -30607,7 +30628,9 @@ 
         <return type-id='type-id-304'/>
       </function-decl>
     </namespace-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-1442'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-13' size-in-bits='64' id='type-id-1441'/>
   </abi-instr>
 </abi-corpus>
diff --git a/tests/data/test-annotate/test21-pr19092.so.abi b/tests/data/test-annotate/test21-pr19092.so.abi
index a69d558f..0b7e8bfa 100644
--- a/tests/data/test-annotate/test21-pr19092.so.abi
+++ b/tests/data/test-annotate/test21-pr19092.so.abi
@@ -890,6 +890,7 @@ 
     <elf-symbol name='vflag' size='1' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
   </elf-variable-symbols>
   <abi-instr address-size='64' path='../.././gcc/collect2-aix.c' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/host-x86_64-unknown-linux-gnu/gcc' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-2'/>
     <!-- int strcoll(const char*, const char*) -->
     <function-decl name='strcoll' filepath='/usr/include/string.h' line='150' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -1835,6 +1836,7 @@ 
     <pointer-type-def type-id='type-id-141' size-in-bits='64' id='type-id-142'/>
     <!-- void** -->
     <pointer-type-def type-id='type-id-41' size-in-bits='64' id='type-id-97'/>
+    <!-- _IO_lock_t* -->
     <pointer-type-def type-id='type-id-101' size-in-bits='64' id='type-id-39'/>
     <!-- struct cpp_hashnode -->
     <class-decl name='cpp_hashnode' size-in-bits='256' is-struct='yes' visibility='default' filepath='../.././libcpp/include/cpplib.h' line='676' column='1' id='type-id-123'>
@@ -1950,7 +1952,9 @@ 
     <type-decl name='variadic parameter type' id='type-id-150'/>
     <!-- void -->
     <type-decl name='void' id='type-id-1'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-151'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-41'/>
     <!-- int filename_ncmp(const char*, const char*, size_t) -->
     <function-decl name='filename_ncmp' filepath='../.././gcc/../include/filenames.h' line='84' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -2698,7 +2702,9 @@ 
     <pointer-type-def type-id='type-id-164' size-in-bits='64' id='type-id-161'/>
     <!-- void* (void*, typedef size_t)* -->
     <pointer-type-def type-id='type-id-165' size-in-bits='64' id='type-id-160'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-166'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-167'/>
     <!-- unsigned long int concat_length(const char*, ...) -->
     <function-decl name='concat_length' filepath='../.././gcc/../include/libiberty.h' line='157' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -3757,7 +3763,9 @@ 
         <var-decl name='dummy' type-id='type-id-4' visibility='default' filepath='../.././gcc/ggc-none.c' line='77' column='1'/>
       </data-member>
     </class-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-170'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-171'/>
     <!-- void* ggc_alloc_typed_stat(gt_types_enum, size_t) -->
     <function-decl name='ggc_alloc_typed_stat' mangled-name='_Z20ggc_alloc_typed_stat13gt_types_enumm' filepath='../.././gcc/ggc-none.c' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z20ggc_alloc_typed_stat13gt_types_enumm'>
@@ -3862,6 +3870,7 @@ 
     </class-decl>
     <!-- linemap_stats* -->
     <pointer-type-def type-id='type-id-172' size-in-bits='64' id='type-id-173'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-174'/>
     <!-- location_t input_location -->
     <var-decl name='input_location' type-id='type-id-48' mangled-name='input_location' visibility='default' filepath='../.././gcc/input.c' line='29' column='1' elf-symbol-id='input_location'/>
@@ -3891,7 +3900,9 @@ 
     <pointer-type-def type-id='type-id-177' size-in-bits='64' id='type-id-178'/>
     <!-- wchar_t* -->
     <pointer-type-def type-id='type-id-176' size-in-bits='64' id='type-id-179'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-180'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-181'/>
     <!-- const char* open_quote -->
     <var-decl name='open_quote' type-id='type-id-3' mangled-name='open_quote' visibility='default' filepath='../.././gcc/intl.c' line='31' column='1' elf-symbol-id='open_quote'/>
@@ -4002,7 +4013,9 @@ 
     <pointer-type-def type-id='type-id-6' size-in-bits='64' id='type-id-184'/>
     <!-- void* (typedef size_t)* -->
     <pointer-type-def type-id='type-id-185' size-in-bits='64' id='type-id-186'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-187'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-188'/>
     <!-- char* xstrerror(int) -->
     <function-decl name='xstrerror' filepath='../.././gcc/../include/libiberty.h' line='259' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -4446,7 +4459,9 @@ 
     <pointer-type-def type-id='type-id-222' size-in-bits='64' id='type-id-211'/>
     <!-- void* (void*, typedef size_t, typedef size_t)* -->
     <pointer-type-def type-id='type-id-223' size-in-bits='64' id='type-id-212'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-224'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-201'/>
     <!-- char* cplus_demangle(const char*, int) -->
     <function-decl name='cplus_demangle' filepath='../.././gcc/../include/demangle.h' line='130' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -4599,7 +4614,9 @@ 
     </function-type>
   </abi-instr>
   <abi-instr address-size='64' path='../.././gcc/vec.c' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/host-x86_64-unknown-linux-gnu/gcc' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-225'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-226'/>
     <!-- void* vec_gc_p_reserve(void*, int) -->
     <function-decl name='vec_gc_p_reserve' mangled-name='_Z16vec_gc_p_reservePvi' filepath='../.././gcc/vec.c' line='257' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z16vec_gc_p_reservePvi'>
@@ -4796,6 +4813,7 @@ 
   <abi-instr address-size='64' path='../.././libcpp/charset.c' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/host-x86_64-unknown-linux-gnu/libcpp' language='LANG_C_plus_plus'>
     <!-- const uchar** -->
     <pointer-type-def type-id='type-id-236' size-in-bits='64' id='type-id-237'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-238'/>
     <!-- void cpp_init_iconv(cpp_reader*) -->
     <function-decl name='cpp_init_iconv' mangled-name='_Z14cpp_init_iconvP10cpp_reader' filepath='../.././libcpp/charset.c' line='700' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z14cpp_init_iconvP10cpp_reader'>
@@ -5057,7 +5075,9 @@ 
         <var-decl name='vpaths_size' type-id='type-id-54' visibility='default' filepath='../.././libcpp/mkdeps.c' line='43' column='1'/>
       </data-member>
     </class-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-271'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-272'/>
     <!-- void* xmemdup(void*, size_t, size_t) -->
     <function-decl name='xmemdup' filepath='../.././libcpp/../include/libiberty.h' line='324' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -5677,6 +5697,7 @@ 
     <typedef-decl name='cpp_num_part' type-id='type-id-102' filepath='../.././libcpp/include/cpplib.h' line='799' column='1' id='type-id-281'/>
     <!-- typedef unsigned int cppchar_t -->
     <typedef-decl name='cppchar_t' type-id='type-id-54' filepath='../.././libcpp/include/cpplib.h' line='269' column='1' id='type-id-240'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-284'/>
     <!-- unsigned int cpp_interpret_float_suffix(const char*, size_t) -->
     <function-decl name='cpp_interpret_float_suffix' mangled-name='_Z26cpp_interpret_float_suffixPKcm' filepath='../.././libcpp/expr.c' line='190' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z26cpp_interpret_float_suffixPKcm'>
@@ -5908,7 +5929,9 @@ 
     <pointer-type-def type-id='type-id-295' size-in-bits='64' id='type-id-250'/>
     <!-- struct __dirstream -->
     <class-decl name='__dirstream' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-289'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-300'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-301'/>
     <!-- int filename_cmp(const char*, const char*) -->
     <function-decl name='filename_cmp' filepath='../.././libcpp/../include/filenames.h' line='81' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -6337,7 +6360,9 @@ 
     <typedef-decl name='ht_cb' type-id='type-id-303' filepath='../.././libcpp/include/symtab.h' line='90' column='1' id='type-id-304'/>
     <!-- int (cpp_reader*, typedef hashnode, void*)* -->
     <pointer-type-def type-id='type-id-305' size-in-bits='64' id='type-id-303'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-306'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-307'/>
     <!-- void _cpp_init_hashtable(cpp_reader*, hash_table*) -->
     <function-decl name='_cpp_init_hashtable' mangled-name='_cpp_init_hashtable' filepath='../.././libcpp/identifiers.c' line='48' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_cpp_init_hashtable'>
@@ -6411,6 +6436,7 @@ 
       <!-- <anonymous range>[256] -->
       <subrange length='256' lower-bound='0' upper-bound='255' type-id='type-id-10' id='type-id-287'/>
     </array-type-def>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-314'/>
     <!-- unsigned char _cpp_trigraph_map[256] -->
     <var-decl name='_cpp_trigraph_map' type-id='type-id-313' mangled-name='_cpp_trigraph_map' visibility='default' filepath='../.././libcpp/init.c' line='60' column='1' elf-symbol-id='_cpp_trigraph_map'/>
@@ -6571,7 +6597,9 @@ 
     <pointer-type-def type-id='type-id-323' size-in-bits='64' id='type-id-326'/>
     <!-- normalize_state* -->
     <pointer-type-def type-id='type-id-320' size-in-bits='64' id='type-id-241'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-327'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-328'/>
     <!-- void _cpp_backup_tokens_direct(cpp_reader*, unsigned int) -->
     <function-decl name='_cpp_backup_tokens_direct' filepath='../.././libcpp/internal.h' line='615' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -8768,7 +8796,9 @@ 
     <class-decl name='if_stack' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-443'/>
     <!-- struct pragma_entry -->
     <class-decl name='pragma_entry' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-445'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-457'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-458'/>
     <!-- bool _cpp_read_logical_line_trad(cpp_reader*) -->
     <function-decl name='_cpp_read_logical_line_trad' filepath='../.././libcpp/internal.h' line='689' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -9170,7 +9200,9 @@ 
     <qualified-type-def type-id='type-id-269' const='yes' id='type-id-459'/>
     <!-- const deps* -->
     <pointer-type-def type-id='type-id-459' size-in-bits='64' id='type-id-460'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-461'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-462'/>
     <!-- deps* deps_init() -->
     <function-decl name='deps_init' mangled-name='_Z9deps_initv' filepath='../.././libcpp/mkdeps.c' line='168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z9deps_initv'>
@@ -9264,7 +9296,9 @@ 
     </function-decl>
   </abi-instr>
   <abi-instr address-size='64' path='../.././libcpp/symtab.c' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/host-x86_64-unknown-linux-gnu/libcpp' language='LANG_C_plus_plus'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-463'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-464'/>
     <!-- int _obstack_memory_used(obstack*) -->
     <function-decl name='_obstack_memory_used' filepath='../.././libcpp/../include/obstack.h' line='198' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -9367,7 +9401,9 @@ 
       <enumerator name='HT_NO_INSERT' value='0'/>
       <enumerator name='HT_ALLOC' value='1'/>
     </enum-decl>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-466'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-467'/>
     <!-- void _cpp_push_text_context(cpp_reader*, cpp_hashnode*, const unsigned char*, size_t) -->
     <function-decl name='_cpp_push_text_context' filepath='../.././libcpp/internal.h' line='605' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -9413,7 +9449,9 @@ 
     </function-decl>
   </abi-instr>
   <abi-instr address-size='64' path='../.././libiberty/argv.c' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/host-x86_64-unknown-linux-gnu/libiberty' language='LANG_C89'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-468'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-469'/>
     <!-- void xexit(int) -->
     <function-decl name='xexit' filepath='../.././libiberty/../include/libiberty.h' line='288' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -9531,6 +9569,7 @@ 
     </function-decl>
   </abi-instr>
   <abi-instr address-size='64' path='../.././libiberty/concat.c' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/host-x86_64-unknown-linux-gnu/libiberty' language='LANG_C89'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-470'/>
     <!-- char* concat_copy(char*, const char*, ...) -->
     <function-decl name='concat_copy' mangled-name='concat_copy' filepath='../.././libiberty/concat.c' line='117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='concat_copy'>
@@ -9984,7 +10023,9 @@ 
     <pointer-type-def type-id='type-id-487' size-in-bits='64' id='type-id-488'/>
     <!-- void (const char*, typedef size_t, void*)* -->
     <pointer-type-def type-id='type-id-510' size-in-bits='64' id='type-id-505'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-511'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-512'/>
     <!-- int cplus_demangle_fill_name(demangle_component*, const char*, int) -->
     <function-decl name='cplus_demangle_fill_name' mangled-name='cplus_demangle_fill_name' filepath='../.././libiberty/cp-demangle.c' line='711' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='cplus_demangle_fill_name'>
@@ -10202,7 +10243,9 @@ 
     <qualified-type-def type-id='type-id-516' const='yes' id='type-id-513'/>
     <!-- const demangling_styles -->
     <qualified-type-def type-id='type-id-518' const='yes' id='type-id-520'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-521'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-522'/>
     <!-- demangling_styles current_demangling_style -->
     <var-decl name='current_demangling_style' type-id='type-id-518' mangled-name='current_demangling_style' visibility='default' filepath='../.././libiberty/cplus-dem.c' line='93' column='1' elf-symbol-id='current_demangling_style'/>
@@ -10320,6 +10363,7 @@ 
     </function-decl>
   </abi-instr>
   <abi-instr address-size='64' path='../.././libiberty/getpwd.c' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/host-x86_64-unknown-linux-gnu/libiberty' language='LANG_C89'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-523'/>
     <!-- char* getcwd(char*, size_t) -->
     <function-decl name='getcwd' filepath='/usr/include/unistd.h' line='508' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -10334,7 +10378,9 @@ 
   <abi-instr address-size='64' path='../.././libiberty/hashtab.c' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/host-x86_64-unknown-linux-gnu/libiberty' language='LANG_C89'>
     <!-- double -->
     <type-decl name='double' size-in-bits='64' id='type-id-524'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-525'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-526'/>
     <!-- htab_hash htab_hash_pointer -->
     <var-decl name='htab_hash_pointer' type-id='type-id-196' mangled-name='htab_hash_pointer' visibility='default' filepath='../.././libiberty/hashtab.c' line='82' column='1' elf-symbol-id='htab_hash_pointer'/>
@@ -10529,6 +10575,7 @@ 
     </function-decl>
   </abi-instr>
   <abi-instr address-size='64' path='../.././libiberty/make-temp-file.c' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/host-x86_64-unknown-linux-gnu/libiberty' language='LANG_C89'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-527'/>
     <!-- char* choose_tmpdir() -->
     <function-decl name='choose_tmpdir' mangled-name='choose_tmpdir' filepath='../.././libiberty/make-temp-file.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='choose_tmpdir'>
@@ -10592,7 +10639,9 @@ 
     <pointer-type-def type-id='type-id-533' size-in-bits='64' id='type-id-534'/>
     <!-- md5_ctx* -->
     <pointer-type-def type-id='type-id-531' size-in-bits='64' id='type-id-535'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-536'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-537'/>
     <!-- void md5_init_ctx(md5_ctx*) -->
     <function-decl name='md5_init_ctx' mangled-name='md5_init_ctx' filepath='../.././libiberty/md5.c' line='65' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='md5_init_ctx'>
@@ -10806,6 +10855,7 @@ 
     <pointer-type-def type-id='type-id-555' size-in-bits='64' id='type-id-542'/>
     <!-- void (pex_obj*)* -->
     <pointer-type-def type-id='type-id-556' size-in-bits='64' id='type-id-545'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-149'/>
     <!-- pex_obj* pex_init_common(int, const char*, const char*, const pex_funcs*) -->
     <function-decl name='pex_init_common' mangled-name='pex_init_common' filepath='../.././libiberty/pex-common.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='pex_init_common'>
@@ -11116,6 +11166,7 @@ 
     <pointer-type-def type-id='type-id-557' size-in-bits='64' id='type-id-566'/>
     <!-- wait* -->
     <pointer-type-def type-id='type-id-565' size-in-bits='64' id='type-id-564'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-567'/>
     <!-- const pex_funcs funcs -->
     <var-decl name='funcs' type-id='type-id-550' mangled-name='funcs' visibility='default' filepath='../.././libiberty/pex-unix.c' line='317' column='1' elf-symbol-id='funcs'/>
@@ -11269,6 +11320,7 @@ 
     <typedef-decl name='__intptr_t' type-id='type-id-30' filepath='/usr/include/bits/types.h' line='189' column='1' id='type-id-571'/>
     <!-- typedef __intptr_t intptr_t -->
     <typedef-decl name='intptr_t' type-id='type-id-571' filepath='/usr/include/unistd.h' line='268' column='1' id='type-id-572'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-573'/>
     <!-- void xmalloc_failed(size_t) -->
     <function-decl name='xmalloc_failed' mangled-name='xmalloc_failed' filepath='../.././libiberty/xmalloc.c' line='117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='xmalloc_failed'>
@@ -11295,10 +11347,13 @@ 
     </function-decl>
   </abi-instr>
   <abi-instr address-size='64' path='../.././libiberty/xmemdup.c' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/host-x86_64-unknown-linux-gnu/libiberty' language='LANG_C89'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-574'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-575'/>
   </abi-instr>
   <abi-instr address-size='64' path='../.././libiberty/xstrdup.c' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/host-x86_64-unknown-linux-gnu/libiberty' language='LANG_C89'>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-576'/>
   </abi-instr>
   <abi-instr address-size='64' path='../.././libiberty/xstrerror.c' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-wfh0ig/gcc-4.7.4/host-x86_64-unknown-linux-gnu/libiberty' language='LANG_C89'>
diff --git a/tests/data/test-annotate/test5.o.abi b/tests/data/test-annotate/test5.o.abi
index 9c661f3b..c8be4cfa 100644
--- a/tests/data/test-annotate/test5.o.abi
+++ b/tests/data/test-annotate/test5.o.abi
@@ -6,6 +6,7 @@ 
   <abi-instr address-size='64' path='test.cc' comp-dir-path='/home/dodji/libabigailtests' language='LANG_C_plus_plus'>
     <!-- void -->
     <type-decl name='void' id='type-id-1'/>
+    <!-- void* -->
     <pointer-type-def type-id='type-id-1' size-in-bits='64' id='type-id-2'/>
     <!-- void bar(void*) -->
     <function-decl name='bar' mangled-name='_Z3barPv' filepath='/home/dodji/libabigailtests/test.cc' line='2' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z3barPv'>