aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2021-05-17 14:16:06 -0600
committerTom Tromey <tom@tromey.com>2021-05-17 14:16:06 -0600
commit839118f920751fc9fd06463f6820c40f3b0baabc (patch)
tree70ff71d85b99f6c25db349a47ba400e463cb43e3 /gdb
parent8ae78a440e4e2ea7ecda9b33a6b3ec63bbcd3c65 (diff)
downloadgdb-839118f920751fc9fd06463f6820c40f3b0baabc.zip
gdb-839118f920751fc9fd06463f6820c40f3b0baabc.tar.gz
gdb-839118f920751fc9fd06463f6820c40f3b0baabc.tar.bz2
Move some dwarf2_cu methods to new file
This moves some of the dwarf2_cu methods to a new file, dwarf2/cu.c. gdb/ChangeLog 2021-05-17 Tom Tromey <tom@tromey.com> * dwarf2/read.c (dwarf2_cu::addr_sized_int_type) (dwarf2_cu::start_symtab, dwarf2_cu::addr_type) (dwarf2_cu::dwarf2_cu): Move to cu.c. * dwarf2/cu.c: New file. * Makefile.in (COMMON_SFILES): Add dwarf2/cu.c.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/Makefile.in1
-rw-r--r--gdb/dwarf2/cu.c89
-rw-r--r--gdb/dwarf2/read.c67
4 files changed, 98 insertions, 67 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3f44f21..9ff5445 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,13 @@
2021-05-17 Tom Tromey <tom@tromey.com>
+ * dwarf2/read.c (dwarf2_cu::addr_sized_int_type)
+ (dwarf2_cu::start_symtab, dwarf2_cu::addr_type)
+ (dwarf2_cu::dwarf2_cu): Move to cu.c.
+ * dwarf2/cu.c: New file.
+ * Makefile.in (COMMON_SFILES): Add dwarf2/cu.c.
+
+2021-05-17 Tom Tromey <tom@tromey.com>
+
* Makefile.in (HFILES_NO_SRCDIR): Add dwarf2/cu.h.
* dwarf2/read.c (struct delayed_method_info, struct dwarf2_cu):
Move to cu.h.
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 4737cc9..1f37fe4 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -1026,6 +1026,7 @@ COMMON_SFILES = \
dwarf2/abbrev.c \
dwarf2/attribute.c \
dwarf2/comp-unit.c \
+ dwarf2/cu.c \
dwarf2/dwz.c \
dwarf2/expr.c \
dwarf2/frame-tailcall.c \
diff --git a/gdb/dwarf2/cu.c b/gdb/dwarf2/cu.c
new file mode 100644
index 0000000..4f13f4f
--- /dev/null
+++ b/gdb/dwarf2/cu.c
@@ -0,0 +1,89 @@
+/* DWARF CU data structure
+
+ Copyright (C) 2021 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "defs.h"
+#include "dwarf2/cu.h"
+#include "dwarf2/read.h"
+
+/* Initialize dwarf2_cu to read PER_CU, in the context of PER_OBJFILE. */
+
+dwarf2_cu::dwarf2_cu (dwarf2_per_cu_data *per_cu,
+ dwarf2_per_objfile *per_objfile)
+ : per_cu (per_cu),
+ per_objfile (per_objfile),
+ mark (false),
+ has_loclist (false),
+ checked_producer (false),
+ producer_is_gxx_lt_4_6 (false),
+ producer_is_gcc_lt_4_3 (false),
+ producer_is_icc (false),
+ producer_is_icc_lt_14 (false),
+ producer_is_codewarrior (false),
+ processing_has_namespace_info (false)
+{
+}
+
+/* See cu.h. */
+
+struct type *
+dwarf2_cu::addr_sized_int_type (bool unsigned_p) const
+{
+ int addr_size = this->per_cu->addr_size ();
+ return this->per_objfile->int_type (addr_size, unsigned_p);
+}
+
+/* Start a symtab for DWARF. NAME, COMP_DIR, LOW_PC are passed to the
+ buildsym_compunit constructor. */
+
+struct compunit_symtab *
+dwarf2_cu::start_symtab (const char *name, const char *comp_dir,
+ CORE_ADDR low_pc)
+{
+ gdb_assert (m_builder == nullptr);
+
+ m_builder.reset (new struct buildsym_compunit
+ (this->per_objfile->objfile,
+ name, comp_dir, language, low_pc));
+
+ list_in_scope = get_builder ()->get_file_symbols ();
+
+ get_builder ()->record_debugformat ("DWARF 2");
+ get_builder ()->record_producer (producer);
+
+ processing_has_namespace_info = false;
+
+ return get_builder ()->get_compunit_symtab ();
+}
+
+/* See read.h. */
+
+struct type *
+dwarf2_cu::addr_type () const
+{
+ struct objfile *objfile = this->per_objfile->objfile;
+ struct type *void_type = objfile_type (objfile)->builtin_void;
+ struct type *addr_type = lookup_pointer_type (void_type);
+ int addr_size = this->per_cu->addr_size ();
+
+ if (TYPE_LENGTH (addr_type) == addr_size)
+ return addr_type;
+
+ addr_type = addr_sized_int_type (addr_type->is_unsigned ());
+ return addr_type;
+}
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index d0c6bc3..0faa682 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -18341,15 +18341,6 @@ dwarf2_per_objfile::int_type (int size_in_bytes, bool unsigned_p) const
gdb_assert_not_reached ("unable to find suitable integer type");
}
-/* See read.h. */
-
-struct type *
-dwarf2_cu::addr_sized_int_type (bool unsigned_p) const
-{
- int addr_size = this->per_cu->addr_size ();
- return this->per_objfile->int_type (addr_size, unsigned_p);
-}
-
/* Read the DW_AT_type attribute for a sub-range. If this attribute is not
present (which is valid) then compute the default type based on the
compilation units address size. */
@@ -21446,29 +21437,6 @@ dwarf2_start_subfile (struct dwarf2_cu *cu, const char *filename,
cu->get_builder ()->start_subfile (filename);
}
-/* Start a symtab for DWARF. NAME, COMP_DIR, LOW_PC are passed to the
- buildsym_compunit constructor. */
-
-struct compunit_symtab *
-dwarf2_cu::start_symtab (const char *name, const char *comp_dir,
- CORE_ADDR low_pc)
-{
- gdb_assert (m_builder == nullptr);
-
- m_builder.reset (new struct buildsym_compunit
- (this->per_objfile->objfile,
- name, comp_dir, language, low_pc));
-
- list_in_scope = get_builder ()->get_file_symbols ();
-
- get_builder ()->record_debugformat ("DWARF 2");
- get_builder ()->record_producer (producer);
-
- processing_has_namespace_info = false;
-
- return get_builder ()->get_compunit_symtab ();
-}
-
static void
var_decode_location (struct attribute *attr, struct symbol *sym,
struct dwarf2_cu *cu)
@@ -24319,23 +24287,6 @@ dwarf2_per_cu_data::ref_addr_size () const
return header->offset_size;
}
-/* See read.h. */
-
-struct type *
-dwarf2_cu::addr_type () const
-{
- struct objfile *objfile = this->per_objfile->objfile;
- struct type *void_type = objfile_type (objfile)->builtin_void;
- struct type *addr_type = lookup_pointer_type (void_type);
- int addr_size = this->per_cu->addr_size ();
-
- if (TYPE_LENGTH (addr_type) == addr_size)
- return addr_type;
-
- addr_type = addr_sized_int_type (addr_type->is_unsigned ());
- return addr_type;
-}
-
/* A helper function for dwarf2_find_containing_comp_unit that returns
the index of the result, and that searches a vector. It will
return a result even if the offset in question does not actually
@@ -24459,24 +24410,6 @@ run_test ()
#endif /* GDB_SELF_TEST */
-/* Initialize dwarf2_cu to read PER_CU, in the context of PER_OBJFILE. */
-
-dwarf2_cu::dwarf2_cu (dwarf2_per_cu_data *per_cu,
- dwarf2_per_objfile *per_objfile)
- : per_cu (per_cu),
- per_objfile (per_objfile),
- mark (false),
- has_loclist (false),
- checked_producer (false),
- producer_is_gxx_lt_4_6 (false),
- producer_is_gcc_lt_4_3 (false),
- producer_is_icc (false),
- producer_is_icc_lt_14 (false),
- producer_is_codewarrior (false),
- processing_has_namespace_info (false)
-{
-}
-
/* Initialize basic fields of dwarf_cu CU according to DIE COMP_UNIT_DIE. */
static void