Add block range data structure for blocks with non-contiguous address ranges
[deliverable/binutils-gdb.git] / gdb / block.c
index f26d169a7d57df494dbe753a6dfb33005a5f5fc0..85e6c618d7c061b3fc90a75b7704484aa281e735 100644 (file)
@@ -807,3 +807,24 @@ block_find_non_opaque_type_preferred (struct symbol *sym, void *data)
   *best = sym;
   return 0;
 }
+
+/* See block.h.  */
+
+struct blockranges *
+make_blockranges (struct objfile *objfile,
+                  const std::vector<blockrange> &rangevec)
+{
+  struct blockranges *blr;
+  size_t n = rangevec.size();
+
+  blr = (struct blockranges *)
+    obstack_alloc (&objfile->objfile_obstack,
+                   sizeof (struct blockranges)
+                  + (n - 1) * sizeof (struct blockrange));
+
+  blr->nranges = n;
+  for (int i = 0; i < n; i++)
+    blr->range[i] = rangevec[i];
+  return blr;
+}
+
This page took 0.022964 seconds and 4 git commands to generate.