[applied] test-read-dwarf: Use abidw rather than using the library

Message ID 8735fzics6.fsf@redhat.com
State New
Headers
Series [applied] test-read-dwarf: Use abidw rather than using the library |

Commit Message

Dodji Seketeli June 20, 2022, 3:18 p.m. UTC
  Hello,

When this test fails, sometimes it's difficult to reproduce the
problem using abidw.  That's because this test is using the library
directly, so the exact setup is not always straightforward to
reproduce and eventually debug.

This test changes tests/test-read-dwarf.cc to make it use abidw rather
than using the library directly.

	* tests/test-read-dwarf.cc (set_suppressions)
	(set_suppressions_from_headers): Remove these static functions.
	(test_task_dwarf::perform): Use abidw rather than using the
	library.  Remove the path and architecture from the abixml files.
	Also, when the test fails, display the actual command that failed.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
Applied to master.

---
 .../PR22015-libboost_iostreams.so.abi         |   2 +-
 .../test-read-dwarf/PR22122-libftdc.so.abi    |   2 +-
 .../PR24378-fn-is-not-scope.abi               |   2 +-
 .../data/test-read-dwarf/PR25007-sdhci.ko.abi | 479 ++++++++----------
 .../PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi |   2 +-
 .../test-read-dwarf/PR26261/PR26261-exe.abi   |   2 +-
 .../test-read-dwarf/PR27700/test-PR27700.abi  |   2 +-
 .../PR28584/PR28584-smv.clang.o.abi           |   2 +-
 tests/data/test-read-dwarf/libtest23.so.abi   |   2 +-
 .../libtest24-drop-fns-2.so.abi               |   2 +-
 .../test-read-dwarf/libtest24-drop-fns.so.abi | 323 ++++++------
 .../data/test-read-dwarf/test-PR26568-1.o.abi |   2 +-
 .../data/test-read-dwarf/test-PR26568-2.o.abi |   2 +-
 .../test-read-dwarf/test-libaaudio.so.abi     |   2 +-
 .../test-read-dwarf/test-libandroid.so.abi    |   2 +-
 .../test-suppressed-alias.o.abi               |   8 +-
 tests/data/test-read-dwarf/test0.abi          |   2 +-
 tests/data/test-read-dwarf/test0.hash.abi     |   2 +-
 tests/data/test-read-dwarf/test1.abi          |   2 +-
 tests/data/test-read-dwarf/test1.hash.abi     |   2 +-
 .../test-read-dwarf/test10-pr18818-gcc.so.abi |   2 +-
 .../test-read-dwarf/test11-pr18828.so.abi     |   2 +-
 .../test-read-dwarf/test12-pr18844.so.abi     |   2 +-
 .../test-read-dwarf/test13-pr18894.so.abi     |   2 +-
 .../test-read-dwarf/test14-pr18893.so.abi     |   2 +-
 .../test-read-dwarf/test15-pr18892.so.abi     |   2 +-
 .../test-read-dwarf/test16-pr18904.so.abi     |   2 +-
 .../test-read-dwarf/test17-pr19027.so.abi     |   2 +-
 ...st18-pr19037-libvtkRenderingLIC-6.1.so.abi |   2 +-
 ...19-pr19023-libtcmalloc_and_profiler.so.abi |   2 +-
 tests/data/test-read-dwarf/test2.so.abi       |   2 +-
 tests/data/test-read-dwarf/test2.so.hash.abi  |   2 +-
 ...st20-pr19025-libvtkParallelCore-6.1.so.abi |   2 +-
 .../test-read-dwarf/test21-pr19092.so.abi     |   2 +-
 .../test22-pr19097-libstdc++.so.6.0.17.so.abi |   2 +-
 .../test-read-dwarf/test3-alias-1.so.hash.abi |   9 +-
 .../test-read-dwarf/test3-alias-2.so.hash.abi |   5 +-
 .../test-read-dwarf/test3-alias-3.so.hash.abi |   9 +-
 .../test-read-dwarf/test3-alias-4.so.hash.abi |  13 +-
 tests/data/test-read-dwarf/test3.so.abi       |   2 +-
 tests/data/test-read-dwarf/test3.so.hash.abi  |   2 +-
 tests/data/test-read-dwarf/test4.so.abi       |   2 +-
 tests/data/test-read-dwarf/test4.so.hash.abi  |   2 +-
 tests/data/test-read-dwarf/test5.o.abi        |   2 +-
 tests/data/test-read-dwarf/test5.o.hash.abi   |   2 +-
 tests/data/test-read-dwarf/test6.so.abi       |   2 +-
 tests/data/test-read-dwarf/test6.so.hash.abi  |   2 +-
 tests/data/test-read-dwarf/test7.so.abi       |   2 +-
 tests/data/test-read-dwarf/test7.so.hash.abi  |   2 +-
 .../test8-qualified-this-pointer.so.abi       |   2 +-
 .../test8-qualified-this-pointer.so.hash.abi  |   2 +-
 .../test9-pr18818-clang.so.abi                |   2 +-
 tests/test-read-dwarf.cc                      |  97 +---
 53 files changed, 490 insertions(+), 543 deletions(-)
  

Patch

diff --git a/tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi b/tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi
index a7475e95..25ef5373 100644
--- a/tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi
+++ b/tests/data/test-read-dwarf/PR22015-libboost_iostreams.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/PR22015-libboost_iostreams.so'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='build/cached/third_party/boost-1.60.0/libboost_system.so'/>
     <dependency name='libm.so.6'/>
diff --git a/tests/data/test-read-dwarf/PR22122-libftdc.so.abi b/tests/data/test-read-dwarf/PR22122-libftdc.so.abi
index 81883af4..f4533d9e 100644
--- a/tests/data/test-read-dwarf/PR22122-libftdc.so.abi
+++ b/tests/data/test-read-dwarf/PR22122-libftdc.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/PR22122-libftdc.so'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='build/cached/third_party/s2/libs2.so'/>
     <dependency name='build/cached/third_party/s2/util/math/libmath.so'/>
diff --git a/tests/data/test-read-dwarf/PR24378-fn-is-not-scope.abi b/tests/data/test-read-dwarf/PR24378-fn-is-not-scope.abi
index 7860fa13..0769ed63 100644
--- a/tests/data/test-read-dwarf/PR24378-fn-is-not-scope.abi
+++ b/tests/data/test-read-dwarf/PR24378-fn-is-not-scope.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/PR24378-fn-is-not-scope.o'>
+<abi-corpus version='2.1'>
   <elf-function-symbols>
     <elf-symbol name='_ZN4stac14buggy_functionEPFvPFfiiEE' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
   </elf-function-symbols>
diff --git a/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi b/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi
index 5d16731e..33f07815 100644
--- a/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi
+++ b/tests/data/test-read-dwarf/PR25007-sdhci.ko.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/PR25007-sdhci.ko'>
+<abi-corpus version='2.1'>
   <elf-function-symbols>
     <elf-symbol name='__sdhci_add_host' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x74ae518'/>
     <elf-symbol name='__sdhci_read_caps' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x711f65c'/>
@@ -10107,10 +10107,19 @@ 
       <parameter type-id='type-id-1183'/>
       <return type-id='type-id-165'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1112'>
+      <parameter type-id='type-id-614'/>
+      <parameter type-id='type-id-279'/>
+      <return type-id='type-id-165'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1114'>
       <parameter type-id='type-id-125'/>
       <return type-id='type-id-165'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1153'>
+      <parameter type-id='type-id-279'/>
+      <return type-id='type-id-282'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1184'>
       <parameter type-id='type-id-238'/>
       <parameter type-id='type-id-1138'/>
@@ -10138,6 +10147,10 @@ 
       <parameter type-id='type-id-51'/>
       <return type-id='type-id-1195'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1198'>
+      <parameter type-id='type-id-538'/>
+      <return type-id='type-id-530'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1199'>
       <parameter type-id='type-id-1357'/>
       <return type-id='type-id-635'/>
@@ -10164,6 +10177,9 @@ 
       <parameter type-id='type-id-241'/>
       <return type-id='type-id-51'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1220'>
+      <return type-id='type-id-53'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1221'>
       <parameter type-id='type-id-374'/>
       <parameter type-id='type-id-139'/>
@@ -10181,6 +10197,16 @@ 
       <parameter type-id='type-id-1553'/>
       <return type-id='type-id-53'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1224'>
+      <parameter type-id='type-id-24'/>
+      <parameter type-id='type-id-1143'/>
+      <return type-id='type-id-53'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-1225'>
+      <parameter type-id='type-id-165'/>
+      <parameter type-id='type-id-1143'/>
+      <return type-id='type-id-53'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1226'>
       <parameter type-id='type-id-1118'/>
       <return type-id='type-id-53'/>
@@ -10370,6 +10396,13 @@ 
       <parameter type-id='type-id-411'/>
       <return type-id='type-id-53'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1256'>
+      <parameter type-id='type-id-335'/>
+      <parameter type-id='type-id-279'/>
+      <parameter type-id='type-id-1093'/>
+      <parameter type-id='type-id-125'/>
+      <return type-id='type-id-53'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1257'>
       <parameter type-id='type-id-335'/>
       <parameter type-id='type-id-67'/>
@@ -10519,6 +10552,31 @@ 
       <parameter type-id='type-id-53'/>
       <return type-id='type-id-53'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1283'>
+      <parameter type-id='type-id-559'/>
+      <return type-id='type-id-53'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-1284'>
+      <parameter type-id='type-id-559'/>
+      <parameter type-id='type-id-165'/>
+      <parameter type-id='type-id-332'/>
+      <return type-id='type-id-53'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-1285'>
+      <parameter type-id='type-id-559'/>
+      <parameter type-id='type-id-559'/>
+      <parameter type-id='type-id-165'/>
+      <return type-id='type-id-53'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-1286'>
+      <parameter type-id='type-id-1343'/>
+      <return type-id='type-id-53'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-1287'>
+      <parameter type-id='type-id-1343'/>
+      <parameter type-id='type-id-125'/>
+      <return type-id='type-id-53'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1288'>
       <parameter type-id='type-id-225'/>
       <parameter type-id='type-id-1151'/>
@@ -10531,6 +10589,17 @@ 
       <parameter type-id='type-id-172'/>
       <return type-id='type-id-53'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1290'>
+      <parameter type-id='type-id-614'/>
+      <parameter type-id='type-id-279'/>
+      <return type-id='type-id-53'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-1292'>
+      <parameter type-id='type-id-614'/>
+      <parameter type-id='type-id-279'/>
+      <parameter type-id='type-id-1350'/>
+      <return type-id='type-id-53'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1294'>
       <parameter type-id='type-id-1357'/>
       <return type-id='type-id-53'/>
@@ -10591,6 +10660,10 @@ 
       <parameter type-id='type-id-100'/>
       <return type-id='type-id-53'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1305'>
+      <parameter type-id='type-id-274'/>
+      <return type-id='type-id-53'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1306'>
       <parameter type-id='type-id-826'/>
       <parameter type-id='type-id-114'/>
@@ -10631,6 +10704,22 @@ 
       <parameter type-id='type-id-238'/>
       <return type-id='type-id-53'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1314'>
+      <parameter type-id='type-id-577'/>
+      <parameter type-id='type-id-559'/>
+      <parameter type-id='type-id-557'/>
+      <return type-id='type-id-53'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-1315'>
+      <parameter type-id='type-id-577'/>
+      <parameter type-id='type-id-557'/>
+      <return type-id='type-id-53'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-1316'>
+      <parameter type-id='type-id-577'/>
+      <parameter type-id='type-id-127'/>
+      <return type-id='type-id-53'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1317'>
       <parameter type-id='type-id-241'/>
       <return type-id='type-id-53'/>
@@ -10746,6 +10835,10 @@ 
       <parameter type-id='type-id-114'/>
       <return type-id='type-id-67'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1363'>
+      <parameter type-id='type-id-1398'/>
+      <return type-id='type-id-67'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1364'>
       <parameter type-id='type-id-241'/>
       <parameter type-id='type-id-1409'/>
@@ -10770,6 +10863,14 @@ 
       <parameter type-id='type-id-1384'/>
       <return type-id='type-id-1085'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1427'>
+      <parameter type-id='type-id-1343'/>
+      <parameter type-id='type-id-1384'/>
+      <return type-id='type-id-1085'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-1428'>
+      <return type-id='type-id-172'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1429'>
       <parameter type-id='type-id-515'/>
       <return type-id='type-id-172'/>
@@ -10815,6 +10916,9 @@ 
       <parameter type-id='type-id-399'/>
       <return type-id='type-id-399'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1437'>
+      <return type-id='type-id-533'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1438'>
       <parameter type-id='type-id-335'/>
       <parameter type-id='type-id-333'/>
@@ -10859,6 +10963,15 @@ 
       <parameter type-id='type-id-1360'/>
       <return type-id='type-id-1027'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1445'>
+      <parameter type-id='type-id-335'/>
+      <parameter type-id='type-id-279'/>
+      <parameter type-id='type-id-1093'/>
+      <parameter type-id='type-id-24'/>
+      <parameter type-id='type-id-333'/>
+      <parameter type-id='type-id-176'/>
+      <return type-id='type-id-1027'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1446'>
       <parameter type-id='type-id-335'/>
       <parameter type-id='type-id-1360'/>
@@ -10885,11 +10998,44 @@ 
       <parameter type-id='type-id-113'/>
       <return type-id='type-id-1027'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1449'>
+      <parameter type-id='type-id-1343'/>
+      <parameter type-id='type-id-24'/>
+      <parameter type-id='type-id-176'/>
+      <parameter type-id='type-id-333'/>
+      <return type-id='type-id-1027'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1450'>
       <parameter type-id='type-id-1347'/>
       <parameter type-id='type-id-1339'/>
       <return type-id='type-id-1027'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1451'>
+      <parameter type-id='type-id-279'/>
+      <parameter type-id='type-id-1088'/>
+      <parameter type-id='type-id-24'/>
+      <return type-id='type-id-1027'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-1452'>
+      <parameter type-id='type-id-279'/>
+      <parameter type-id='type-id-1088'/>
+      <parameter type-id='type-id-165'/>
+      <parameter type-id='type-id-176'/>
+      <return type-id='type-id-1027'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-1453'>
+      <parameter type-id='type-id-790'/>
+      <parameter type-id='type-id-1369'/>
+      <parameter type-id='type-id-24'/>
+      <return type-id='type-id-1027'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-1454'>
+      <parameter type-id='type-id-790'/>
+      <parameter type-id='type-id-1369'/>
+      <parameter type-id='type-id-165'/>
+      <parameter type-id='type-id-176'/>
+      <return type-id='type-id-1027'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1455'>
       <parameter type-id='type-id-387'/>
       <parameter type-id='type-id-335'/>
@@ -10923,6 +11069,18 @@ 
       <parameter type-id='type-id-261'/>
       <return type-id='type-id-104'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1460'>
+      <parameter type-id='type-id-279'/>
+      <parameter type-id='type-id-1088'/>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-332'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-1461'>
+      <parameter type-id='type-id-279'/>
+      <parameter type-id='type-id-1093'/>
+      <parameter type-id='type-id-53'/>
+      <return type-id='type-id-332'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1462'>
       <parameter type-id='type-id-1476'/>
       <return type-id='type-id-718'/>
@@ -10936,6 +11094,14 @@ 
       <parameter type-id='type-id-1402'/>
       <return type-id='type-id-113'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1468'>
+      <parameter type-id='type-id-335'/>
+      <parameter type-id='type-id-114'/>
+      <parameter type-id='type-id-114'/>
+      <parameter type-id='type-id-114'/>
+      <parameter type-id='type-id-114'/>
+      <return type-id='type-id-114'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1469'>
       <parameter type-id='type-id-1410'/>
       <parameter type-id='type-id-1409'/>
@@ -10949,6 +11115,13 @@ 
       <parameter type-id='type-id-1379'/>
       <return type-id='type-id-841'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1073'>
+      <return type-id='type-id-1538'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-1477'>
+      <parameter type-id='type-id-899'/>
+      <return type-id='type-id-1538'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1478'>
       <parameter type-id='type-id-308'/>
       <return type-id='type-id-1538'/>
@@ -11075,12 +11248,26 @@ 
       <parameter type-id='type-id-53'/>
       <return type-id='type-id-1538'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1501'>
+      <parameter type-id='type-id-1343'/>
+      <return type-id='type-id-1538'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1502'>
       <parameter type-id='type-id-1347'/>
       <parameter type-id='type-id-67'/>
       <parameter type-id='type-id-67'/>
       <return type-id='type-id-1538'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1503'>
+      <parameter type-id='type-id-279'/>
+      <return type-id='type-id-1538'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-1504'>
+      <parameter type-id='type-id-279'/>
+      <parameter type-id='type-id-1356'/>
+      <parameter type-id='type-id-1346'/>
+      <return type-id='type-id-1538'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1505'>
       <parameter type-id='type-id-1357'/>
       <return type-id='type-id-1538'/>
@@ -11124,6 +11311,15 @@ 
       <parameter type-id='type-id-75'/>
       <return type-id='type-id-1538'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1514'>
+      <parameter type-id='type-id-274'/>
+      <return type-id='type-id-1538'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-1515'>
+      <parameter type-id='type-id-274'/>
+      <parameter type-id='type-id-165'/>
+      <return type-id='type-id-1538'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1516'>
       <parameter type-id='type-id-139'/>
       <return type-id='type-id-1538'/>
@@ -11192,10 +11388,19 @@ 
       <parameter type-id='type-id-335'/>
       <return type-id='type-id-1538'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1528'>
+      <parameter type-id='type-id-577'/>
+      <parameter type-id='type-id-127'/>
+      <return type-id='type-id-1538'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1529'>
       <parameter type-id='type-id-241'/>
       <return type-id='type-id-1538'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1530'>
+      <parameter type-id='type-id-1418'/>
+      <return type-id='type-id-1538'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1531'>
       <parameter type-id='type-id-399'/>
       <return type-id='type-id-1538'/>
@@ -11210,6 +11415,10 @@ 
       <parameter type-id='type-id-114'/>
       <return type-id='type-id-1538'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1534'>
+      <parameter type-id='type-id-127'/>
+      <return type-id='type-id-1538'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1535'>
       <parameter type-id='type-id-127'/>
       <parameter type-id='type-id-1204'/>
@@ -11224,6 +11433,9 @@ 
       <parameter type-id='type-id-1550'/>
       <return type-id='type-id-1538'/>
     </function-type>
+    <function-type size-in-bits='64' id='type-id-1539'>
+      <return type-id='type-id-127'/>
+    </function-type>
     <function-type size-in-bits='64' id='type-id-1540'>
       <parameter type-id='type-id-515'/>
       <parameter type-id='type-id-1123'/>
@@ -11241,223 +11453,6 @@ 
       <parameter type-id='type-id-114'/>
       <return type-id='type-id-127'/>
     </function-type>
-    <function-type size-in-bits='64' id='type-id-1547'>
-      <parameter type-id='type-id-127'/>
-      <return type-id='type-id-127'/>
-    </function-type>
-    <type-decl name='void' id='type-id-1538'/>
-    <function-type size-in-bits='64' id='type-id-1112'>
-      <parameter type-id='type-id-614'/>
-      <parameter type-id='type-id-279'/>
-      <return type-id='type-id-165'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1153'>
-      <parameter type-id='type-id-279'/>
-      <return type-id='type-id-282'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1198'>
-      <parameter type-id='type-id-538'/>
-      <return type-id='type-id-530'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1220'>
-      <return type-id='type-id-53'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1224'>
-      <parameter type-id='type-id-24'/>
-      <parameter type-id='type-id-1143'/>
-      <return type-id='type-id-53'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1225'>
-      <parameter type-id='type-id-165'/>
-      <parameter type-id='type-id-1143'/>
-      <return type-id='type-id-53'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1256'>
-      <parameter type-id='type-id-335'/>
-      <parameter type-id='type-id-279'/>
-      <parameter type-id='type-id-1093'/>
-      <parameter type-id='type-id-125'/>
-      <return type-id='type-id-53'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1283'>
-      <parameter type-id='type-id-559'/>
-      <return type-id='type-id-53'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1284'>
-      <parameter type-id='type-id-559'/>
-      <parameter type-id='type-id-165'/>
-      <parameter type-id='type-id-332'/>
-      <return type-id='type-id-53'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1285'>
-      <parameter type-id='type-id-559'/>
-      <parameter type-id='type-id-559'/>
-      <parameter type-id='type-id-165'/>
-      <return type-id='type-id-53'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1286'>
-      <parameter type-id='type-id-1343'/>
-      <return type-id='type-id-53'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1287'>
-      <parameter type-id='type-id-1343'/>
-      <parameter type-id='type-id-125'/>
-      <return type-id='type-id-53'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1290'>
-      <parameter type-id='type-id-614'/>
-      <parameter type-id='type-id-279'/>
-      <return type-id='type-id-53'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1292'>
-      <parameter type-id='type-id-614'/>
-      <parameter type-id='type-id-279'/>
-      <parameter type-id='type-id-1350'/>
-      <return type-id='type-id-53'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1305'>
-      <parameter type-id='type-id-274'/>
-      <return type-id='type-id-53'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1314'>
-      <parameter type-id='type-id-577'/>
-      <parameter type-id='type-id-559'/>
-      <parameter type-id='type-id-557'/>
-      <return type-id='type-id-53'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1315'>
-      <parameter type-id='type-id-577'/>
-      <parameter type-id='type-id-557'/>
-      <return type-id='type-id-53'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1316'>
-      <parameter type-id='type-id-577'/>
-      <parameter type-id='type-id-127'/>
-      <return type-id='type-id-53'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1363'>
-      <parameter type-id='type-id-1398'/>
-      <return type-id='type-id-67'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1427'>
-      <parameter type-id='type-id-1343'/>
-      <parameter type-id='type-id-1384'/>
-      <return type-id='type-id-1085'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1428'>
-      <return type-id='type-id-172'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1437'>
-      <return type-id='type-id-533'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1445'>
-      <parameter type-id='type-id-335'/>
-      <parameter type-id='type-id-279'/>
-      <parameter type-id='type-id-1093'/>
-      <parameter type-id='type-id-24'/>
-      <parameter type-id='type-id-333'/>
-      <parameter type-id='type-id-176'/>
-      <return type-id='type-id-1027'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1449'>
-      <parameter type-id='type-id-1343'/>
-      <parameter type-id='type-id-24'/>
-      <parameter type-id='type-id-176'/>
-      <parameter type-id='type-id-333'/>
-      <return type-id='type-id-1027'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1451'>
-      <parameter type-id='type-id-279'/>
-      <parameter type-id='type-id-1088'/>
-      <parameter type-id='type-id-24'/>
-      <return type-id='type-id-1027'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1452'>
-      <parameter type-id='type-id-279'/>
-      <parameter type-id='type-id-1088'/>
-      <parameter type-id='type-id-165'/>
-      <parameter type-id='type-id-176'/>
-      <return type-id='type-id-1027'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1453'>
-      <parameter type-id='type-id-790'/>
-      <parameter type-id='type-id-1369'/>
-      <parameter type-id='type-id-24'/>
-      <return type-id='type-id-1027'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1454'>
-      <parameter type-id='type-id-790'/>
-      <parameter type-id='type-id-1369'/>
-      <parameter type-id='type-id-165'/>
-      <parameter type-id='type-id-176'/>
-      <return type-id='type-id-1027'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1460'>
-      <parameter type-id='type-id-279'/>
-      <parameter type-id='type-id-1088'/>
-      <parameter type-id='type-id-53'/>
-      <return type-id='type-id-332'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1461'>
-      <parameter type-id='type-id-279'/>
-      <parameter type-id='type-id-1093'/>
-      <parameter type-id='type-id-53'/>
-      <return type-id='type-id-332'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1468'>
-      <parameter type-id='type-id-335'/>
-      <parameter type-id='type-id-114'/>
-      <parameter type-id='type-id-114'/>
-      <parameter type-id='type-id-114'/>
-      <parameter type-id='type-id-114'/>
-      <return type-id='type-id-114'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1073'>
-      <return type-id='type-id-1538'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1477'>
-      <parameter type-id='type-id-899'/>
-      <return type-id='type-id-1538'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1501'>
-      <parameter type-id='type-id-1343'/>
-      <return type-id='type-id-1538'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1503'>
-      <parameter type-id='type-id-279'/>
-      <return type-id='type-id-1538'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1504'>
-      <parameter type-id='type-id-279'/>
-      <parameter type-id='type-id-1356'/>
-      <parameter type-id='type-id-1346'/>
-      <return type-id='type-id-1538'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1514'>
-      <parameter type-id='type-id-274'/>
-      <return type-id='type-id-1538'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1515'>
-      <parameter type-id='type-id-274'/>
-      <parameter type-id='type-id-165'/>
-      <return type-id='type-id-1538'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1528'>
-      <parameter type-id='type-id-577'/>
-      <parameter type-id='type-id-127'/>
-      <return type-id='type-id-1538'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1530'>
-      <parameter type-id='type-id-1418'/>
-      <return type-id='type-id-1538'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1534'>
-      <parameter type-id='type-id-127'/>
-      <return type-id='type-id-1538'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-1539'>
-      <return type-id='type-id-127'/>
-    </function-type>
     <function-type size-in-bits='64' id='type-id-1543'>
       <parameter type-id='type-id-279'/>
       <return type-id='type-id-127'/>
@@ -11477,48 +11472,10 @@ 
       <parameter type-id='type-id-1412'/>
       <return type-id='type-id-127'/>
     </function-type>
-  </abi-instr>
-  <abi-instr address-size='64' path='drivers/mmc/host/sdhci.mod.c' comp-dir-path='/ws/android/kernel/aosp/common-mainline/out/android-mainline/common' language='LANG_C89'>
-    <class-decl name='anon_vma' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1555'/>
-    <class-decl name='audit_context' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1556'/>
-    <class-decl name='backing_dev_info' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1557'/>
-    <class-decl name='bio_list' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1558'/>
-    <class-decl name='blk_plug' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1559'/>
-    <class-decl name='capture_control' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1560'/>
-    <class-decl name='cfs_rq' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1561'/>
-    <class-decl name='files_struct' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1562'/>
-    <class-decl name='fs_struct' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1563'/>
-    <class-decl name='ftrace_ret_stack' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1564'/>
-    <class-decl name='kernfs_iattrs' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1565'/>
-    <class-decl name='kernfs_open_node' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1566'/>
-    <class-decl name='kioctx_table' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1567'/>
-    <class-decl name='kmem_cache' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1568'/>
-    <class-decl name='linux_binfmt' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1569'/>
-    <class-decl name='mem_cgroup' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1570'/>
-    <class-decl name='module_notes_attrs' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1571'/>
-    <class-decl name='module_param_attrs' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1572'/>
-    <class-decl name='module_sect_attrs' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1573'/>
-    <class-decl name='nameidata' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1574'/>
-    <class-decl name='perf_event' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1575'/>
-    <class-decl name='pipe_inode_info' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1576'/>
-    <class-decl name='poll_table_struct' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1577'/>
-    <class-decl name='pollfd' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1578'/>
-    <class-decl name='rcu_node' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1579'/>
-    <class-decl name='reclaim_state' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1580'/>
-    <class-decl name='request_queue' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1581'/>
-    <class-decl name='rt_mutex_waiter' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1582'/>
-    <class-decl name='rt_rq' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1583'/>
-    <class-decl name='sched_class' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1584'/>
-    <class-decl name='seccomp_filter' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1585'/>
-    <class-decl name='seq_file' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1586'/>
-    <class-decl name='sock' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1587'/>
-    <class-decl name='task_group' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1588'/>
-    <class-decl name='trace_eval_map' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1589'/>
-    <class-decl name='trace_event_call' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1590'/>
-    <class-decl name='uprobe' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1591'/>
-    <class-decl name='user_namespace' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1592'/>
-    <class-decl name='workqueue_struct' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1593'/>
-    <class-decl name='xol_area' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-1594'/>
-    <var-decl name='__this_module' type-id='type-id-789' mangled-name='__this_module' visibility='default' filepath='/ws/android/kernel/aosp/common-mainline/out/android-mainline/common/drivers/mmc/host/sdhci.mod.c' line='11' column='1' elf-symbol-id='__this_module'/>
+    <function-type size-in-bits='64' id='type-id-1547'>
+      <parameter type-id='type-id-127'/>
+      <return type-id='type-id-127'/>
+    </function-type>
+    <type-decl name='void' id='type-id-1538'/>
   </abi-instr>
 </abi-corpus>
diff --git a/tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi b/tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi
index 4e09beca..e0fb36bd 100644
--- a/tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi
+++ b/tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0' soname='libgdbm.so.6'>
+<abi-corpus version='2.1' soname='libgdbm.so.6'>
   <elf-needed>
     <dependency name='libc.so.6'/>
     <dependency name='ld-linux-x86-64.so.2'/>
diff --git a/tests/data/test-read-dwarf/PR26261/PR26261-exe.abi b/tests/data/test-read-dwarf/PR26261/PR26261-exe.abi
index d393317a..0876677c 100644
--- a/tests/data/test-read-dwarf/PR26261/PR26261-exe.abi
+++ b/tests/data/test-read-dwarf/PR26261/PR26261-exe.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-common/PR26261/PR26261-exe'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='libc.so.6'/>
   </elf-needed>
diff --git a/tests/data/test-read-dwarf/PR27700/test-PR27700.abi b/tests/data/test-read-dwarf/PR27700/test-PR27700.abi
index 043ae0ca..026d735f 100644
--- a/tests/data/test-read-dwarf/PR27700/test-PR27700.abi
+++ b/tests/data/test-read-dwarf/PR27700/test-PR27700.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-common/PR27700/test-PR27700.o'>
+<abi-corpus version='2.1'>
   <elf-function-symbols>
     <elf-symbol name='foo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
   </elf-function-symbols>
diff --git a/tests/data/test-read-dwarf/PR28584/PR28584-smv.clang.o.abi b/tests/data/test-read-dwarf/PR28584/PR28584-smv.clang.o.abi
index b6ab4779..467bdd10 100644
--- a/tests/data/test-read-dwarf/PR28584/PR28584-smv.clang.o.abi
+++ b/tests/data/test-read-dwarf/PR28584/PR28584-smv.clang.o.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/PR28584/PR28584-smv.clang.o'>
+<abi-corpus version='2.1'>
   <elf-variable-symbols>
     <elf-symbol name='_ZN1N1S1DE' size='4' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
   </elf-variable-symbols>
diff --git a/tests/data/test-read-dwarf/libtest23.so.abi b/tests/data/test-read-dwarf/libtest23.so.abi
index 11e633fc..2bc154ed 100644
--- a/tests/data/test-read-dwarf/libtest23.so.abi
+++ b/tests/data/test-read-dwarf/libtest23.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/libtest23.so'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='libstdc++.so.6'/>
     <dependency name='libm.so.6'/>
diff --git a/tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi b/tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi
index f2aa3dfd..ecb284d2 100644
--- a/tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi
+++ b/tests/data/test-read-dwarf/libtest24-drop-fns-2.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/libtest24-drop-fns.so'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='libgcc_s.so.1'/>
     <dependency name='libc.so.6'/>
diff --git a/tests/data/test-read-dwarf/libtest24-drop-fns.so.abi b/tests/data/test-read-dwarf/libtest24-drop-fns.so.abi
index 9aa9cbe0..ecb284d2 100644
--- a/tests/data/test-read-dwarf/libtest24-drop-fns.so.abi
+++ b/tests/data/test-read-dwarf/libtest24-drop-fns.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/libtest24-drop-fns.so'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='libgcc_s.so.1'/>
     <dependency name='libc.so.6'/>
@@ -204,70 +204,85 @@ 
     <qualified-type-def type-id='type-id-55' const='yes' id='type-id-56'/>
     <reference-type-def kind='lvalue' type-id='type-id-56' size-in-bits='64' id='type-id-57'/>
     <qualified-type-def type-id='type-id-58' const='yes' id='type-id-59'/>
-    <qualified-type-def type-id='type-id-60' const='yes' id='type-id-61'/>
+    <reference-type-def kind='lvalue' type-id='type-id-59' size-in-bits='64' id='type-id-60'/>
+    <pointer-type-def type-id='type-id-59' size-in-bits='64' id='type-id-61'/>
     <qualified-type-def type-id='type-id-62' const='yes' id='type-id-63'/>
-    <qualified-type-def type-id='type-id-64' const='yes' id='type-id-65'/>
-    <qualified-type-def type-id='type-id-66' const='yes' id='type-id-67'/>
-    <reference-type-def kind='lvalue' type-id='type-id-67' size-in-bits='64' id='type-id-68'/>
-    <qualified-type-def type-id='type-id-27' const='yes' id='type-id-69'/>
-    <pointer-type-def type-id='type-id-69' size-in-bits='64' id='type-id-70'/>
-    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-71'/>
-    <qualified-type-def type-id='type-id-20' const='yes' id='type-id-72'/>
-    <pointer-type-def type-id='type-id-72' size-in-bits='64' id='type-id-73'/>
-    <pointer-type-def type-id='type-id-73' size-in-bits='64' id='type-id-74'/>
-    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-75'/>
-    <pointer-type-def type-id='type-id-32' size-in-bits='64' id='type-id-76'/>
+    <pointer-type-def type-id='type-id-63' size-in-bits='64' id='type-id-64'/>
+    <qualified-type-def type-id='type-id-65' const='yes' id='type-id-66'/>
+    <qualified-type-def type-id='type-id-67' const='yes' id='type-id-68'/>
+    <reference-type-def kind='lvalue' type-id='type-id-68' size-in-bits='64' id='type-id-69'/>
+    <pointer-type-def type-id='type-id-68' size-in-bits='64' id='type-id-70'/>
+    <qualified-type-def type-id='type-id-71' const='yes' id='type-id-72'/>
+    <reference-type-def kind='lvalue' type-id='type-id-72' size-in-bits='64' id='type-id-73'/>
+    <qualified-type-def type-id='type-id-74' const='yes' id='type-id-75'/>
+    <reference-type-def kind='lvalue' type-id='type-id-75' size-in-bits='64' id='type-id-76'/>
+    <qualified-type-def type-id='type-id-27' const='yes' id='type-id-77'/>
     <pointer-type-def type-id='type-id-77' size-in-bits='64' id='type-id-78'/>
-    <pointer-type-def type-id='type-id-6' size-in-bits='64' id='type-id-79'/>
-    <pointer-type-def type-id='type-id-80' size-in-bits='64' id='type-id-8'/>
-    <pointer-type-def type-id='type-id-20' size-in-bits='64' id='type-id-81'/>
+    <qualified-type-def type-id='type-id-17' const='yes' id='type-id-79'/>
+    <qualified-type-def type-id='type-id-20' const='yes' id='type-id-80'/>
+    <pointer-type-def type-id='type-id-80' size-in-bits='64' id='type-id-81'/>
     <pointer-type-def type-id='type-id-81' size-in-bits='64' id='type-id-82'/>
+    <pointer-type-def type-id='type-id-23' size-in-bits='64' id='type-id-83'/>
+    <pointer-type-def type-id='type-id-32' size-in-bits='64' id='type-id-84'/>
+    <pointer-type-def type-id='type-id-55' size-in-bits='64' id='type-id-85'/>
+    <reference-type-def kind='lvalue' type-id='type-id-58' size-in-bits='64' id='type-id-86'/>
+    <pointer-type-def type-id='type-id-58' size-in-bits='64' id='type-id-87'/>
+    <pointer-type-def type-id='type-id-88' size-in-bits='64' id='type-id-89'/>
+    <reference-type-def kind='lvalue' type-id='type-id-62' size-in-bits='64' id='type-id-90'/>
+    <pointer-type-def type-id='type-id-62' size-in-bits='64' id='type-id-91'/>
+    <reference-type-def kind='lvalue' type-id='type-id-67' size-in-bits='64' id='type-id-92'/>
+    <pointer-type-def type-id='type-id-67' size-in-bits='64' id='type-id-93'/>
+    <pointer-type-def type-id='type-id-94' size-in-bits='64' id='type-id-95'/>
+    <pointer-type-def type-id='type-id-6' size-in-bits='64' id='type-id-96'/>
+    <pointer-type-def type-id='type-id-97' size-in-bits='64' id='type-id-8'/>
+    <pointer-type-def type-id='type-id-20' size-in-bits='64' id='type-id-98'/>
+    <pointer-type-def type-id='type-id-98' size-in-bits='64' id='type-id-99'/>
     <class-decl name='_IO_FILE' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-25'/>
     <namespace-decl name='std'>
-      <class-decl name='allocator&lt;char&gt;' size-in-bits='8' visibility='default' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='92' column='1' id='type-id-83'>
+      <class-decl name='allocator&lt;char&gt;' size-in-bits='8' visibility='default' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='92' column='1' id='type-id-55'>
         <base-class access='public' layout-offset-in-bits='0' type-id='type-id-39'/>
         <member-type access='public'>
-          <typedef-decl name='size_type' type-id='type-id-85' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='95' column='1' id='type-id-84'/>
+          <typedef-decl name='size_type' type-id='type-id-101' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='95' column='1' id='type-id-100'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='reference' type-id='type-id-41' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='99' column='1' id='type-id-86'/>
+          <typedef-decl name='reference' type-id='type-id-41' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='99' column='1' id='type-id-102'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='const_reference' type-id='type-id-48' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='100' column='1' id='type-id-87'/>
+          <typedef-decl name='const_reference' type-id='type-id-48' filepath='/usr/include/c++/5.3.1/bits/allocator.h' line='100' column='1' id='type-id-103'/>
         </member-type>
       </class-decl>
-      <class-decl name='basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;' size-in-bits='64' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2510' column='1' id='type-id-55'>
+      <class-decl name='basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;' size-in-bits='64' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2510' column='1' id='type-id-58'>
         <member-type access='public'>
-          <typedef-decl name='allocator_type' type-id='type-id-83' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2518' column='1' id='type-id-88'/>
+          <typedef-decl name='allocator_type' type-id='type-id-55' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2518' column='1' id='type-id-104'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='size_type' type-id='type-id-84' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2519' column='1' id='type-id-60'/>
+          <typedef-decl name='size_type' type-id='type-id-100' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2519' column='1' id='type-id-65'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='reference' type-id='type-id-86' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2521' column='1' id='type-id-89'/>
+          <typedef-decl name='reference' type-id='type-id-102' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2521' column='1' id='type-id-105'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='const_reference' type-id='type-id-87' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2522' column='1' id='type-id-90'/>
+          <typedef-decl name='const_reference' type-id='type-id-103' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2522' column='1' id='type-id-106'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='iterator' type-id='type-id-92' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2525' column='1' id='type-id-91'/>
+          <typedef-decl name='iterator' type-id='type-id-108' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2525' column='1' id='type-id-107'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='const_iterator' type-id='type-id-94' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2527' column='1' id='type-id-93'/>
+          <typedef-decl name='const_iterator' type-id='type-id-110' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2527' column='1' id='type-id-109'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='const_reverse_iterator' type-id='type-id-96' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2528' column='1' id='type-id-95'/>
+          <typedef-decl name='const_reverse_iterator' type-id='type-id-112' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2528' column='1' id='type-id-111'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='reverse_iterator' type-id='type-id-98' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2529' column='1' id='type-id-97'/>
+          <typedef-decl name='reverse_iterator' type-id='type-id-114' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2529' column='1' id='type-id-113'/>
         </member-type>
         <member-type access='private'>
-          <class-decl name='_Rep_base' size-in-bits='192' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2546' column='1' id='type-id-99'>
+          <class-decl name='_Rep_base' size-in-bits='192' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2546' column='1' id='type-id-115'>
             <data-member access='public' layout-offset-in-bits='0'>
-              <var-decl name='_M_length' type-id='type-id-60' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2548' column='1'/>
+              <var-decl name='_M_length' type-id='type-id-65' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2548' column='1'/>
             </data-member>
             <data-member access='public' layout-offset-in-bits='64'>
-              <var-decl name='_M_capacity' type-id='type-id-60' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2549' column='1'/>
+              <var-decl name='_M_capacity' type-id='type-id-65' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2549' column='1'/>
             </data-member>
             <data-member access='public' layout-offset-in-bits='128'>
               <var-decl name='_M_refcount' type-id='type-id-22' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2550' column='1'/>
@@ -275,10 +290,10 @@ 
           </class-decl>
         </member-type>
         <member-type access='private'>
-          <class-decl name='_Rep' size-in-bits='192' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2553' column='1' id='type-id-58'>
-            <base-class access='public' layout-offset-in-bits='0' type-id='type-id-99'/>
+          <class-decl name='_Rep' size-in-bits='192' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2553' column='1' id='type-id-62'>
+            <base-class access='public' layout-offset-in-bits='0' type-id='type-id-115'/>
             <data-member access='public' static='yes'>
-              <var-decl name='_S_max_size' type-id='type-id-61' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.tcc' line='494' column='1'/>
+              <var-decl name='_S_max_size' type-id='type-id-66' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.tcc' line='494' column='1'/>
             </data-member>
             <data-member access='public' static='yes'>
               <var-decl name='_S_terminal' type-id='type-id-47' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.tcc' line='499' column='1'/>
@@ -289,67 +304,73 @@ 
           </class-decl>
         </member-type>
         <member-type access='private'>
-          <class-decl name='_Alloc_hider' size-in-bits='64' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2670' column='1' id='type-id-100'>
-            <base-class access='public' layout-offset-in-bits='0' type-id='type-id-83'/>
+          <class-decl name='_Alloc_hider' size-in-bits='64' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2670' column='1' id='type-id-88'>
+            <base-class access='public' layout-offset-in-bits='0' type-id='type-id-55'/>
             <data-member access='public' layout-offset-in-bits='0'>
               <var-decl name='_M_p' type-id='type-id-24' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2675' column='1'/>
             </data-member>
           </class-decl>
         </member-type>
         <data-member access='public' static='yes'>
-          <var-decl name='npos' type-id='type-id-61' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2683' column='1'/>
+          <var-decl name='npos' type-id='type-id-66' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2683' column='1'/>
         </data-member>
         <data-member access='private' layout-offset-in-bits='0'>
-          <var-decl name='_M_dataplus' type-id='type-id-100' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2687' column='1'/>
+          <var-decl name='_M_dataplus' type-id='type-id-88' visibility='default' filepath='/usr/include/c++/5.3.1/bits/basic_string.h' line='2687' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='char_traits&lt;char&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='233' column='1' id='type-id-101'>
+      <class-decl name='char_traits&lt;char&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='233' column='1' id='type-id-116'>
         <member-type access='public'>
-          <typedef-decl name='char_type' type-id='type-id-2' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='235' column='1' id='type-id-62'/>
+          <typedef-decl name='char_type' type-id='type-id-2' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='235' column='1' id='type-id-67'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='int_type' type-id='type-id-11' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='236' column='1' id='type-id-64'/>
+          <typedef-decl name='int_type' type-id='type-id-11' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='236' column='1' id='type-id-71'/>
         </member-type>
+        <member-function access='public' static='yes'>
+          <function-decl name='length' mangled-name='_ZNSt11char_traitsIcE6lengthEPKc' filepath='/usr/include/c++/5.3.1/bits/char_traits.h' line='266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZNSt11char_traitsIcE6lengthEPKc'>
+            <parameter type-id='type-id-70'/>
+            <return type-id='type-id-101'/>
+          </function-decl>
+        </member-function>
       </class-decl>
-      <typedef-decl name='string' type-id='type-id-55' filepath='/usr/include/c++/5.3.1/bits/stringfwd.h' line='74' column='1' id='type-id-66'/>
-      <typedef-decl name='ostream' type-id='type-id-102' filepath='/usr/include/c++/5.3.1/iosfwd' line='141' column='1' id='type-id-77'/>
-      <typedef-decl name='size_t' type-id='type-id-17' filepath='/usr/include/c++/5.3.1/x86_64-redhat-linux/bits/c++config.h' line='1969' column='1' id='type-id-85'/>
-      <class-decl name='basic_ostream&lt;char, std::char_traits&lt;char&gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-102'/>
-      <class-decl name='reverse_iterator&lt;__gnu_cxx::__normal_iterator&lt;char const*, 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-96'/>
-      <class-decl name='reverse_iterator&lt;__gnu_cxx::__normal_iterator&lt;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-98'/>
+      <typedef-decl name='string' type-id='type-id-58' filepath='/usr/include/c++/5.3.1/bits/stringfwd.h' line='74' column='1' id='type-id-74'/>
+      <typedef-decl name='ostream' type-id='type-id-117' filepath='/usr/include/c++/5.3.1/iosfwd' line='141' column='1' id='type-id-94'/>
+      <typedef-decl name='size_t' type-id='type-id-17' filepath='/usr/include/c++/5.3.1/x86_64-redhat-linux/bits/c++config.h' line='1969' column='1' id='type-id-101'/>
+      <class-decl name='basic_ostream&lt;char, std::char_traits&lt;char&gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-117'/>
+      <class-decl name='reverse_iterator&lt;__gnu_cxx::__normal_iterator&lt;char const*, 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-112'/>
+      <class-decl name='reverse_iterator&lt;__gnu_cxx::__normal_iterator&lt;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-114'/>
       <function-decl name='operator+&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt;' mangled-name='_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_' filepath='/usr/include/c++/5.3.1/bits/basic_string.tcc' line='1151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_'>
         <parameter type-id='type-id-28' name='__lhs' filepath='/usr/include/c++/5.3.1/bits/basic_string.tcc' line='1151' column='1'/>
-        <parameter type-id='type-id-57' name='__rhs' filepath='/usr/include/c++/5.3.1/bits/basic_string.tcc' line='1152' column='1'/>
-        <return type-id='type-id-55'/>
+        <parameter type-id='type-id-60' name='__rhs' filepath='/usr/include/c++/5.3.1/bits/basic_string.tcc' line='1152' column='1'/>
+        <return type-id='type-id-58'/>
       </function-decl>
     </namespace-decl>
     <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'>
-      <parameter type-id='type-id-68' name='s' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='14' column='1'/>
-      <return type-id='type-id-66'/>
+      <parameter type-id='type-id-76' name='s' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='14' column='1'/>
+      <return type-id='type-id-74'/>
     </function-decl>
     <function-decl name='bar' mangled-name='_Z3barRKSs' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='21' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Z3barRKSs'>
-      <parameter type-id='type-id-68' name='str' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='21' column='1'/>
-      <return type-id='type-id-78'/>
+      <parameter type-id='type-id-76' name='str' filepath='/home/dodji/git/libabigail.git/suppr/tests/data/test-read-dwarf/test24-drop-fns.cc' line='21' column='1'/>
+      <return type-id='type-id-95'/>
     </function-decl>
     <namespace-decl name='__gnu_cxx'>
       <class-decl name='new_allocator&lt;char&gt;' size-in-bits='8' visibility='default' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='58' column='1' id='type-id-39'>
         <member-type access='public'>
-          <typedef-decl name='size_type' type-id='type-id-85' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='61' column='1' id='type-id-103'/>
+          <typedef-decl name='size_type' type-id='type-id-101' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='61' column='1' id='type-id-118'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='pointer' type-id='type-id-24' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='63' column='1' id='type-id-104'/>
+          <typedef-decl name='pointer' type-id='type-id-24' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='63' column='1' id='type-id-119'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='const_pointer' type-id='type-id-28' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='64' column='1' id='type-id-105'/>
+          <typedef-decl name='const_pointer' type-id='type-id-28' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='64' column='1' id='type-id-120'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='reference' type-id='type-id-41' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='65' column='1' id='type-id-106'/>
+          <typedef-decl name='reference' type-id='type-id-41' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='65' column='1' id='type-id-121'/>
         </member-type>
         <member-type access='public'>
-          <typedef-decl name='const_reference' type-id='type-id-48' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='66' column='1' id='type-id-107'/>
+          <typedef-decl name='const_reference' type-id='type-id-48' filepath='/usr/include/c++/5.3.1/ext/new_allocator.h' line='66' column='1' id='type-id-122'/>
         </member-type>
       </class-decl>
-      <class-decl name='__numeric_traits_integer&lt;char&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-108'>
+      <class-decl name='__numeric_traits_integer&lt;char&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-123'>
         <data-member access='public' static='yes'>
           <var-decl name='__min' type-id='type-id-47' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
         </data-member>
@@ -363,7 +384,7 @@ 
           <var-decl name='__digits' type-id='type-id-50' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__numeric_traits_integer&lt;int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-109'>
+      <class-decl name='__numeric_traits_integer&lt;int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-124'>
         <data-member access='public' static='yes'>
           <var-decl name='__min' type-id='type-id-50' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIiE5__minE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
         </data-member>
@@ -377,7 +398,7 @@ 
           <var-decl name='__digits' type-id='type-id-50' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__numeric_traits_integer&lt;long int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-110'>
+      <class-decl name='__numeric_traits_integer&lt;long int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-125'>
         <data-member access='public' static='yes'>
           <var-decl name='__min' type-id='type-id-51' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIlE5__minE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
         </data-member>
@@ -391,12 +412,12 @@ 
           <var-decl name='__digits' type-id='type-id-50' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__numeric_traits_integer&lt;long unsigned int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-111'>
+      <class-decl name='__numeric_traits_integer&lt;long unsigned int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-126'>
         <data-member access='public' static='yes'>
-          <var-decl name='__min' type-id='type-id-71' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
+          <var-decl name='__min' type-id='type-id-79' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
         </data-member>
         <data-member access='public' static='yes'>
-          <var-decl name='__max' type-id='type-id-71' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='59' column='1'/>
+          <var-decl name='__max' type-id='type-id-79' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='59' column='1'/>
         </data-member>
         <data-member access='public' static='yes'>
           <var-decl name='__is_signed' type-id='type-id-46' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='63' column='1'/>
@@ -405,7 +426,7 @@ 
           <var-decl name='__digits' type-id='type-id-50' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerImE8__digitsE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__numeric_traits_integer&lt;short int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-112'>
+      <class-decl name='__numeric_traits_integer&lt;short int&gt;' size-in-bits='8' is-struct='yes' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='55' column='1' id='type-id-127'>
         <data-member access='public' static='yes'>
           <var-decl name='__min' type-id='type-id-54' mangled-name='_ZN9__gnu_cxx24__numeric_traits_integerIsE5__minE' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='58' column='1'/>
         </data-member>
@@ -419,8 +440,8 @@ 
           <var-decl name='__digits' type-id='type-id-50' visibility='default' filepath='/usr/include/c++/5.3.1/ext/numeric_traits.h' line='64' column='1'/>
         </data-member>
       </class-decl>
-      <class-decl name='__normal_iterator&lt;char const*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-94'/>
-      <class-decl name='__normal_iterator&lt;char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-92'/>
+      <class-decl name='__normal_iterator&lt;char const*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-110'/>
+      <class-decl name='__normal_iterator&lt;char*, std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; &gt;' visibility='default' is-declaration-only='yes' id='type-id-108'/>
     </namespace-decl>
     <function-decl name='setlocale' filepath='/usr/include/locale.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-11'/>
@@ -428,95 +449,95 @@ 
       <return type-id='type-id-24'/>
     </function-decl>
     <function-decl name='localeconv' filepath='/usr/include/locale.h' line='127' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <return type-id='type-id-75'/>
+      <return type-id='type-id-83'/>
     </function-decl>
     <function-decl name='wcscpy' filepath='/usr/include/wchar.h' line='147' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-98'/>
       <parameter type-id='type-id-81'/>
-      <parameter type-id='type-id-73'/>
-      <return type-id='type-id-81'/>
+      <return type-id='type-id-98'/>
     </function-decl>
     <function-decl name='wcsncpy' filepath='/usr/include/wchar.h' line='150' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-98'/>
       <parameter type-id='type-id-81'/>
-      <parameter type-id='type-id-73'/>
       <parameter type-id='type-id-36'/>
-      <return type-id='type-id-81'/>
+      <return type-id='type-id-98'/>
     </function-decl>
     <function-decl name='wcscat' filepath='/usr/include/wchar.h' line='155' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-98'/>
       <parameter type-id='type-id-81'/>
-      <parameter type-id='type-id-73'/>
-      <return type-id='type-id-81'/>
+      <return type-id='type-id-98'/>
     </function-decl>
     <function-decl name='wcsncat' filepath='/usr/include/wchar.h' line='158' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-98'/>
       <parameter type-id='type-id-81'/>
-      <parameter type-id='type-id-73'/>
       <parameter type-id='type-id-36'/>
-      <return type-id='type-id-81'/>
+      <return type-id='type-id-98'/>
     </function-decl>
     <function-decl name='wcscmp' filepath='/usr/include/wchar.h' line='163' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-81'/>
       <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='wcsncmp' filepath='/usr/include/wchar.h' line='166' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-81'/>
       <parameter type-id='type-id-36'/>
       <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='wcscoll' filepath='/usr/include/wchar.h' line='192' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-81'/>
       <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='wcsxfrm' filepath='/usr/include/wchar.h' line='196' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-98'/>
       <parameter type-id='type-id-81'/>
-      <parameter type-id='type-id-73'/>
       <parameter type-id='type-id-36'/>
       <return type-id='type-id-36'/>
     </function-decl>
     <function-decl name='wcscspn' filepath='/usr/include/wchar.h' line='252' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-81'/>
       <return type-id='type-id-36'/>
     </function-decl>
     <function-decl name='wcsspn' filepath='/usr/include/wchar.h' line='256' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-81'/>
       <return type-id='type-id-36'/>
     </function-decl>
     <function-decl name='wcstok' filepath='/usr/include/wchar.h' line='282' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-98'/>
       <parameter type-id='type-id-81'/>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-82'/>
-      <return type-id='type-id-81'/>
+      <parameter type-id='type-id-99'/>
+      <return type-id='type-id-98'/>
     </function-decl>
     <function-decl name='wcslen' filepath='/usr/include/wchar.h' line='287' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-81'/>
       <return type-id='type-id-36'/>
     </function-decl>
     <function-decl name='wmemcmp' filepath='/usr/include/wchar.h' line='325' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-81'/>
       <parameter type-id='type-id-36'/>
       <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='wmemcpy' filepath='/usr/include/wchar.h' line='329' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-98'/>
       <parameter type-id='type-id-81'/>
-      <parameter type-id='type-id-73'/>
       <parameter type-id='type-id-36'/>
-      <return type-id='type-id-81'/>
+      <return type-id='type-id-98'/>
     </function-decl>
     <function-decl name='wmemmove' filepath='/usr/include/wchar.h' line='334' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <parameter type-id='type-id-98'/>
       <parameter type-id='type-id-81'/>
-      <parameter type-id='type-id-73'/>
       <parameter type-id='type-id-36'/>
-      <return type-id='type-id-81'/>
+      <return type-id='type-id-98'/>
     </function-decl>
     <function-decl name='wmemset' filepath='/usr/include/wchar.h' line='338' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-98'/>
       <parameter type-id='type-id-20'/>
       <parameter type-id='type-id-36'/>
-      <return type-id='type-id-81'/>
+      <return type-id='type-id-98'/>
     </function-decl>
     <function-decl name='btowc' filepath='/usr/include/wchar.h' line='353' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-11'/>
@@ -531,74 +552,74 @@ 
       <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='mbrtowc' filepath='/usr/include/wchar.h' line='365' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-98'/>
       <parameter type-id='type-id-28'/>
       <parameter type-id='type-id-36'/>
-      <parameter type-id='type-id-76'/>
+      <parameter type-id='type-id-84'/>
       <return type-id='type-id-36'/>
     </function-decl>
     <function-decl name='wcrtomb' filepath='/usr/include/wchar.h' line='370' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-24'/>
       <parameter type-id='type-id-20'/>
-      <parameter type-id='type-id-76'/>
+      <parameter type-id='type-id-84'/>
       <return type-id='type-id-36'/>
     </function-decl>
     <function-decl name='mbrlen' filepath='/usr/include/wchar.h' line='376' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-28'/>
       <parameter type-id='type-id-36'/>
-      <parameter type-id='type-id-76'/>
+      <parameter type-id='type-id-84'/>
       <return type-id='type-id-36'/>
     </function-decl>
     <function-decl name='mbsrtowcs' filepath='/usr/include/wchar.h' line='408' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-98'/>
       <parameter type-id='type-id-49'/>
       <parameter type-id='type-id-36'/>
-      <parameter type-id='type-id-76'/>
+      <parameter type-id='type-id-84'/>
       <return type-id='type-id-36'/>
     </function-decl>
     <function-decl name='wcsrtombs' filepath='/usr/include/wchar.h' line='414' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-24'/>
-      <parameter type-id='type-id-74'/>
+      <parameter type-id='type-id-82'/>
       <parameter type-id='type-id-36'/>
-      <parameter type-id='type-id-76'/>
+      <parameter type-id='type-id-84'/>
       <return type-id='type-id-36'/>
     </function-decl>
     <function-decl name='wcstod' filepath='/usr/include/wchar.h' line='450' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-82'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-99'/>
       <return type-id='type-id-9'/>
     </function-decl>
     <function-decl name='wcstof' filepath='/usr/include/wchar.h' line='457' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-82'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-99'/>
       <return type-id='type-id-10'/>
     </function-decl>
     <function-decl name='wcstold' filepath='/usr/include/wchar.h' line='459' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-82'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-99'/>
       <return type-id='type-id-12'/>
     </function-decl>
     <function-decl name='wcstol' filepath='/usr/include/wchar.h' line='468' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-82'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-99'/>
       <parameter type-id='type-id-11'/>
       <return type-id='type-id-13'/>
     </function-decl>
     <function-decl name='wcstoul' filepath='/usr/include/wchar.h' line='473' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-82'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-99'/>
       <parameter type-id='type-id-11'/>
       <return type-id='type-id-17'/>
     </function-decl>
     <function-decl name='wcstoll' filepath='/usr/include/wchar.h' line='483' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-82'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-99'/>
       <parameter type-id='type-id-11'/>
       <return type-id='type-id-14'/>
     </function-decl>
     <function-decl name='wcstoull' filepath='/usr/include/wchar.h' line='490' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-82'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-99'/>
       <parameter type-id='type-id-11'/>
       <return type-id='type-id-15'/>
     </function-decl>
@@ -609,72 +630,72 @@ 
     </function-decl>
     <function-decl name='fwprintf' filepath='/usr/include/wchar.h' line='594' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-38'/>
-      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-81'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='wprintf' filepath='/usr/include/wchar.h' line='601' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-81'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='swprintf' filepath='/usr/include/wchar.h' line='604' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-98'/>
       <parameter type-id='type-id-36'/>
-      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-81'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='vfwprintf' filepath='/usr/include/wchar.h' line='612' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-38'/>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-79'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-96'/>
       <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='vwprintf' filepath='/usr/include/wchar.h' line='620' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-79'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-96'/>
       <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='vswprintf' filepath='/usr/include/wchar.h' line='625' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-98'/>
       <parameter type-id='type-id-36'/>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-79'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-96'/>
       <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='fwscanf' filepath='/usr/include/wchar.h' line='635' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-38'/>
-      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-81'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='wscanf' filepath='/usr/include/wchar.h' line='642' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-81'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='swscanf' filepath='/usr/include/wchar.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-81'/>
       <parameter is-variadic='yes'/>
       <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='vfwscanf' filepath='/usr/include/wchar.h' line='689' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-38'/>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-79'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-96'/>
       <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='vwscanf' filepath='/usr/include/wchar.h' line='697' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-79'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-96'/>
       <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='vswscanf' filepath='/usr/include/wchar.h' line='701' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-79'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-96'/>
       <return type-id='type-id-11'/>
     </function-decl>
     <function-decl name='fgetwc' filepath='/usr/include/wchar.h' line='745' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -703,13 +724,13 @@ 
       <return type-id='type-id-37'/>
     </function-decl>
     <function-decl name='fgetws' filepath='/usr/include/wchar.h' line='774' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-98'/>
       <parameter type-id='type-id-11'/>
       <parameter type-id='type-id-38'/>
-      <return type-id='type-id-81'/>
+      <return type-id='type-id-98'/>
     </function-decl>
     <function-decl name='fputws' filepath='/usr/include/wchar.h' line='781' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-73'/>
+      <parameter type-id='type-id-81'/>
       <parameter type-id='type-id-38'/>
       <return type-id='type-id-11'/>
     </function-decl>
@@ -719,10 +740,10 @@ 
       <return type-id='type-id-37'/>
     </function-decl>
     <function-decl name='wcsftime' filepath='/usr/include/wchar.h' line='855' column='1' visibility='default' binding='global' size-in-bits='64'>
-      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-98'/>
       <parameter type-id='type-id-36'/>
-      <parameter type-id='type-id-73'/>
-      <parameter type-id='type-id-70'/>
+      <parameter type-id='type-id-81'/>
+      <parameter type-id='type-id-78'/>
       <return type-id='type-id-36'/>
     </function-decl>
     <function-decl name='wctype' filepath='/usr/include/wctype.h' line='171' column='1' visibility='default' binding='global' size-in-bits='64'>
@@ -743,6 +764,6 @@ 
       <parameter type-id='type-id-35'/>
       <return type-id='type-id-37'/>
     </function-decl>
-    <type-decl name='void' id='type-id-80'/>
+    <type-decl name='void' id='type-id-97'/>
   </abi-instr>
 </abi-corpus>
diff --git a/tests/data/test-read-dwarf/test-PR26568-1.o.abi b/tests/data/test-read-dwarf/test-PR26568-1.o.abi
index 1056dc9a..f3994ea1 100644
--- a/tests/data/test-read-dwarf/test-PR26568-1.o.abi
+++ b/tests/data/test-read-dwarf/test-PR26568-1.o.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-common/test-PR26568-1.o'>
+<abi-corpus version='2.1'>
   <elf-function-symbols>
     <elf-symbol name='fun' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
   </elf-function-symbols>
diff --git a/tests/data/test-read-dwarf/test-PR26568-2.o.abi b/tests/data/test-read-dwarf/test-PR26568-2.o.abi
index b67b4386..044e8b48 100644
--- a/tests/data/test-read-dwarf/test-PR26568-2.o.abi
+++ b/tests/data/test-read-dwarf/test-PR26568-2.o.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-common/test-PR26568-2.o'>
+<abi-corpus version='2.1'>
   <elf-function-symbols>
     <elf-symbol name='fun' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
   </elf-function-symbols>
diff --git a/tests/data/test-read-dwarf/test-libaaudio.so.abi b/tests/data/test-read-dwarf/test-libaaudio.so.abi
index ac82c7d3..f8781764 100644
--- a/tests/data/test-read-dwarf/test-libaaudio.so.abi
+++ b/tests/data/test-read-dwarf/test-libaaudio.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test-libaaudio.so' soname='libaaudio.so'>
+<abi-corpus version='2.1' soname='libaaudio.so'>
   <elf-needed>
     <dependency name='libaaudio_internal.so'/>
     <dependency name='libaudioclient.so'/>
diff --git a/tests/data/test-read-dwarf/test-libandroid.so.abi b/tests/data/test-read-dwarf/test-libandroid.so.abi
index d4c19570..c35285ae 100644
--- a/tests/data/test-read-dwarf/test-libandroid.so.abi
+++ b/tests/data/test-read-dwarf/test-libandroid.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test-libandroid.so' soname='libandroid.so'>
+<abi-corpus version='2.1' soname='libandroid.so'>
   <elf-needed>
     <dependency name='liblog.so'/>
     <dependency name='libhidlbase.so'/>
diff --git a/tests/data/test-read-dwarf/test-suppressed-alias.o.abi b/tests/data/test-read-dwarf/test-suppressed-alias.o.abi
index 74742b40..f7c7c66a 100644
--- a/tests/data/test-read-dwarf/test-suppressed-alias.o.abi
+++ b/tests/data/test-read-dwarf/test-suppressed-alias.o.abi
@@ -1,16 +1,18 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test-suppressed-alias.o'>
+<abi-corpus version='2.1'>
   <elf-function-symbols>
     <elf-symbol name='alias_func' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='main_func' type='func-type' binding='global-binding' visibility='default-visibility' alias='alias_func' is-defined='yes'/>
   </elf-function-symbols>
   <elf-variable-symbols>
     <elf-symbol name='alias_var' size='4' type='object-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='main_var' size='4' type='object-type' binding='global-binding' visibility='default-visibility' alias='alias_var' is-defined='yes'/>
   </elf-variable-symbols>
   <abi-instr address-size='64' path='test.c' comp-dir-path='/ws/android/aosp/kernel-build-tools/external/libabigail' language='LANG_C99'>
     <type-decl name='int' size-in-bits='32' id='95e97e5e'/>
-    <function-decl name='main_func' mangled-name='main_func' filepath='/ws/android/aosp/kernel-build-tools/external/libabigail/test.c' line='7' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alias_func'>
+    <function-decl name='main_func' mangled-name='main_func' filepath='/ws/android/aosp/kernel-build-tools/external/libabigail/test.c' line='7' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='main_func'>
       <return type-id='48b5725f'/>
     </function-decl>
-    <var-decl name='main_var' type-id='95e97e5e' mangled-name='main_var' visibility='default' filepath='/ws/android/aosp/kernel-build-tools/external/libabigail/test.c' line='14' column='1' elf-symbol-id='alias_var'/>
+    <var-decl name='main_var' type-id='95e97e5e' mangled-name='main_var' visibility='default' filepath='/ws/android/aosp/kernel-build-tools/external/libabigail/test.c' line='14' column='1' elf-symbol-id='main_var'/>
     <type-decl name='void' id='48b5725f'/>
   </abi-instr>
 </abi-corpus>
diff --git a/tests/data/test-read-dwarf/test0.abi b/tests/data/test-read-dwarf/test0.abi
index c6656367..1e799912 100644
--- a/tests/data/test-read-dwarf/test0.abi
+++ b/tests/data/test-read-dwarf/test0.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test0'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='libstdc++.so.6'/>
     <dependency name='libm.so.6'/>
diff --git a/tests/data/test-read-dwarf/test0.hash.abi b/tests/data/test-read-dwarf/test0.hash.abi
index d33a763f..27bd847f 100644
--- a/tests/data/test-read-dwarf/test0.hash.abi
+++ b/tests/data/test-read-dwarf/test0.hash.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test0'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='libstdc++.so.6'/>
     <dependency name='libm.so.6'/>
diff --git a/tests/data/test-read-dwarf/test1.abi b/tests/data/test-read-dwarf/test1.abi
index 1c3b5dd7..d6b83d2b 100644
--- a/tests/data/test-read-dwarf/test1.abi
+++ b/tests/data/test-read-dwarf/test1.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test1'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='libstdc++.so.6'/>
     <dependency name='libm.so.6'/>
diff --git a/tests/data/test-read-dwarf/test1.hash.abi b/tests/data/test-read-dwarf/test1.hash.abi
index e68345ff..65071af5 100644
--- a/tests/data/test-read-dwarf/test1.hash.abi
+++ b/tests/data/test-read-dwarf/test1.hash.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test1'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='libstdc++.so.6'/>
     <dependency name='libm.so.6'/>
diff --git a/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi b/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi
index ef41c25f..3a9af4ab 100644
--- a/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi
+++ b/tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test10-pr18818-gcc.so'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='build/debug/third_party/boost-1.56.0/libboost_system.so'/>
     <dependency name='librt.so.1'/>
diff --git a/tests/data/test-read-dwarf/test11-pr18828.so.abi b/tests/data/test-read-dwarf/test11-pr18828.so.abi
index d0a4c213..43ab8dfe 100644
--- a/tests/data/test-read-dwarf/test11-pr18828.so.abi
+++ b/tests/data/test-read-dwarf/test11-pr18828.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test11-pr18828.so'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='build/debug/mongo/db/libserver_parameters.so'/>
     <dependency name='build/debug/mongo/libbase.so'/>
diff --git a/tests/data/test-read-dwarf/test12-pr18844.so.abi b/tests/data/test-read-dwarf/test12-pr18844.so.abi
index 3a9bb056..ad53e0d8 100644
--- a/tests/data/test-read-dwarf/test12-pr18844.so.abi
+++ b/tests/data/test-read-dwarf/test12-pr18844.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test12-pr18844.so'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='build/debug/mongo/bson/mutable/libmutable_bson.so'/>
     <dependency name='build/debug/mongo/bson/util/libbson_extract.so'/>
diff --git a/tests/data/test-read-dwarf/test13-pr18894.so.abi b/tests/data/test-read-dwarf/test13-pr18894.so.abi
index e9ea1640..f2960fed 100644
--- a/tests/data/test-read-dwarf/test13-pr18894.so.abi
+++ b/tests/data/test-read-dwarf/test13-pr18894.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test13-pr18894.so' soname='libdbus-1.so.3'>
+<abi-corpus version='2.1' soname='libdbus-1.so.3'>
   <elf-needed>
     <dependency name='librt.so.1'/>
     <dependency name='libpthread.so.0'/>
diff --git a/tests/data/test-read-dwarf/test14-pr18893.so.abi b/tests/data/test-read-dwarf/test14-pr18893.so.abi
index 4ed7a8cd..a7da6702 100644
--- a/tests/data/test-read-dwarf/test14-pr18893.so.abi
+++ b/tests/data/test-read-dwarf/test14-pr18893.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test14-pr18893.so' soname='libGLU.so.1'>
+<abi-corpus version='2.1' soname='libGLU.so.1'>
   <elf-needed>
     <dependency name='libGL.so.1'/>
     <dependency name='libstdc++.so.6'/>
diff --git a/tests/data/test-read-dwarf/test15-pr18892.so.abi b/tests/data/test-read-dwarf/test15-pr18892.so.abi
index a6a3771d..8071615f 100644
--- a/tests/data/test-read-dwarf/test15-pr18892.so.abi
+++ b/tests/data/test-read-dwarf/test15-pr18892.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test15-pr18892.so' soname='libtsan.so.0'>
+<abi-corpus version='2.1' soname='libtsan.so.0'>
   <elf-needed>
     <dependency name='librt.so.1'/>
     <dependency name='libpthread.so.0'/>
diff --git a/tests/data/test-read-dwarf/test16-pr18904.so.abi b/tests/data/test-read-dwarf/test16-pr18904.so.abi
index 6b91779d..fc5b6162 100644
--- a/tests/data/test-read-dwarf/test16-pr18904.so.abi
+++ b/tests/data/test-read-dwarf/test16-pr18904.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test16-pr18904.so' soname='liboffloadmic_host.so.5'>
+<abi-corpus version='2.1' soname='liboffloadmic_host.so.5'>
   <elf-needed>
     <dependency name='libdl.so.2'/>
     <dependency name='libstdc++.so.6'/>
diff --git a/tests/data/test-read-dwarf/test17-pr19027.so.abi b/tests/data/test-read-dwarf/test17-pr19027.so.abi
index 168f0343..17b8cf75 100644
--- a/tests/data/test-read-dwarf/test17-pr19027.so.abi
+++ b/tests/data/test-read-dwarf/test17-pr19027.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test17-pr19027.so' soname='libharfbuzz.so.0'>
+<abi-corpus version='2.1' soname='libharfbuzz.so.0'>
   <elf-needed>
     <dependency name='libglib-2.0.so.0'/>
     <dependency name='libfreetype.so.6'/>
diff --git a/tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi b/tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi
index fc38ff19..6c87e7df 100644
--- a/tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi
+++ b/tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so' soname='libvtkRenderingLIC-6.1.so.1'>
+<abi-corpus version='2.1' soname='libvtkRenderingLIC-6.1.so.1'>
   <elf-needed>
     <dependency name='libvtkIOLegacy-6.1.so.1'/>
     <dependency name='libvtkIOXML-6.1.so.1'/>
diff --git a/tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi b/tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi
index 5266a5fa..9782cd3b 100644
--- a/tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi
+++ b/tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so' soname='libtcmalloc_and_profiler.so.4'>
+<abi-corpus version='2.1' soname='libtcmalloc_and_profiler.so.4'>
   <elf-needed>
     <dependency name='libunwind.so.8'/>
     <dependency name='libpthread.so.0'/>
diff --git a/tests/data/test-read-dwarf/test2.so.abi b/tests/data/test-read-dwarf/test2.so.abi
index b1f132e6..aa47bdb0 100644
--- a/tests/data/test-read-dwarf/test2.so.abi
+++ b/tests/data/test-read-dwarf/test2.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test2.so'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='libstdc++.so.6'/>
     <dependency name='libm.so.6'/>
diff --git a/tests/data/test-read-dwarf/test2.so.hash.abi b/tests/data/test-read-dwarf/test2.so.hash.abi
index bf973241..7bd29994 100644
--- a/tests/data/test-read-dwarf/test2.so.hash.abi
+++ b/tests/data/test-read-dwarf/test2.so.hash.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test2.so'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='libstdc++.so.6'/>
     <dependency name='libm.so.6'/>
diff --git a/tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi b/tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi
index d51c55d5..53c28317 100644
--- a/tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi
+++ b/tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so' soname='libvtkParallelCore-6.1.so.1'>
+<abi-corpus version='2.1' soname='libvtkParallelCore-6.1.so.1'>
   <elf-needed>
     <dependency name='libvtkIOLegacy-6.1.so.1'/>
     <dependency name='libvtkIOCore-6.1.so.1'/>
diff --git a/tests/data/test-read-dwarf/test21-pr19092.so.abi b/tests/data/test-read-dwarf/test21-pr19092.so.abi
index 8cf838aa..6dbd033c 100644
--- a/tests/data/test-read-dwarf/test21-pr19092.so.abi
+++ b/tests/data/test-read-dwarf/test21-pr19092.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test21-pr19092.so'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='libstdc++.so.6'/>
     <dependency name='libm.so.6'/>
diff --git a/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi b/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi
index 568a0633..268af00f 100644
--- a/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi
+++ b/tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so' soname='libstdc++.so.6'>
+<abi-corpus version='2.1' soname='libstdc++.so.6'>
   <elf-needed>
     <dependency name='libm.so.6'/>
     <dependency name='libc.so.6'/>
diff --git a/tests/data/test-read-dwarf/test3-alias-1.so.hash.abi b/tests/data/test-read-dwarf/test3-alias-1.so.hash.abi
index b3a4801a..386ce6eb 100644
--- a/tests/data/test-read-dwarf/test3-alias-1.so.hash.abi
+++ b/tests/data/test-read-dwarf/test3-alias-1.so.hash.abi
@@ -1,9 +1,14 @@ 
-<abi-corpus version='2.1' path='data/test-read-common/test3.so' soname='test3.so.1'>
+<abi-corpus version='2.1' soname='test3.so.1'>
   <elf-needed>
     <dependency name='libc.so.6'/>
   </elf-needed>
   <elf-function-symbols>
-    <elf-symbol name='__foo' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='__foo' type='func-type' binding='global-binding' visibility='default-visibility' alias='foo,foo__,__foo__' is-defined='yes'/>
+    <elf-symbol name='__foo__' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='foo' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='foo__' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
   </elf-function-symbols>
   <abi-instr address-size='64' path='test3.c' comp-dir-path='/home/byby/oracle/src/libabigail/tests/data/test-read-common' language='LANG_C89'>
     <function-decl name='__foo' mangled-name='__foo' filepath='/home/byby/oracle/src/libabigail/tests/data/test-read-common/test3.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__foo'>
diff --git a/tests/data/test-read-dwarf/test3-alias-2.so.hash.abi b/tests/data/test-read-dwarf/test3-alias-2.so.hash.abi
index 07a7f2c4..386ce6eb 100644
--- a/tests/data/test-read-dwarf/test3-alias-2.so.hash.abi
+++ b/tests/data/test-read-dwarf/test3-alias-2.so.hash.abi
@@ -1,8 +1,9 @@ 
-<abi-corpus version='2.1' path='data/test-read-common/test3.so' soname='test3.so.1'>
+<abi-corpus version='2.1' soname='test3.so.1'>
   <elf-needed>
     <dependency name='libc.so.6'/>
   </elf-needed>
   <elf-function-symbols>
+    <elf-symbol name='__foo' type='func-type' binding='global-binding' visibility='default-visibility' alias='foo,foo__,__foo__' is-defined='yes'/>
     <elf-symbol name='__foo__' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
@@ -10,7 +11,7 @@ 
     <elf-symbol name='foo__' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
   </elf-function-symbols>
   <abi-instr address-size='64' path='test3.c' comp-dir-path='/home/byby/oracle/src/libabigail/tests/data/test-read-common' language='LANG_C89'>
-    <function-decl name='__foo' mangled-name='__foo' filepath='/home/byby/oracle/src/libabigail/tests/data/test-read-common/test3.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='foo'>
+    <function-decl name='__foo' mangled-name='__foo' filepath='/home/byby/oracle/src/libabigail/tests/data/test-read-common/test3.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__foo'>
       <return type-id='48b5725f'/>
     </function-decl>
     <type-decl name='void' id='48b5725f'/>
diff --git a/tests/data/test-read-dwarf/test3-alias-3.so.hash.abi b/tests/data/test-read-dwarf/test3-alias-3.so.hash.abi
index 7908bdb8..386ce6eb 100644
--- a/tests/data/test-read-dwarf/test3-alias-3.so.hash.abi
+++ b/tests/data/test-read-dwarf/test3-alias-3.so.hash.abi
@@ -1,12 +1,17 @@ 
-<abi-corpus version='2.1' path='data/test-read-common/test3.so' soname='test3.so.1'>
+<abi-corpus version='2.1' soname='test3.so.1'>
   <elf-needed>
     <dependency name='libc.so.6'/>
   </elf-needed>
   <elf-function-symbols>
+    <elf-symbol name='__foo' type='func-type' binding='global-binding' visibility='default-visibility' alias='foo,foo__,__foo__' is-defined='yes'/>
+    <elf-symbol name='__foo__' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='foo' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='foo__' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
   </elf-function-symbols>
   <abi-instr address-size='64' path='test3.c' comp-dir-path='/home/byby/oracle/src/libabigail/tests/data/test-read-common' language='LANG_C89'>
-    <function-decl name='__foo' mangled-name='__foo' filepath='/home/byby/oracle/src/libabigail/tests/data/test-read-common/test3.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='foo'>
+    <function-decl name='__foo' mangled-name='__foo' filepath='/home/byby/oracle/src/libabigail/tests/data/test-read-common/test3.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__foo'>
       <return type-id='48b5725f'/>
     </function-decl>
     <type-decl name='void' id='48b5725f'/>
diff --git a/tests/data/test-read-dwarf/test3-alias-4.so.hash.abi b/tests/data/test-read-dwarf/test3-alias-4.so.hash.abi
index 22a56fa5..386ce6eb 100644
--- a/tests/data/test-read-dwarf/test3-alias-4.so.hash.abi
+++ b/tests/data/test-read-dwarf/test3-alias-4.so.hash.abi
@@ -1,8 +1,19 @@ 
-<abi-corpus version='2.1' path='data/test-read-common/test3.so' soname='test3.so.1'>
+<abi-corpus version='2.1' soname='test3.so.1'>
   <elf-needed>
     <dependency name='libc.so.6'/>
   </elf-needed>
   <elf-function-symbols>
+    <elf-symbol name='__foo' type='func-type' binding='global-binding' visibility='default-visibility' alias='foo,foo__,__foo__' is-defined='yes'/>
+    <elf-symbol name='__foo__' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='foo' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='foo__' type='func-type' binding='weak-binding' visibility='default-visibility' is-defined='yes'/>
   </elf-function-symbols>
+  <abi-instr address-size='64' path='test3.c' comp-dir-path='/home/byby/oracle/src/libabigail/tests/data/test-read-common' language='LANG_C89'>
+    <function-decl name='__foo' mangled-name='__foo' filepath='/home/byby/oracle/src/libabigail/tests/data/test-read-common/test3.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='__foo'>
+      <return type-id='48b5725f'/>
+    </function-decl>
+    <type-decl name='void' id='48b5725f'/>
+  </abi-instr>
 </abi-corpus>
diff --git a/tests/data/test-read-dwarf/test3.so.abi b/tests/data/test-read-dwarf/test3.so.abi
index a9bf781f..36589a43 100644
--- a/tests/data/test-read-dwarf/test3.so.abi
+++ b/tests/data/test-read-dwarf/test3.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-common/test3.so' soname='test3.so.1'>
+<abi-corpus version='2.1' soname='test3.so.1'>
   <elf-needed>
     <dependency name='libc.so.6'/>
   </elf-needed>
diff --git a/tests/data/test-read-dwarf/test3.so.hash.abi b/tests/data/test-read-dwarf/test3.so.hash.abi
index f429b22f..386ce6eb 100644
--- a/tests/data/test-read-dwarf/test3.so.hash.abi
+++ b/tests/data/test-read-dwarf/test3.so.hash.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-common/test3.so' soname='test3.so.1'>
+<abi-corpus version='2.1' soname='test3.so.1'>
   <elf-needed>
     <dependency name='libc.so.6'/>
   </elf-needed>
diff --git a/tests/data/test-read-dwarf/test4.so.abi b/tests/data/test-read-dwarf/test4.so.abi
index c38fff66..34c8b1ac 100644
--- a/tests/data/test-read-dwarf/test4.so.abi
+++ b/tests/data/test-read-dwarf/test4.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-common/test4.so'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='libc.so.6'/>
   </elf-needed>
diff --git a/tests/data/test-read-dwarf/test4.so.hash.abi b/tests/data/test-read-dwarf/test4.so.hash.abi
index 7223f5eb..f74aebaf 100644
--- a/tests/data/test-read-dwarf/test4.so.hash.abi
+++ b/tests/data/test-read-dwarf/test4.so.hash.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-common/test4.so'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='libc.so.6'/>
   </elf-needed>
diff --git a/tests/data/test-read-dwarf/test5.o.abi b/tests/data/test-read-dwarf/test5.o.abi
index 1c75984c..4bfd5c37 100644
--- a/tests/data/test-read-dwarf/test5.o.abi
+++ b/tests/data/test-read-dwarf/test5.o.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test5.o'>
+<abi-corpus version='2.1'>
   <elf-function-symbols>
     <elf-symbol name='_Z3barPv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
   </elf-function-symbols>
diff --git a/tests/data/test-read-dwarf/test5.o.hash.abi b/tests/data/test-read-dwarf/test5.o.hash.abi
index 21a30cf9..c7b6e2f0 100644
--- a/tests/data/test-read-dwarf/test5.o.hash.abi
+++ b/tests/data/test-read-dwarf/test5.o.hash.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test5.o'>
+<abi-corpus version='2.1'>
   <elf-function-symbols>
     <elf-symbol name='_Z3barPv' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
   </elf-function-symbols>
diff --git a/tests/data/test-read-dwarf/test6.so.abi b/tests/data/test-read-dwarf/test6.so.abi
index 4df757aa..17fcdecd 100644
--- a/tests/data/test-read-dwarf/test6.so.abi
+++ b/tests/data/test-read-dwarf/test6.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test6.so'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='libstdc++.so.6'/>
     <dependency name='libm.so.6'/>
diff --git a/tests/data/test-read-dwarf/test6.so.hash.abi b/tests/data/test-read-dwarf/test6.so.hash.abi
index 5ef87087..5495813c 100644
--- a/tests/data/test-read-dwarf/test6.so.hash.abi
+++ b/tests/data/test-read-dwarf/test6.so.hash.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test6.so'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='libstdc++.so.6'/>
     <dependency name='libm.so.6'/>
diff --git a/tests/data/test-read-dwarf/test7.so.abi b/tests/data/test-read-dwarf/test7.so.abi
index 3285549c..af702077 100644
--- a/tests/data/test-read-dwarf/test7.so.abi
+++ b/tests/data/test-read-dwarf/test7.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test7.so'>
+<abi-corpus version='2.1'>
   <elf-function-symbols>
     <elf-symbol name='_Z3fooR1S' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
   </elf-function-symbols>
diff --git a/tests/data/test-read-dwarf/test7.so.hash.abi b/tests/data/test-read-dwarf/test7.so.hash.abi
index cc9becbe..72223a95 100644
--- a/tests/data/test-read-dwarf/test7.so.hash.abi
+++ b/tests/data/test-read-dwarf/test7.so.hash.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test7.so'>
+<abi-corpus version='2.1'>
   <elf-function-symbols>
     <elf-symbol name='_Z3fooR1S' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
   </elf-function-symbols>
diff --git a/tests/data/test-read-dwarf/test8-qualified-this-pointer.so.abi b/tests/data/test-read-dwarf/test8-qualified-this-pointer.so.abi
index 3c750fe7..c02b7230 100644
--- a/tests/data/test-read-dwarf/test8-qualified-this-pointer.so.abi
+++ b/tests/data/test-read-dwarf/test8-qualified-this-pointer.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test8-qualified-this-pointer.so'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='libstdc++.so.6'/>
     <dependency name='libm.so.6'/>
diff --git a/tests/data/test-read-dwarf/test8-qualified-this-pointer.so.hash.abi b/tests/data/test-read-dwarf/test8-qualified-this-pointer.so.hash.abi
index b2659361..064e93f6 100644
--- a/tests/data/test-read-dwarf/test8-qualified-this-pointer.so.hash.abi
+++ b/tests/data/test-read-dwarf/test8-qualified-this-pointer.so.hash.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test8-qualified-this-pointer.so'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='libstdc++.so.6'/>
     <dependency name='libm.so.6'/>
diff --git a/tests/data/test-read-dwarf/test9-pr18818-clang.so.abi b/tests/data/test-read-dwarf/test9-pr18818-clang.so.abi
index a75d83a0..07412433 100644
--- a/tests/data/test-read-dwarf/test9-pr18818-clang.so.abi
+++ b/tests/data/test-read-dwarf/test9-pr18818-clang.so.abi
@@ -1,4 +1,4 @@ 
-<abi-corpus version='2.1' path='data/test-read-dwarf/test9-pr18818-clang.so'>
+<abi-corpus version='2.1'>
   <elf-needed>
     <dependency name='build/debug/third_party/boost-1.56.0/libboost_system.so'/>
     <dependency name='libm.so.6'/>
diff --git a/tests/test-read-dwarf.cc b/tests/test-read-dwarf.cc
index 3bbceeeb..fb5d168b 100644
--- a/tests/test-read-dwarf.cc
+++ b/tests/test-read-dwarf.cc
@@ -26,6 +26,7 @@  using abigail::tests::read_common::InOutSpec;
 using abigail::tests::read_common::test_task;
 using abigail::tests::read_common::display_usage;
 using abigail::tests::read_common::options;
+using abigail::tests::get_build_dir;
 
 using abigail::dwarf_reader::read_corpus_from_elf;
 using abigail::dwarf_reader::read_context;
@@ -33,6 +34,7 @@  using abigail::dwarf_reader::read_context_sptr;
 using abigail::dwarf_reader::create_read_context;
 using abigail::xml_writer::SEQUENCE_TYPE_ID_STYLE;
 using abigail::xml_writer::HASH_TYPE_ID_STYLE;
+using abigail::xml_writer::type_id_style_kind;
 using abigail::tools_utils::emit_prefix;
 
 static InOutSpec in_out_specs[] =
@@ -494,46 +496,6 @@  using abigail::suppr::suppression_sptr;
 using abigail::suppr::suppressions_type;
 using abigail::suppr::read_suppressions;
 
-/// Set the suppression specification to use when reading the ELF binary.
-///
-/// @param read_ctxt the context used to read the ELF binary.
-///
-/// @param path the path to the suppression specification to read.
-static void
-set_suppressions(read_context& read_ctxt, const string& path)
-{
-  suppressions_type supprs;
-  read_suppressions(path, supprs);
-  add_read_context_suppressions(read_ctxt, supprs);
-}
-
-/// Define what headers contain public types definitions.
-///
-/// This automatically generates suppression specifications from the
-/// set of header files present under a given directory.  Those
-/// specifications actually suppress types that are *not* defined in
-/// the headers found at a given directory.
-///
-/// @param read_ctxt the context used to read the ELF binary.
-///
-/// @param path the path to a directory where header files are to be
-/// found.
-static void
-set_suppressions_from_headers(read_context& read_ctxt, const string& path)
-{
-  vector<string> files;
-  suppression_sptr suppr =
-    abigail::tools_utils::gen_suppr_spec_from_headers(path, files);
-
-  if (suppr)
-    {
-      suppr->set_drops_artifact_from_ir(true);
-      suppressions_type supprs;
-      supprs.push_back(suppr);
-      add_read_context_suppressions(read_ctxt, supprs);
-    }
-}
-
 /// Task specialization to perform DWARF tests.
 struct test_task_dwarf : public test_task
 {
@@ -577,52 +539,35 @@  test_task_dwarf::test_task_dwarf(const InOutSpec &s,
 void
 test_task_dwarf::perform()
 {
-  abigail::ir::environment_sptr env;
-
   set_in_elf_path();
   set_in_suppr_spec_path();
   set_in_public_headers_path();
 
-  env.reset(new abigail::ir::environment);
-  abigail::elf_reader::status status =
-    abigail::elf_reader::STATUS_UNKNOWN;
-  vector<char**> di_roots;
-  ABG_ASSERT(abigail::tools_utils::file_exists(in_elf_path));
-  read_context_sptr ctxt = create_read_context(in_elf_path,
-                                               di_roots,
-                                               env.get());
-  ABG_ASSERT(ctxt);
-  if (!in_suppr_spec_path.empty())
-    set_suppressions(*ctxt, in_suppr_spec_path);
+  if (!set_out_abi_path()
+      || in_elf_path.empty())
+    return;
 
+  string abidw = string(get_build_dir()) + "/tools/abidw";
+  string drop_private_types;
   if (!in_public_headers_path.empty())
-    set_suppressions_from_headers(*ctxt, in_public_headers_path);
+    drop_private_types += "--headers-dir " + in_public_headers_path +
+      " --drop-private-types";
+  string type_id_style = "sequence";
+  if (spec.type_id_style == HASH_TYPE_ID_STYLE)
+    type_id_style = "hash";
 
-  abigail::corpus_sptr corp = read_corpus_from_elf(*ctxt, status);
-  // if there is no output and no input, assume that we do not care about the
-  // actual read result, just that it succeeded.
-  if (!spec.in_abi_path && !spec.out_abi_path)
-    {
-      // Phew! we made it here and we did not crash! yay!
-      return;
-    }
-  if (!corp)
+  string cmd = abidw + " --no-architecture "
+    + " --type-id-style " + type_id_style
+    + " --no-corpus-path "
+    + drop_private_types + " " + in_elf_path
+    +" > " + out_abi_path;
+
+  if (system(cmd.c_str()))
     {
-      error_message = string("failed to read ") + in_elf_path  + "\n";
-      is_ok = false;
+      error_message = string("abidw failed:\n")
+	+ "command was: '" + cmd + "'\n";
       return;
     }
-  corp->set_path(spec.in_elf_path);
-  // Do not take architecture names in comparison so that these
-  // test input binaries can come from whatever arch the
-  // programmer likes.
-  corp->set_architecture_name("");
-
-  if (!(is_ok = set_out_abi_path()))
-      return;
-
-  if (!(is_ok = serialize_corpus(out_abi_path, corp)))
-       return;
 
   if (!(is_ok = run_abidw()))
     return;