PR25042 - Support string form DW_FORM_strx{1,4} from DWARF 5
authorDodji Seketeli <dodji@redhat.com>
Mon, 30 Sep 2019 15:36:58 +0000 (17:36 +0200)
committerDodji Seketeli <dodji@redhat.com>
Tue, 1 Oct 2019 12:14:41 +0000 (14:14 +0200)
* configure.ac: Detect the presence of the DW_FORM_strx{1,4}
enumerators.
* src/abg-dwarf-reader.cc (form_is_DW_FORM_strx): Define new
function.
(compare_dies_string_attribute_value): Use the new
form_is_DW_FORM_strx here.
* tests/data/Makefile.am: Add the new test input files below to
source distribution.
* tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0:
New binary test input file.
* tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi:
Reference output of the new binary test input file.
* tests/test-read-dwarf.cc (in_out_specs): Add the input test
files above to the test harness, for platforms that support the
DW_FORM_strx form.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
configure.ac
src/abg-dwarf-reader.cc
tests/data/Makefile.am
tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0 [new file with mode: 0644]
tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi [new file with mode: 0644]
tests/test-read-dwarf.cc

index 842dcfc..df3b6b9 100644 (file)
@@ -781,6 +781,64 @@ if test x$HAS_DW_LANG_Rust = xyes; then
            [Define to 1 if dwarf.h has the DW_LANG_Rust enumerator])
 fi
 
+HAS_DW_FORM_strx1=no
+HAS_DW_FORM_strx2=no
+HAS_DW_FORM_strx3=no
+HAS_DW_FORM_strx4=no
+
+AC_CHECK_DECL([DW_FORM_strx1],
+             [HAS_DW_FORM_strx1=yes],
+             [HAS_DW_FORM_strx1=no],
+             [[#include <dwarf.h>]])
+
+if test x$HAS_DW_FORM_strx1 = xyes; then
+   AC_DEFINE([HAVE_DW_FORM_strx1],
+            1,
+            [Define to 1 if dwarf.h has the DW_FORM_strx1 enumerator])
+fi
+
+AC_CHECK_DECL([DW_FORM_strx2],
+             [HAS_DW_FORM_strx2=yes],
+             [HAS_DW_FORM_strx2=no],
+             [[#include <dwarf.h>]])
+
+if test x$HAS_DW_FORM_strx2 = xyes; then
+   AC_DEFINE([HAVE_DW_FORM_strx2],
+            1,
+            [Define to 1 if dwarf.h has the DW_FORM_strx2 enumerator])
+fi
+
+AC_CHECK_DECL([DW_FORM_strx3],
+             [HAS_DW_FORM_strx3=yes],
+             [HAS_DW_FORM_strx3=no],
+             [[#include <dwarf.h>]])
+
+if test x$HAS_DW_FORM_strx3 = xyes; then
+   AC_DEFINE([HAVE_DW_FORM_strx3],
+            1,
+            [Define to 1 if dwarf.h has the DW_FORM_strx3 enumerator])
+fi
+
+AC_CHECK_DECL([DW_FORM_strx4],
+             [HAS_DW_FORM_strx4=yes],
+             [HAS_DW_FORM_strx4=no],
+             [[#include <dwarf.h>]])
+
+if test x$HAS_DW_FORM_strx4 = xyes; then
+   AC_DEFINE([HAVE_DW_FORM_strx4],
+            1,
+            [Define to 1 if dwarf.h has the DW_FORM_strx4 enumerator])
+fi
+
+if test x$HAS_DW_FORM_strx1 -a \
+       x$HAS_DW_FORM_strx2 -a \
+       x$HAS_DW_FORM_strx3 -a \
+       x$HAS_DW_FORM_strx4; then
+   AC_DEFINE([HAVE_DW_FORM_strx],
+            1,
+            [Define to 1 if dwarf.h has the DW_FORM_strx enumerators])
+fi
+
 dnl Set large files support
 AC_SYS_LARGEFILE
 
index 1e6d801..32a5859 100644 (file)
@@ -402,6 +402,9 @@ die_attribute_has_form(const Dwarf_Die* die,
                       unsigned int     form);
 
 static bool
+form_is_DW_FORM_strx(unsigned form);
+
+static bool
 die_attribute_is_signed(const Dwarf_Die* die, unsigned attr_name);
 
 static bool
@@ -9473,6 +9476,34 @@ die_attribute_has_form(const Dwarf_Die   *die,
   return dwarf_hasform(&attr, attr_form);
 }
 
+/// Test if a given DWARF form is DW_FORM_strx{1,4}.
+///
+/// Unfortunaly, the DW_FORM_strx{1,4} are enumerators of an untagged
+/// enum in dwarf.h so we have to use an unsigned int for the form,
+/// grrr.
+///
+/// @param form the form to consider.
+///
+/// @return true iff @p form is DW_FORM_strx{1,4}.
+static bool
+form_is_DW_FORM_strx(unsigned form)
+{
+  if (form)
+    {
+#if defined HAVE_DW_FORM_strx1         \
+  && defined HAVE_DW_FORM_strx2        \
+  && defined HAVE_DW_FORM_strx3        \
+  && defined HAVE_DW_FORM_strx4
+      if (form == DW_FORM_strx1
+         || form == DW_FORM_strx2
+         || form == DW_FORM_strx3
+         ||form == DW_FORM_strx4)
+       return true;
+#endif
+    }
+  return false;
+}
+
 /// Test if a given DIE attribute is signed.
 ///
 /// @param die the DIE to consider.
@@ -10604,16 +10635,20 @@ compare_dies_string_attribute_value(const Dwarf_Die *l, const Dwarf_Die *r,
 
   ABG_ASSERT(l_attr.form == DW_FORM_strp
             || l_attr.form == DW_FORM_string
-            || l_attr.form == DW_FORM_GNU_strp_alt);
+            || l_attr.form == DW_FORM_GNU_strp_alt
+            || form_is_DW_FORM_strx(l_attr.form));
 
   ABG_ASSERT(r_attr.form == DW_FORM_strp
             || r_attr.form == DW_FORM_string
-            || r_attr.form == DW_FORM_GNU_strp_alt);
+            || r_attr.form == DW_FORM_GNU_strp_alt
+            || form_is_DW_FORM_strx(r_attr.form));
 
   if ((l_attr.form == DW_FORM_strp
        && r_attr.form == DW_FORM_strp)
       || (l_attr.form == DW_FORM_GNU_strp_alt
-         && r_attr.form == DW_FORM_GNU_strp_alt))
+         && r_attr.form == DW_FORM_GNU_strp_alt)
+      || (form_is_DW_FORM_strx(l_attr.form)
+         && form_is_DW_FORM_strx(r_attr.form)))
     {
       // So these string attributes are actually pointers into a
       // string table.  The string table is most likely de-duplicated
index 70b290a..e1177cc 100644 (file)
@@ -404,6 +404,8 @@ test-read-dwarf/PR24378-fn-is-not-scope.abi \
 test-read-dwarf/PR24378-fn-is-not-scope.o \
 test-read-dwarf/PR25007-sdhci.ko \
 test-read-dwarf/PR25007-sdhci.ko.abi \
+test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0 \
+test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi \
 \
 test-annotate/test0.abi                        \
 test-annotate/test1.abi                        \
diff --git a/tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0 b/tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0
new file mode 100644 (file)
index 0000000..956ecba
Binary files /dev/null and b/tests/data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0 differ
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
new file mode 100644 (file)
index 0000000..64b40e2
--- /dev/null
@@ -0,0 +1,1090 @@
+<abi-corpus path='data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0' soname='libgdbm.so.6'>
+  <elf-needed>
+    <dependency name='libc.so.6'/>
+    <dependency name='ld-linux-x86-64.so.2'/>
+  </elf-needed>
+  <elf-function-symbols>
+    <elf-symbol name='_gdbm_alloc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_base64_decode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_base64_encode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_bucket_dir' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_cache_entry_invalidate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_dump_ascii' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_end_update' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_fatal' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_file_extend' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_file_size' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_findkey' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_full_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_full_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_get_bucket' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_hash' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_hash_key' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_init_cache' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_internal_remap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_load_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_lock_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_mapped_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_mapped_lseek' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_mapped_read' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_mapped_remap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_mapped_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_mapped_unmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_mapped_write' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_new_bucket' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_next_bucket_dir' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_put_av_elem' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_read_bucket_at' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_read_entry' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_split_bucket' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_unlock_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_validate_header' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_gdbm_write_bucket' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_avail_block_validate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_avail_table_valid_p' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_bucket_avail_table_validate' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_bucket_element_valid_p' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_check_syserr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_clear_error' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_close' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_copy_meta' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_count' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_db_strerror' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_delete' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_dir_entry_valid_p' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_dump' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_dump_to_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_errno_location' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_exists' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_export' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_export_to_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_fd_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_fdesc' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_fetch' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_firstkey' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_import' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_import_from_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_last_errno' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_last_syserr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_load' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_load_bdb_dump' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_load_from_file' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_needs_recovery' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_nextkey' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_open' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_recover' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_reorganize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_set_errno' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_setopt' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_store' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_strerror' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_sync' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_version_cmp' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='get_len' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='read_record' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-function-symbols>
+  <elf-variable-symbols>
+    <elf-symbol name='gdbm_errlist' size='320' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_syserr' size='160' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_version' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='gdbm_version_number' size='12' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+  </elf-variable-symbols>
+  <abi-instr version='1.0' address-size='64' path='gdbmclose.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+
+
+
+    <type-decl name='__ARRAY_SIZE_TYPE__' size-in-bits='64' id='type-id-1'/>
+    <array-type-def dimensions='1' type-id='type-id-2' size-in-bits='128' id='type-id-3'>
+      <subrange length='1' type-id='type-id-1' id='type-id-4'/>
+
+    </array-type-def>
+    <array-type-def dimensions='1' type-id='type-id-2' size-in-bits='768' id='type-id-5'>
+      <subrange length='6' type-id='type-id-1' id='type-id-6'/>
+
+    </array-type-def>
+    <array-type-def dimensions='1' type-id='type-id-7' size-in-bits='192' id='type-id-8'>
+      <subrange length='1' type-id='type-id-1' id='type-id-4'/>
+
+    </array-type-def>
+    <type-decl name='char' size-in-bits='8' id='type-id-9'/>
+    <array-type-def dimensions='1' type-id='type-id-9' size-in-bits='32' id='type-id-10'>
+      <subrange length='4' type-id='type-id-1' id='type-id-11'/>
+
+    </array-type-def>
+    <type-decl name='int' size-in-bits='32' id='type-id-12'/>
+    <type-decl name='long int' size-in-bits='64' id='type-id-13'/>
+    <type-decl name='unnamed-enum-underlying-type' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='type-id-14'/>
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-15'/>
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-16'/>
+    <type-decl name='void' id='type-id-17'/>
+    <typedef-decl name='GDBM_FILE' type-id='type-id-18' filepath='./gdbm.h' line='99' column='1' id='type-id-19'/>
+    <class-decl name='gdbm_file_info' size-in-bits='1344' is-struct='yes' visibility='default' filepath='./gdbmdefs.h' line='172' column='1' id='type-id-20'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='name' type-id='type-id-21' visibility='default' filepath='./gdbmdefs.h' line='177' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='30'>
+        <var-decl name='read_write' type-id='type-id-15' visibility='default' filepath='./gdbmdefs.h' line='180' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='29'>
+        <var-decl name='fast_write' type-id='type-id-15' visibility='default' filepath='./gdbmdefs.h' line='183' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='28'>
+        <var-decl name='central_free' type-id='type-id-15' visibility='default' filepath='./gdbmdefs.h' line='186' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='27'>
+        <var-decl name='coalesce_blocks' type-id='type-id-15' visibility='default' filepath='./gdbmdefs.h' line='189' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='26'>
+        <var-decl name='file_locking' type-id='type-id-15' visibility='default' filepath='./gdbmdefs.h' line='192' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='25'>
+        <var-decl name='memory_mapping' type-id='type-id-15' visibility='default' filepath='./gdbmdefs.h' line='195' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='24'>
+        <var-decl name='cloexec' type-id='type-id-15' visibility='default' filepath='./gdbmdefs.h' line='198' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='23'>
+        <var-decl name='need_recovery' type-id='type-id-15' visibility='default' filepath='./gdbmdefs.h' line='201' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <var-decl name='last_error' type-id='type-id-22' visibility='default' filepath='./gdbmdefs.h' line='204' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='last_syserror' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='206' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='last_errstr' type-id='type-id-21' visibility='default' filepath='./gdbmdefs.h' line='208' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='lock_type' type-id='type-id-23' visibility='default' filepath='./gdbmdefs.h' line='212' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='fatal_err' type-id='type-id-24' visibility='default' filepath='./gdbmdefs.h' line='215' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='desc' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='218' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='header' type-id='type-id-25' visibility='default' filepath='./gdbmdefs.h' line='221' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='dir' type-id='type-id-26' visibility='default' filepath='./gdbmdefs.h' line='225' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='bucket_cache' type-id='type-id-27' visibility='default' filepath='./gdbmdefs.h' line='228' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='cache_size' type-id='type-id-28' visibility='default' filepath='./gdbmdefs.h' line='229' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='last_read' type-id='type-id-28' visibility='default' filepath='./gdbmdefs.h' line='230' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='bucket' type-id='type-id-29' visibility='default' filepath='./gdbmdefs.h' line='233' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='bucket_dir' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='236' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <var-decl name='cache_entry' type-id='type-id-27' visibility='default' filepath='./gdbmdefs.h' line='239' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <var-decl name='header_changed' type-id='type-id-15' visibility='default' filepath='./gdbmdefs.h' line='243' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='30'>
+        <var-decl name='directory_changed' type-id='type-id-15' visibility='default' filepath='./gdbmdefs.h' line='244' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='29'>
+        <var-decl name='bucket_changed' type-id='type-id-15' visibility='default' filepath='./gdbmdefs.h' line='245' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='28'>
+        <var-decl name='second_changed' type-id='type-id-15' visibility='default' filepath='./gdbmdefs.h' line='246' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <var-decl name='mapped_size_max' type-id='type-id-28' visibility='default' filepath='./gdbmdefs.h' line='249' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1088'>
+        <var-decl name='mapped_region' type-id='type-id-30' visibility='default' filepath='./gdbmdefs.h' line='250' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <var-decl name='mapped_size' type-id='type-id-28' visibility='default' filepath='./gdbmdefs.h' line='251' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <var-decl name='mapped_pos' type-id='type-id-31' visibility='default' filepath='./gdbmdefs.h' line='252' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <var-decl name='mapped_off' type-id='type-id-31' visibility='default' filepath='./gdbmdefs.h' line='253' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='gdbm_error' type-id='type-id-12' filepath='./gdbm.h' line='238' column='1' id='type-id-22'/>
+    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./gdbmdefs.h' line='211' column='1' id='type-id-23'>
+      <underlying-type type-id='type-id-14'/>
+      <enumerator name='LOCKING_NONE' value='0'/>
+      <enumerator name='LOCKING_FLOCK' value='1'/>
+      <enumerator name='LOCKING_LOCKF' value='2'/>
+      <enumerator name='LOCKING_FCNTL' value='3'/>
+    </enum-decl>
+    <typedef-decl name='gdbm_file_header' type-id='type-id-32' filepath='./gdbmdefs.h' line='97' column='1' id='type-id-33'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='576' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-33' visibility='default' filepath='./gdbmdefs.h' line='84' column='1' id='type-id-32'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='header_magic' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='block_size' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='87' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='dir' type-id='type-id-31' visibility='default' filepath='./gdbmdefs.h' line='88' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='dir_size' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='89' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='dir_bits' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='90' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='bucket_size' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='91' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='224'>
+        <var-decl name='bucket_elems' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='92' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='next_block' type-id='type-id-31' visibility='default' filepath='./gdbmdefs.h' line='93' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='avail' type-id='type-id-34' visibility='default' filepath='./gdbmdefs.h' line='94' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='off_t' type-id='type-id-35' filepath='/usr/include/sys/types.h' line='85' column='1' id='type-id-31'/>
+    <typedef-decl name='__off_t' type-id='type-id-13' filepath='/usr/include/bits/types.h' line='152' column='1' id='type-id-35'/>
+    <typedef-decl name='avail_block' type-id='type-id-36' filepath='./gdbmdefs.h' line='68' column='1' id='type-id-34'/>
+    <class-decl name='__anonymous_struct__1' size-in-bits='256' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-34' visibility='default' filepath='./gdbmdefs.h' line='62' column='1' id='type-id-36'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='size' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='count' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='next_block' type-id='type-id-31' visibility='default' filepath='./gdbmdefs.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='av_table' type-id='type-id-3' visibility='default' filepath='./gdbmdefs.h' line='67' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='avail_elem' type-id='type-id-37' filepath='./gdbmdefs.h' line='58' column='1' id='type-id-2'/>
+    <class-decl name='__anonymous_struct__2' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-2' visibility='default' filepath='./gdbmdefs.h' line='54' column='1' id='type-id-37'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='av_size' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='56' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='av_adr' type-id='type-id-31' visibility='default' filepath='./gdbmdefs.h' line='57' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='cache_elem' type-id='type-id-38' filepath='./gdbmdefs.h' line='166' column='1' id='type-id-39'/>
+    <class-decl name='__anonymous_struct__3' size-in-bits='512' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-39' visibility='default' filepath='./gdbmdefs.h' line='160' column='1' id='type-id-38'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ca_bucket' type-id='type-id-29' visibility='default' filepath='./gdbmdefs.h' line='162' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='ca_adr' type-id='type-id-31' visibility='default' filepath='./gdbmdefs.h' line='163' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ca_changed' type-id='type-id-9' visibility='default' filepath='./gdbmdefs.h' line='164' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='ca_data' type-id='type-id-40' visibility='default' filepath='./gdbmdefs.h' line='165' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='hash_bucket' type-id='type-id-41' filepath='./gdbmdefs.h' line='137' column='1' id='type-id-42'/>
+    <class-decl name='__anonymous_struct__4' size-in-bits='1088' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-42' visibility='default' filepath='./gdbmdefs.h' line='130' column='1' id='type-id-41'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='av_count' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='132' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='bucket_avail' type-id='type-id-5' visibility='default' filepath='./gdbmdefs.h' line='133' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='bucket_bits' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='134' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='864'>
+        <var-decl name='count' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='135' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <var-decl name='h_table' type-id='type-id-8' visibility='default' filepath='./gdbmdefs.h' line='136' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='bucket_element' type-id='type-id-43' filepath='./gdbmdefs.h' line='114' column='1' id='type-id-7'/>
+    <class-decl name='__anonymous_struct__5' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-7' visibility='default' filepath='./gdbmdefs.h' line='106' column='1' id='type-id-43'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='hash_value' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='108' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='key_start' type-id='type-id-10' visibility='default' filepath='./gdbmdefs.h' line='109' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='data_pointer' type-id='type-id-31' visibility='default' filepath='./gdbmdefs.h' line='110' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='key_size' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='data_size' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='113' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='data_cache_elem' type-id='type-id-44' filepath='./gdbmdefs.h' line='158' column='1' id='type-id-40'/>
+    <class-decl name='__anonymous_struct__6' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-40' visibility='default' filepath='./gdbmdefs.h' line='150' column='1' id='type-id-44'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='hash_val' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='152' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='data_size' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='153' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='key_size' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='154' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='dptr' type-id='type-id-21' visibility='default' filepath='./gdbmdefs.h' line='155' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='dsize' type-id='type-id-28' visibility='default' filepath='./gdbmdefs.h' line='156' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='elem_loc' type-id='type-id-12' visibility='default' filepath='./gdbmdefs.h' line='157' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='size_t' type-id='type-id-16' filepath='/usr/lib64/clang/8.0.0/include/stddef.h' line='62' column='1' id='type-id-28'/>
+    <pointer-type-def type-id='type-id-39' size-in-bits='64' id='type-id-27'/>
+    <pointer-type-def type-id='type-id-9' size-in-bits='64' id='type-id-21'/>
+    <qualified-type-def type-id='type-id-9' const='yes' id='type-id-45'/>
+    <pointer-type-def type-id='type-id-45' size-in-bits='64' id='type-id-46'/>
+    <pointer-type-def type-id='type-id-33' size-in-bits='64' id='type-id-25'/>
+    <pointer-type-def type-id='type-id-20' size-in-bits='64' id='type-id-18'/>
+    <pointer-type-def type-id='type-id-42' size-in-bits='64' id='type-id-29'/>
+    <pointer-type-def type-id='type-id-31' size-in-bits='64' id='type-id-26'/>
+    <pointer-type-def type-id='type-id-47' size-in-bits='64' id='type-id-24'/>
+    <pointer-type-def type-id='type-id-17' size-in-bits='64' id='type-id-30'/>
+    <function-decl name='gdbm_close' mangled-name='gdbm_close' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmclose.c' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_close'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmclose.c' line='30' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-type size-in-bits='64' id='type-id-47'>
+      <parameter type-id='type-id-46'/>
+      <return type-id='type-id-17'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='gdbmcount.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-48'/>
+    <typedef-decl name='gdbm_count_t' type-id='type-id-48' filepath='./gdbm.h' line='88' column='1' id='type-id-49'/>
+    <pointer-type-def type-id='type-id-49' size-in-bits='64' id='type-id-50'/>
+    <function-decl name='gdbm_count' mangled-name='gdbm_count' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmcount.c' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_count'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmcount.c' line='25' column='1'/>
+      <parameter type-id='type-id-50' name='pcount' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmcount.c' line='25' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='gdbmdelete.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <typedef-decl name='datum' type-id='type-id-51' filepath='./gdbm.h' line='95' column='1' id='type-id-52'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-52' visibility='default' filepath='./gdbm.h' line='91' column='1' id='type-id-51'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='dptr' type-id='type-id-21' visibility='default' filepath='./gdbm.h' line='93' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='dsize' type-id='type-id-12' visibility='default' filepath='./gdbm.h' line='94' column='1'/>
+      </data-member>
+    </class-decl>
+    <function-decl name='gdbm_delete' mangled-name='gdbm_delete' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmdelete.c' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_delete'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmdelete.c' line='30' column='1'/>
+      <parameter type-id='type-id-52' name='key' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmdelete.c' line='30' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='gdbmdump.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+
+    <array-type-def dimensions='1' type-id='type-id-9' size-in-bits='8' id='type-id-53'>
+      <subrange length='1' type-id='type-id-1' id='type-id-4'/>
+
+    </array-type-def>
+    <array-type-def dimensions='1' type-id='type-id-9' size-in-bits='160' id='type-id-54'>
+      <subrange length='20' type-id='type-id-1' id='type-id-55'/>
+
+    </array-type-def>
+    <class-decl name='_IO_codecvt' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-56'/>
+    <class-decl name='_IO_marker' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-57'/>
+    <class-decl name='_IO_wide_data' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-58'/>
+    <type-decl name='signed char' size-in-bits='8' id='type-id-59'/>
+    <type-decl name='unsigned short int' size-in-bits='16' id='type-id-60'/>
+    <typedef-decl name='FILE' type-id='type-id-61' filepath='/usr/include/bits/types/FILE.h' line='7' column='1' id='type-id-62'/>
+    <class-decl name='_IO_FILE' size-in-bits='1728' is-struct='yes' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='49' column='1' id='type-id-61'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='_flags' type-id='type-id-12' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='_IO_read_ptr' type-id='type-id-21' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='_IO_read_end' type-id='type-id-21' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='_IO_read_base' type-id='type-id-21' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='56' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='_IO_write_base' type-id='type-id-21' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='_IO_write_ptr' type-id='type-id-21' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='_IO_write_end' type-id='type-id-21' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='_IO_buf_base' type-id='type-id-21' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='_IO_buf_end' type-id='type-id-21' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='_IO_save_base' type-id='type-id-21' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='_IO_backup_base' type-id='type-id-21' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='_IO_save_end' type-id='type-id-21' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='_markers' type-id='type-id-63' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='_chain' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <var-decl name='_fileno' type-id='type-id-12' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='72' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='928'>
+        <var-decl name='_flags2' type-id='type-id-12' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <var-decl name='_old_offset' type-id='type-id-35' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <var-decl name='_cur_column' type-id='type-id-60' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1040'>
+        <var-decl name='_vtable_offset' type-id='type-id-59' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1048'>
+        <var-decl name='_shortbuf' type-id='type-id-53' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='79' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1088'>
+        <var-decl name='_lock' type-id='type-id-65' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='81' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <var-decl name='_offset' type-id='type-id-66' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='89' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <var-decl name='_codecvt' type-id='type-id-67' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='91' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <var-decl name='_wide_data' type-id='type-id-68' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='92' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1344'>
+        <var-decl name='_freeres_list' type-id='type-id-64' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='93' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1408'>
+        <var-decl name='_freeres_buf' type-id='type-id-30' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='94' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1472'>
+        <var-decl name='__pad5' type-id='type-id-28' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1536'>
+        <var-decl name='_mode' type-id='type-id-12' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1568'>
+        <var-decl name='_unused2' type-id='type-id-54' visibility='default' filepath='/usr/include/bits/types/struct_FILE.h' line='98' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='_IO_lock_t' type-id='type-id-17' filepath='/usr/include/bits/types/struct_FILE.h' line='43' column='1' id='type-id-69'/>
+    <typedef-decl name='__off64_t' type-id='type-id-13' filepath='/usr/include/bits/types.h' line='153' column='1' id='type-id-66'/>
+    <pointer-type-def type-id='type-id-62' size-in-bits='64' id='type-id-70'/>
+    <pointer-type-def type-id='type-id-61' size-in-bits='64' id='type-id-64'/>
+    <pointer-type-def type-id='type-id-56' size-in-bits='64' id='type-id-67'/>
+    <pointer-type-def type-id='type-id-69' size-in-bits='64' id='type-id-65'/>
+    <pointer-type-def type-id='type-id-57' size-in-bits='64' id='type-id-63'/>
+    <pointer-type-def type-id='type-id-58' size-in-bits='64' id='type-id-68'/>
+    <function-decl name='_gdbm_dump_ascii' mangled-name='_gdbm_dump_ascii' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmdump.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_dump_ascii'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmdump.c' line='54' column='1'/>
+      <parameter type-id='type-id-70' name='fp' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmdump.c' line='54' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='gdbm_dump_to_file' mangled-name='gdbm_dump_to_file' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmdump.c' line='136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_dump_to_file'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmdump.c' line='136' column='1'/>
+      <parameter type-id='type-id-70' name='fp' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmdump.c' line='136' column='1'/>
+      <parameter type-id='type-id-12' name='format' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmdump.c' line='136' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='gdbm_dump' mangled-name='gdbm_dump' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmdump.c' line='168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_dump'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmdump.c' line='168' column='1'/>
+      <parameter type-id='type-id-46' name='filename' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmdump.c' line='168' column='1'/>
+      <parameter type-id='type-id-12' name='fmt' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmdump.c' line='168' column='1'/>
+      <parameter type-id='type-id-12' name='open_flags' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmdump.c' line='168' column='1'/>
+      <parameter type-id='type-id-12' name='mode' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmdump.c' line='169' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='gdbmerrno.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <pointer-type-def type-id='type-id-12' size-in-bits='64' id='type-id-71'/>
+    <function-decl name='gdbm_errno_location' mangled-name='gdbm_errno_location' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmerrno.c' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_errno_location'>
+      <return type-id='type-id-71'/>
+    </function-decl>
+    <function-decl name='gdbm_set_errno' mangled-name='gdbm_set_errno' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmerrno.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_set_errno'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmerrno.c' line='38' column='1'/>
+      <parameter type-id='type-id-22' name='ec' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmerrno.c' line='38' column='1'/>
+      <parameter type-id='type-id-12' name='fatal' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmerrno.c' line='38' column='1'/>
+      <return type-id='type-id-17'/>
+    </function-decl>
+    <function-decl name='gdbm_last_errno' mangled-name='gdbm_last_errno' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmerrno.c' line='57' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_last_errno'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmerrno.c' line='57' column='1'/>
+      <return type-id='type-id-22'/>
+    </function-decl>
+    <function-decl name='gdbm_last_syserr' mangled-name='gdbm_last_syserr' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmerrno.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_last_syserr'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmerrno.c' line='68' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='gdbm_needs_recovery' mangled-name='gdbm_needs_recovery' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmerrno.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_needs_recovery'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmerrno.c' line='79' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='gdbm_clear_error' mangled-name='gdbm_clear_error' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmerrno.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_clear_error'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmerrno.c' line='88' column='1'/>
+      <return type-id='type-id-17'/>
+    </function-decl>
+    <function-decl name='gdbm_strerror' mangled-name='gdbm_strerror' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmerrno.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_strerror'>
+      <parameter type-id='type-id-22' name='error' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmerrno.c' line='146' column='1'/>
+      <return type-id='type-id-46'/>
+    </function-decl>
+    <function-decl name='gdbm_db_strerror' mangled-name='gdbm_db_strerror' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmerrno.c' line='154' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_db_strerror'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmerrno.c' line='154' column='1'/>
+      <return type-id='type-id-46'/>
+    </function-decl>
+    <function-decl name='gdbm_check_syserr' mangled-name='gdbm_check_syserr' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmerrno.c' line='193' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_check_syserr'>
+      <parameter type-id='type-id-22' name='n' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmerrno.c' line='193' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='gdbmexists.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <function-decl name='gdbm_exists' mangled-name='gdbm_exists' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmexists.c' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_exists'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmexists.c' line='29' column='1'/>
+      <parameter type-id='type-id-52' name='key' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmexists.c' line='29' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='gdbmexp.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <function-decl name='gdbm_export_to_file' mangled-name='gdbm_export_to_file' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmexp.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_export_to_file'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmexp.c' line='33' column='1'/>
+      <parameter type-id='type-id-70' name='fp' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmexp.c' line='33' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='gdbm_export' mangled-name='gdbm_export' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmexp.c' line='103' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_export'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmexp.c' line='103' column='1'/>
+      <parameter type-id='type-id-46' name='exportfile' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmexp.c' line='103' column='1'/>
+      <parameter type-id='type-id-12' name='flags' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmexp.c' line='103' column='1'/>
+      <parameter type-id='type-id-12' name='mode' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmexp.c' line='103' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='gdbmfdesc.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <function-decl name='gdbm_fdesc' mangled-name='gdbm_fdesc' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmfdesc.c' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_fdesc'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmfdesc.c' line='28' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='gdbmfetch.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <function-decl name='gdbm_fetch' mangled-name='gdbm_fetch' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmfetch.c' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_fetch'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmfetch.c' line='30' column='1'/>
+      <parameter type-id='type-id-52' name='key' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmfetch.c' line='30' column='1'/>
+      <return type-id='type-id-52'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='gdbmload.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+
+    <array-type-def dimensions='1' type-id='type-id-72' size-in-bits='256' id='type-id-73'>
+      <subrange length='2' type-id='type-id-1' id='type-id-74'/>
+
+    </array-type-def>
+    <type-decl name='unsigned char' size-in-bits='8' id='type-id-75'/>
+    <class-decl name='dump_file' size-in-bits='896' is-struct='yes' visibility='default' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='30' column='1' id='type-id-76'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='fp' type-id='type-id-70' visibility='default' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='line' type-id='type-id-28' visibility='default' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='linebuf' type-id='type-id-21' visibility='default' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='lbsize' type-id='type-id-28' visibility='default' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='lblevel' type-id='type-id-28' visibility='default' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='37' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='buffer' type-id='type-id-21' visibility='default' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='39' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='bufsize' type-id='type-id-28' visibility='default' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='40' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='buflevel' type-id='type-id-28' visibility='default' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='parmc' type-id='type-id-28' visibility='default' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='data' type-id='type-id-73' visibility='default' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='header' type-id='type-id-21' visibility='default' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='46' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='datbuf' size-in-bits='128' is-struct='yes' visibility='default' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='24' column='1' id='type-id-72'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='buffer' type-id='type-id-77' visibility='default' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='size' type-id='type-id-28' visibility='default' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='27' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-19' size-in-bits='64' id='type-id-78'/>
+    <pointer-type-def type-id='type-id-52' size-in-bits='64' id='type-id-79'/>
+    <pointer-type-def type-id='type-id-76' size-in-bits='64' id='type-id-80'/>
+    <pointer-type-def type-id='type-id-28' size-in-bits='64' id='type-id-81'/>
+    <pointer-type-def type-id='type-id-75' size-in-bits='64' id='type-id-77'/>
+    <pointer-type-def type-id='type-id-16' size-in-bits='64' id='type-id-82'/>
+    <function-decl name='get_len' mangled-name='get_len' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='get_len'>
+      <parameter type-id='type-id-46' name='param' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='230' column='1'/>
+      <parameter type-id='type-id-81' name='plen' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='230' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='read_record' mangled-name='read_record' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='251' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='read_record'>
+      <parameter type-id='type-id-80' name='file' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='251' column='1'/>
+      <parameter type-id='type-id-21' name='param' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='251' column='1'/>
+      <parameter type-id='type-id-12' name='n' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='251' column='1'/>
+      <parameter type-id='type-id-79' name='dat' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='251' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_gdbm_load_file' mangled-name='_gdbm_load_file' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='394' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_load_file'>
+      <parameter type-id='type-id-80' name='file' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='394' column='1'/>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='394' column='1'/>
+      <parameter type-id='type-id-78' name='ofp' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='394' column='1'/>
+      <parameter type-id='type-id-12' name='replace' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='395' column='1'/>
+      <parameter type-id='type-id-12' name='meta_mask' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='395' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='gdbm_load_bdb_dump' mangled-name='gdbm_load_bdb_dump' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_load_bdb_dump'>
+      <parameter type-id='type-id-80' name='file' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='533' column='1'/>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='533' column='1'/>
+      <parameter type-id='type-id-12' name='replace' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='533' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='gdbm_load_from_file' mangled-name='gdbm_load_from_file' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='570' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_load_from_file'>
+      <parameter type-id='type-id-78' name='pdbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='570' column='1'/>
+      <parameter type-id='type-id-70' name='fp' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='570' column='1'/>
+      <parameter type-id='type-id-12' name='replace' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='570' column='1'/>
+      <parameter type-id='type-id-12' name='meta_mask' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='571' column='1'/>
+      <parameter type-id='type-id-82' name='line' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='572' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='gdbm_load' mangled-name='gdbm_load' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='623' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_load'>
+      <parameter type-id='type-id-78' name='pdbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='623' column='1'/>
+      <parameter type-id='type-id-46' name='filename' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='623' column='1'/>
+      <parameter type-id='type-id-12' name='replace' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='623' column='1'/>
+      <parameter type-id='type-id-12' name='meta_mask' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='624' column='1'/>
+      <parameter type-id='type-id-82' name='line' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmload.c' line='625' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='gdbmopen.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <pointer-type-def type-id='type-id-34' size-in-bits='64' id='type-id-83'/>
+    <pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-84'/>
+    <function-decl name='gdbm_avail_table_valid_p' mangled-name='gdbm_avail_table_valid_p' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_avail_table_valid_p'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='82' column='1'/>
+      <parameter type-id='type-id-84' name='av' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='82' column='1'/>
+      <parameter type-id='type-id-12' name='count' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='82' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='gdbm_avail_block_validate' mangled-name='gdbm_avail_block_validate' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_avail_block_validate'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='110' column='1'/>
+      <parameter type-id='type-id-83' name='avblk' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='110' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='gdbm_bucket_avail_table_validate' mangled-name='gdbm_bucket_avail_table_validate' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='122' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_bucket_avail_table_validate'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='122' column='1'/>
+      <parameter type-id='type-id-29' name='bucket' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='122' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_gdbm_validate_header' mangled-name='_gdbm_validate_header' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='209' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_validate_header'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='209' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='gdbm_fd_open' mangled-name='gdbm_fd_open' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_fd_open'>
+      <parameter type-id='type-id-12' name='fd' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='235' column='1'/>
+      <parameter type-id='type-id-46' name='file_name' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='235' column='1'/>
+      <parameter type-id='type-id-12' name='block_size' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='235' column='1'/>
+      <parameter type-id='type-id-12' name='flags' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='236' column='1'/>
+      <parameter type-id='type-id-24' name='fatal_func' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='236' column='1'/>
+      <return type-id='type-id-19'/>
+    </function-decl>
+    <function-decl name='gdbm_open' mangled-name='gdbm_open' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_open'>
+      <parameter type-id='type-id-46' name='file' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='680' column='1'/>
+      <parameter type-id='type-id-12' name='block_size' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='680' column='1'/>
+      <parameter type-id='type-id-12' name='flags' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='680' column='1'/>
+      <parameter type-id='type-id-12' name='mode' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='680' column='1'/>
+      <parameter type-id='type-id-24' name='fatal_func' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='681' column='1'/>
+      <return type-id='type-id-19'/>
+    </function-decl>
+    <function-decl name='_gdbm_init_cache' mangled-name='_gdbm_init_cache' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='722' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_init_cache'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='722' column='1'/>
+      <parameter type-id='type-id-28' name='size' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='722' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_gdbm_cache_entry_invalidate' mangled-name='_gdbm_cache_entry_invalidate' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='756' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_cache_entry_invalidate'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='756' column='1'/>
+      <parameter type-id='type-id-12' name='index' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmopen.c' line='756' column='1'/>
+      <return type-id='type-id-17'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='gdbmimp.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <function-decl name='gdbm_import_from_file' mangled-name='gdbm_import_from_file' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmimp.c' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_import_from_file'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmimp.c' line='28' column='1'/>
+      <parameter type-id='type-id-70' name='fp' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmimp.c' line='28' column='1'/>
+      <parameter type-id='type-id-12' name='flag' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmimp.c' line='28' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='gdbm_import' mangled-name='gdbm_import' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmimp.c' line='172' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_import'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmimp.c' line='172' column='1'/>
+      <parameter type-id='type-id-46' name='importfile' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmimp.c' line='172' column='1'/>
+      <parameter type-id='type-id-12' name='flag' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmimp.c' line='172' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='gdbmreorg.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <function-decl name='gdbm_reorganize' mangled-name='gdbm_reorganize' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmreorg.c' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_reorganize'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmreorg.c' line='32' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='gdbmseq.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <function-decl name='gdbm_firstkey' mangled-name='gdbm_firstkey' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmseq.c' line='98' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_firstkey'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmseq.c' line='98' column='1'/>
+      <return type-id='type-id-52'/>
+    </function-decl>
+    <function-decl name='gdbm_nextkey' mangled-name='gdbm_nextkey' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmseq.c' line='133' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_nextkey'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmseq.c' line='133' column='1'/>
+      <parameter type-id='type-id-52' name='key' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmseq.c' line='133' column='1'/>
+      <return type-id='type-id-52'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='gdbmsetopt.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <function-decl name='gdbm_setopt' mangled-name='gdbm_setopt' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmsetopt.c' line='333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_setopt'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmsetopt.c' line='333' column='1'/>
+      <parameter type-id='type-id-12' name='optflag' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmsetopt.c' line='333' column='1'/>
+      <parameter type-id='type-id-30' name='optval' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmsetopt.c' line='333' column='1'/>
+      <parameter type-id='type-id-12' name='optlen' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmsetopt.c' line='333' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='gdbmstore.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <function-decl name='gdbm_store' mangled-name='gdbm_store' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmstore.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_store'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmstore.c' line='40' column='1'/>
+      <parameter type-id='type-id-52' name='key' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmstore.c' line='40' column='1'/>
+      <parameter type-id='type-id-52' name='content' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmstore.c' line='40' column='1'/>
+      <parameter type-id='type-id-12' name='flags' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmstore.c' line='40' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='gdbmsync.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <function-decl name='gdbm_sync' mangled-name='gdbm_sync' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmsync.c' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_sync'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/gdbmsync.c' line='28' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='base64.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <qualified-type-def type-id='type-id-75' const='yes' id='type-id-85'/>
+    <pointer-type-def type-id='type-id-85' size-in-bits='64' id='type-id-86'/>
+    <pointer-type-def type-id='type-id-77' size-in-bits='64' id='type-id-87'/>
+    <function-decl name='_gdbm_base64_encode' mangled-name='_gdbm_base64_encode' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/base64.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_base64_encode'>
+      <parameter type-id='type-id-86' name='input' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/base64.c' line='35' column='1'/>
+      <parameter type-id='type-id-28' name='input_len' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/base64.c' line='35' column='1'/>
+      <parameter type-id='type-id-87' name='output' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/base64.c' line='36' column='1'/>
+      <parameter type-id='type-id-81' name='output_size' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/base64.c' line='36' column='1'/>
+      <parameter type-id='type-id-81' name='nbytes' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/base64.c' line='37' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_gdbm_base64_decode' mangled-name='_gdbm_base64_decode' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/base64.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_base64_decode'>
+      <parameter type-id='type-id-86' name='input' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/base64.c' line='79' column='1'/>
+      <parameter type-id='type-id-28' name='input_len' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/base64.c' line='79' column='1'/>
+      <parameter type-id='type-id-87' name='output' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/base64.c' line='80' column='1'/>
+      <parameter type-id='type-id-81' name='output_size' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/base64.c' line='80' column='1'/>
+      <parameter type-id='type-id-81' name='inbytes' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/base64.c' line='81' column='1'/>
+      <parameter type-id='type-id-81' name='outbytes' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/base64.c' line='81' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='bucket.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <function-decl name='_gdbm_new_bucket' mangled-name='_gdbm_new_bucket' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_new_bucket'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='29' column='1'/>
+      <parameter type-id='type-id-29' name='bucket' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='29' column='1'/>
+      <parameter type-id='type-id-12' name='bits' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='29' column='1'/>
+      <return type-id='type-id-17'/>
+    </function-decl>
+    <function-decl name='gdbm_dir_entry_valid_p' mangled-name='gdbm_dir_entry_valid_p' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_dir_entry_valid_p'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='53' column='1'/>
+      <parameter type-id='type-id-12' name='dir_index' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='53' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_gdbm_get_bucket' mangled-name='_gdbm_get_bucket' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_get_bucket'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='68' column='1'/>
+      <parameter type-id='type-id-12' name='dir_index' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='68' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_gdbm_write_bucket' mangled-name='_gdbm_write_bucket' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='436' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_write_bucket'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='436' column='1'/>
+      <parameter type-id='type-id-27' name='ca_entry' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='436' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_gdbm_read_bucket_at' mangled-name='_gdbm_read_bucket_at' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_read_bucket_at'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='170' column='1'/>
+      <parameter type-id='type-id-31' name='off' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='170' column='1'/>
+      <parameter type-id='type-id-29' name='bucket' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='170' column='1'/>
+      <parameter type-id='type-id-28' name='size' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='171' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_gdbm_split_bucket' mangled-name='_gdbm_split_bucket' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_split_bucket'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='214' column='1'/>
+      <parameter type-id='type-id-12' name='next_insert' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/bucket.c' line='214' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='falloc.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <function-decl name='_gdbm_alloc' mangled-name='_gdbm_alloc' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/falloc.c' line='52' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_alloc'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/falloc.c' line='52' column='1'/>
+      <parameter type-id='type-id-12' name='num_bytes' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/falloc.c' line='52' column='1'/>
+      <return type-id='type-id-31'/>
+    </function-decl>
+    <function-decl name='_gdbm_put_av_elem' mangled-name='_gdbm_put_av_elem' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/falloc.c' line='423' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_put_av_elem'>
+      <parameter type-id='type-id-2' name='new_el' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/falloc.c' line='423' column='1'/>
+      <parameter type-id='type-id-84' name='av_table' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/falloc.c' line='423' column='1'/>
+      <parameter type-id='type-id-71' name='av_count' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/falloc.c' line='423' column='1'/>
+      <parameter type-id='type-id-12' name='can_merge' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/falloc.c' line='424' column='1'/>
+      <return type-id='type-id-17'/>
+    </function-decl>
+    <function-decl name='_gdbm_free' mangled-name='_gdbm_free' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/falloc.c' line='100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_free'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/falloc.c' line='100' column='1'/>
+      <parameter type-id='type-id-31' name='file_adr' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/falloc.c' line='100' column='1'/>
+      <parameter type-id='type-id-12' name='num_bytes' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/falloc.c' line='100' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='findkey.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <pointer-type-def type-id='type-id-21' size-in-bits='64' id='type-id-88'/>
+    <function-decl name='gdbm_bucket_element_valid_p' mangled-name='gdbm_bucket_element_valid_p' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/findkey.c' line='26' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_bucket_element_valid_p'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/findkey.c' line='26' column='1'/>
+      <parameter type-id='type-id-12' name='elem_loc' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/findkey.c' line='26' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_gdbm_read_entry' mangled-name='_gdbm_read_entry' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/findkey.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_read_entry'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/findkey.c' line='44' column='1'/>
+      <parameter type-id='type-id-12' name='elem_loc' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/findkey.c' line='44' column='1'/>
+      <return type-id='type-id-21'/>
+    </function-decl>
+    <function-decl name='_gdbm_findkey' mangled-name='_gdbm_findkey' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/findkey.c' line='140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_findkey'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/findkey.c' line='140' column='1'/>
+      <parameter type-id='type-id-52' name='key' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/findkey.c' line='140' column='1'/>
+      <parameter type-id='type-id-88' name='ret_dptr' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/findkey.c' line='140' column='1'/>
+      <parameter type-id='type-id-71' name='ret_hash_val' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/findkey.c' line='140' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='fullio.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <function-decl name='_gdbm_full_read' mangled-name='_gdbm_full_read' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/fullio.c' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_full_read'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/fullio.c' line='25' column='1'/>
+      <parameter type-id='type-id-30' name='buffer' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/fullio.c' line='25' column='1'/>
+      <parameter type-id='type-id-28' name='size' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/fullio.c' line='25' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_gdbm_full_write' mangled-name='_gdbm_full_write' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/fullio.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_full_write'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/fullio.c' line='53' column='1'/>
+      <parameter type-id='type-id-30' name='buffer' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/fullio.c' line='53' column='1'/>
+      <parameter type-id='type-id-28' name='size' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/fullio.c' line='53' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_gdbm_file_extend' mangled-name='_gdbm_file_extend' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/fullio.c' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_file_extend'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/fullio.c' line='82' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/fullio.c' line='82' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='hash.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <function-decl name='_gdbm_hash' mangled-name='_gdbm_hash' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/hash.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_hash'>
+      <parameter type-id='type-id-52' name='key' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/hash.c' line='31' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_gdbm_bucket_dir' mangled-name='_gdbm_bucket_dir' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/hash.c' line='48' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_bucket_dir'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/hash.c' line='48' column='1'/>
+      <parameter type-id='type-id-12' name='hash' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/hash.c' line='48' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_gdbm_hash_key' mangled-name='_gdbm_hash_key' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/hash.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_hash_key'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/hash.c' line='54' column='1'/>
+      <parameter type-id='type-id-52' name='key' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/hash.c' line='54' column='1'/>
+      <parameter type-id='type-id-71' name='hash' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/hash.c' line='54' column='1'/>
+      <parameter type-id='type-id-71' name='bucket' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/hash.c' line='54' column='1'/>
+      <parameter type-id='type-id-71' name='offset' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/hash.c' line='54' column='1'/>
+      <return type-id='type-id-17'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='lock.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <function-decl name='_gdbm_unlock_file' mangled-name='_gdbm_unlock_file' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/lock.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_unlock_file'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/lock.c' line='60' column='1'/>
+      <return type-id='type-id-17'/>
+    </function-decl>
+    <function-decl name='_gdbm_lock_file' mangled-name='_gdbm_lock_file' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/lock.c' line='98' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_lock_file'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/lock.c' line='98' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='mmap.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <typedef-decl name='ssize_t' type-id='type-id-89' filepath='/usr/include/sys/types.h' line='108' column='1' id='type-id-90'/>
+    <typedef-decl name='__ssize_t' type-id='type-id-13' filepath='/usr/include/bits/types.h' line='193' column='1' id='type-id-89'/>
+    <function-decl name='_gdbm_file_size' mangled-name='_gdbm_file_size' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='60' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_file_size'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='60' column='1'/>
+      <parameter type-id='type-id-26' name='psize' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='60' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_gdbm_mapped_unmap' mangled-name='_gdbm_mapped_unmap' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_mapped_unmap'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='74' column='1'/>
+      <return type-id='type-id-17'/>
+    </function-decl>
+    <function-decl name='_gdbm_internal_remap' mangled-name='_gdbm_internal_remap' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='90' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_internal_remap'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='90' column='1'/>
+      <parameter type-id='type-id-28' name='size' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='90' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_gdbm_mapped_remap' mangled-name='_gdbm_mapped_remap' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_mapped_remap'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='146' column='1'/>
+      <parameter type-id='type-id-31' name='size' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='146' column='1'/>
+      <parameter type-id='type-id-12' name='flag' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='146' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_gdbm_mapped_init' mangled-name='_gdbm_mapped_init' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='224' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_mapped_init'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='224' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_gdbm_mapped_read' mangled-name='_gdbm_mapped_read' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_mapped_read'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='235' column='1'/>
+      <parameter type-id='type-id-30' name='buffer' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='235' column='1'/>
+      <parameter type-id='type-id-28' name='len' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='235' column='1'/>
+      <return type-id='type-id-90'/>
+    </function-decl>
+    <function-decl name='_gdbm_mapped_write' mangled-name='_gdbm_mapped_write' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='289' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_mapped_write'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='289' column='1'/>
+      <parameter type-id='type-id-30' name='buffer' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='289' column='1'/>
+      <parameter type-id='type-id-28' name='len' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='289' column='1'/>
+      <return type-id='type-id-90'/>
+    </function-decl>
+    <function-decl name='_gdbm_mapped_lseek' mangled-name='_gdbm_mapped_lseek' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_mapped_lseek'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='346' column='1'/>
+      <parameter type-id='type-id-31' name='offset' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='346' column='1'/>
+      <parameter type-id='type-id-12' name='whence' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='346' column='1'/>
+      <return type-id='type-id-31'/>
+    </function-decl>
+    <function-decl name='_gdbm_mapped_sync' mangled-name='_gdbm_mapped_sync' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='397' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_mapped_sync'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/mmap.c' line='397' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='recover.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <typedef-decl name='gdbm_recovery' type-id='type-id-91' filepath='./gdbm.h' line='157' column='1' id='type-id-92'/>
+    <class-decl name='gdbm_recovery_s' size-in-bits='704' is-struct='yes' visibility='default' filepath='./gdbm.h' line='137' column='1' id='type-id-91'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='errfun' type-id='type-id-93' visibility='default' filepath='./gdbm.h' line='142' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='data' type-id='type-id-30' visibility='default' filepath='./gdbm.h' line='143' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='max_failed_keys' type-id='type-id-28' visibility='default' filepath='./gdbm.h' line='145' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='max_failed_buckets' type-id='type-id-28' visibility='default' filepath='./gdbm.h' line='146' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='max_failures' type-id='type-id-28' visibility='default' filepath='./gdbm.h' line='147' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='recovered_keys' type-id='type-id-28' visibility='default' filepath='./gdbm.h' line='151' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='recovered_buckets' type-id='type-id-28' visibility='default' filepath='./gdbm.h' line='152' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='failed_keys' type-id='type-id-28' visibility='default' filepath='./gdbm.h' line='153' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='failed_buckets' type-id='type-id-28' visibility='default' filepath='./gdbm.h' line='154' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='duplicate_keys' type-id='type-id-28' visibility='default' filepath='./gdbm.h' line='155' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='backup_name' type-id='type-id-21' visibility='default' filepath='./gdbm.h' line='156' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-92' size-in-bits='64' id='type-id-94'/>
+    <pointer-type-def type-id='type-id-95' size-in-bits='64' id='type-id-93'/>
+    <function-decl name='gdbm_copy_meta' mangled-name='gdbm_copy_meta' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/recover.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_copy_meta'>
+      <parameter type-id='type-id-19' name='dst' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/recover.c' line='23' column='1'/>
+      <parameter type-id='type-id-19' name='src' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/recover.c' line='23' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_gdbm_next_bucket_dir' mangled-name='_gdbm_next_bucket_dir' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/recover.c' line='189' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_next_bucket_dir'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/recover.c' line='189' column='1'/>
+      <parameter type-id='type-id-12' name='bucket_dir' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/recover.c' line='189' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='gdbm_recover' mangled-name='gdbm_recover' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/recover.c' line='351' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_recover'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/recover.c' line='351' column='1'/>
+      <parameter type-id='type-id-94' name='rcvr' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/recover.c' line='351' column='1'/>
+      <parameter type-id='type-id-12' name='flags' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/recover.c' line='351' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-type size-in-bits='64' id='type-id-95'>
+      <parameter type-id='type-id-30'/>
+      <parameter type-id='type-id-46'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-17'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='update.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <function-decl name='_gdbm_end_update' mangled-name='_gdbm_end_update' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/update.c' line='62' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_end_update'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/update.c' line='62' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_gdbm_fatal' mangled-name='_gdbm_fatal' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/update.c' line='138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_gdbm_fatal'>
+      <parameter type-id='type-id-19' name='dbf' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/update.c' line='138' column='1'/>
+      <parameter type-id='type-id-46' name='val' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/update.c' line='138' column='1'/>
+      <return type-id='type-id-17'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='version.c' comp-dir-path='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src' language='LANG_C99'>
+    <qualified-type-def type-id='type-id-12' const='yes' id='type-id-96'/>
+    <pointer-type-def type-id='type-id-96' size-in-bits='64' id='type-id-97'/>
+    <function-decl name='gdbm_version_cmp' mangled-name='gdbm_version_cmp' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/version.c' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='gdbm_version_cmp'>
+      <parameter type-id='type-id-97' name='a' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/version.c' line='39' column='1'/>
+      <parameter type-id='type-id-97' name='b' filepath='/tmp/ben/spack-stage/spack-stage-dQKT1q/spack-src/src/version.c' line='39' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+  </abi-instr>
+</abi-corpus>
index f236296..7c65696 100644 (file)
@@ -245,6 +245,14 @@ InOutSpec in_out_specs[] =
     "output/test-read-dwarf/PR25007-sdhci.ko.abi",
   },
 #endif
+#if defined HAVE_DW_FORM_strx
+  {
+    "data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0",
+    "",
+    "data/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi",
+    "output/test-read-dwarf/PR25042-libgdbm-clang-dwarf5.so.6.0.0.abi",
+  },
+#endif
   // This should be the last entry.
   {NULL, NULL, NULL, NULL}
 };