[binutils-gdb] Fix self-test failure in addrmap

Tom Tromey tromey@sourceware.org
Sun Jun 12 21:56:16 GMT 2022


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=aa09537375eb92448b2ba4ac5af5abac06c54cfc

commit aa09537375eb92448b2ba4ac5af5abac06c54cfc
Author: Tom Tromey <tom@tromey.com>
Date:   Sun Jun 12 15:53:40 2022 -0600

    Fix self-test failure in addrmap
    
    Mark pointed out that my recent addrmap C++-ficiation changes caused a
    regression in the self-tests.  This patch fixes the problem by
    updating this test not to allocate the mutable addrmap on an obstack.

Diff:
---
 gdb/addrmap.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/gdb/addrmap.c b/gdb/addrmap.c
index 06f3a831df9..8c357fbf7e5 100644
--- a/gdb/addrmap.c
+++ b/gdb/addrmap.c
@@ -429,9 +429,8 @@ test_addrmap ()
   void *val2 = &array[2];
 
   /* Create mutable addrmap.  */
-  struct obstack temp_obstack;
-  obstack_init (&temp_obstack);
-  struct addrmap_mutable *map = new (&temp_obstack) addrmap_mutable;
+  auto_obstack temp_obstack;
+  std::unique_ptr<struct addrmap_mutable> map (new addrmap_mutable);
   SELF_CHECK (map != nullptr);
 
   /* Check initial state.  */
@@ -445,7 +444,7 @@ test_addrmap ()
 
   /* Create corresponding fixed addrmap.  */
   struct addrmap *map2
-    = new (&temp_obstack) addrmap_fixed (&temp_obstack, map);
+    = new (&temp_obstack) addrmap_fixed (&temp_obstack, map.get ());
   SELF_CHECK (map2 != nullptr);
   CHECK_ADDRMAP_FIND (map2, array, 0, 9, nullptr);
   CHECK_ADDRMAP_FIND (map2, array, 10, 12, val1);
@@ -479,9 +478,6 @@ test_addrmap ()
   CHECK_ADDRMAP_FIND (map, array, 10, 12, val1);
   CHECK_ADDRMAP_FIND (map, array, 13, 13, val2);
   CHECK_ADDRMAP_FIND (map, array, 14, 19, nullptr);
-
-  /* Cleanup.  */
-  obstack_free (&temp_obstack, NULL);
 }
 
 } // namespace selftests


More information about the Gdb-cvs mailing list