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;
