Rebase to FSF GDB 8.1.

This commit is contained in:
Sergio Durigan Junior 2018-01-31 17:47:02 -05:00
parent 3a396f9ecd
commit 6f7202ecff
25 changed files with 137 additions and 134 deletions

View File

@ -1 +1 @@
b9fcc8455866297c3f9fb24efaebf739c8e687b5
b755db3c98137baaff8a154d936d326d9a9c72a7

View File

@ -14,10 +14,10 @@ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=218379
1 file changed, 7 insertions(+)
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 146dc2e421..e7223a9a98 100644
index 81f4fc9ec5..a7e8431cfe 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -3167,6 +3167,13 @@ find_pc_sect_line (CORE_ADDR pc, struct obj_section *section, int notcurrent)
@@ -3166,6 +3166,13 @@ find_pc_sect_line (CORE_ADDR pc, struct obj_section *section, int notcurrent)
SYMBOL_LINKAGE_NAME (msymbol)); */
;
/* fall through */

View File

@ -104,7 +104,7 @@ index e2c1e81266..1b75530f91 100644
{
return strcoll (*ap, *bp);
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index ebded1753f..ba3bed6c63 100644
index 2c972d5e74..64329af71e 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -3725,6 +3725,16 @@ read_index_from_section (struct objfile *objfile,

View File

@ -714,7 +714,7 @@ index 1d11a97080..edd7028f76 100644
#undef HAVE_LIBUNWIND_IA64_H
diff --git a/gdb/configure b/gdb/configure
index db610f32fc..da188f195f 100755
index 092893d757..1cecdbc3b5 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -716,6 +716,11 @@ PKGVERSION
@ -1268,7 +1268,7 @@ index db610f32fc..da188f195f 100755
subdirs="$subdirs testsuite"
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 3db44ae758..8473f065eb 100644
index d4133ea71e..e232c1adcb 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -167,6 +167,199 @@ AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escape_dir,

View File

@ -1054,7 +1054,7 @@ index 8bdafb0ba4..2f2cbd3dea 100644
@cindex debug link sections
A debug link is a special section of the executable file named
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index a1bc7eda75..86d496312e 100644
index 98e7d842f0..c8db955f2f 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -2907,7 +2907,7 @@ dwarf2_get_dwz_file (void)

View File

@ -22,7 +22,7 @@ FileName: gdb-6.6-bz235197-fork-detach-info.patch
create mode 100644 gdb/testsuite/gdb.base/fork-detach.exp
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 7e8d8da588..13d0fd2ad9 100644
index e1d11234e0..23439979b5 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -461,7 +461,7 @@ holding the child stopped. Try \"set detach-on-fork\" or \

View File

@ -16,7 +16,7 @@ FileName: gdb-6.6-scheduler_locking-step-is-default.patch
5 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 13d0fd2ad9..8e30aed3b8 100644
index 23439979b5..1d0f731954 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -2202,7 +2202,7 @@ static const char *const scheduler_enums[] = {

View File

@ -15,7 +15,7 @@ FileName: gdb-6.8-attach-signalled-detach-stopped.patch
3 files changed, 111 insertions(+), 1 deletion(-)
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 91d6004d0a..64ff5f6bdf 100644
index b468d02fd6..16561dd119 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -606,6 +606,13 @@ holding the child stopped. Try \"set detach-on-fork\" or \

View File

@ -12,10 +12,10 @@ FileName: gdb-archer-pie-addons.patch
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
index 923ba101ca..9703d966a7 100644
index 179238ce82..5597038357 100644
--- a/gdb/gdbtypes.h
+++ b/gdb/gdbtypes.h
@@ -443,6 +443,7 @@ enum field_loc_kind
@@ -453,6 +453,7 @@ enum field_loc_kind
{
FIELD_LOC_KIND_BITPOS, /**< bitpos */
FIELD_LOC_KIND_ENUMVAL, /**< enumval */
@ -23,7 +23,7 @@ index 923ba101ca..9703d966a7 100644
FIELD_LOC_KIND_PHYSADDR, /**< physaddr */
FIELD_LOC_KIND_PHYSNAME, /**< physname */
FIELD_LOC_KIND_DWARF_BLOCK /**< dwarf_block */
@@ -494,6 +495,7 @@ union field_location
@@ -504,6 +505,7 @@ union field_location
field. Otherwise, physname is the mangled label of the
static field. */
@ -31,7 +31,7 @@ index 923ba101ca..9703d966a7 100644
CORE_ADDR physaddr;
const char *physname;
@@ -1342,6 +1344,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *);
@@ -1362,6 +1364,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *);
#define FIELD_ENUMVAL_LVAL(thisfld) ((thisfld).loc.enumval)
#define FIELD_ENUMVAL(thisfld) (FIELD_ENUMVAL_LVAL (thisfld) + 0)
#define FIELD_STATIC_PHYSNAME(thisfld) ((thisfld).loc.physname)
@ -39,7 +39,7 @@ index 923ba101ca..9703d966a7 100644
#define FIELD_STATIC_PHYSADDR(thisfld) ((thisfld).loc.physaddr)
#define FIELD_DWARF_BLOCK(thisfld) ((thisfld).loc.dwarf_block)
#define SET_FIELD_BITPOS(thisfld, bitpos) \
@@ -1353,6 +1356,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *);
@@ -1373,6 +1376,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *);
#define SET_FIELD_PHYSNAME(thisfld, name) \
(FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSNAME, \
FIELD_STATIC_PHYSNAME (thisfld) = (name))
@ -47,7 +47,7 @@ index 923ba101ca..9703d966a7 100644
#define SET_FIELD_PHYSADDR(thisfld, addr) \
(FIELD_LOC_KIND (thisfld) = FIELD_LOC_KIND_PHYSADDR, \
FIELD_STATIC_PHYSADDR (thisfld) = (addr))
@@ -1369,6 +1373,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *);
@@ -1389,6 +1393,7 @@ extern void set_type_vptr_basetype (struct type *, struct type *);
#define TYPE_FIELD_BITPOS(thistype, n) FIELD_BITPOS (TYPE_FIELD (thistype, n))
#define TYPE_FIELD_ENUMVAL(thistype, n) FIELD_ENUMVAL (TYPE_FIELD (thistype, n))
#define TYPE_FIELD_STATIC_PHYSNAME(thistype, n) FIELD_STATIC_PHYSNAME (TYPE_FIELD (thistype, n))

View File

@ -482,10 +482,10 @@ index 0000000000..8742680614
+
+InScope ()
diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h
index 4556323472..826122b9b9 100644
index 89bbc6987b..69dbb69c06 100644
--- a/gdb/python/python-internal.h
+++ b/gdb/python/python-internal.h
@@ -651,6 +651,9 @@ class gdbpy_enter_varobj : public gdbpy_enter
@@ -657,6 +657,9 @@ class gdbpy_enter_varobj : public gdbpy_enter
};

View File

@ -81,10 +81,10 @@ index edd7028f76..4de3e842d1 100644
#undef HAVE_SETLOCALE
diff --git a/gdb/configure b/gdb/configure
index da188f195f..aa944a08c4 100755
index 1cecdbc3b5..904cc453ad 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -15679,6 +15679,64 @@ cat >>confdefs.h <<_ACEOF
@@ -15681,6 +15681,64 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
@ -150,10 +150,10 @@ index da188f195f..aa944a08c4 100755
# Support for --with-sysroot is a copy of GDB_AC_WITH_DIR,
# except that the argument to --with-sysroot is optional.
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 8473f065eb..1b6c4d77c3 100644
index e232c1adcb..1557760ed8 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -2042,6 +2042,10 @@ case $host_os in
@@ -2043,6 +2043,10 @@ case $host_os in
esac
AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.])
@ -189,10 +189,10 @@ index dda7c1f150..b2a34b92ce 100644
#undef HAVE_SETNS
diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure
index ca51321c84..8ba1fce5d4 100755
index 340ca7a19e..6d7c9b2326 100755
--- a/gdb/gdbserver/configure
+++ b/gdb/gdbserver/configure
@@ -8453,6 +8453,64 @@ if $want_ipa ; then
@@ -8455,6 +8455,64 @@ if $want_ipa ; then
fi
fi
@ -258,10 +258,10 @@ index ca51321c84..8ba1fce5d4 100755
diff --git a/gdb/gdbserver/configure.ac b/gdb/gdbserver/configure.ac
index 7ea3654f63..6772479375 100644
index 6727959e61..7c0f508275 100644
--- a/gdb/gdbserver/configure.ac
+++ b/gdb/gdbserver/configure.ac
@@ -487,6 +487,10 @@ if $want_ipa ; then
@@ -488,6 +488,10 @@ if $want_ipa ; then
fi
fi

View File

@ -37,10 +37,10 @@ debugging problem of GOMP outside of the scope of this Bug.
create mode 100644 gdb/testsuite/gdb.fortran/omp-step.f90
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 8e30aed3b8..9b7b238f4d 100644
index 1d0f731954..dcf022bd50 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -6663,6 +6663,16 @@ process_event_stop_test (struct execution_control_state *ecs)
@@ -6690,6 +6690,16 @@ process_event_stop_test (struct execution_control_state *ecs)
if (ecs->event_thread->control.step_over_calls == STEP_OVER_ALL)
{
@ -57,7 +57,7 @@ index 8e30aed3b8..9b7b238f4d 100644
/* We're doing a "next".
Normal (forward) execution: set a breakpoint at the
@@ -6696,6 +6706,7 @@ process_event_stop_test (struct execution_control_state *ecs)
@@ -6723,6 +6733,7 @@ process_event_stop_test (struct execution_control_state *ecs)
keep_going (ecs);
return;

View File

@ -12,10 +12,10 @@ FileName: gdb-container-rh-pkg.patch
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/gdb/remote.c b/gdb/remote.c
index 1eee712466..fbade4f267 100644
index 86777f1e5e..fc003c0736 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -13431,7 +13431,17 @@ remote_pid_to_exec_file (struct target_ops *self, int pid)
@@ -13437,7 +13437,17 @@ remote_pid_to_exec_file (struct target_ops *self, int pid)
char *annex = NULL;
if (packet_support (PACKET_qXfer_exec_file) != PACKET_ENABLE)

View File

@ -16,7 +16,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1270534
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/gdb/configure b/gdb/configure
index dbae54b42c..fcd2efd4d7 100755
index 6fb5b5b509..db849572b5 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -9238,6 +9238,7 @@ if test x"$prefer_curses" = xyes; then
@ -54,7 +54,7 @@ index dbae54b42c..fcd2efd4d7 100755
ac_res="none required"
else
diff --git a/gdb/configure.ac b/gdb/configure.ac
index e94280f773..ec82a09a0b 100644
index d891c7bccc..4412e25450 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -755,7 +755,8 @@ if test x"$prefer_curses" = xyes; then

View File

@ -27,7 +27,7 @@ unwinders try to access it, breaking:
1 file changed, 3 insertions(+)
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 9b7b238f4d..91d6004d0a 100644
index dcf022bd50..b468d02fd6 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -749,6 +749,9 @@ follow_fork (void)

View File

@ -14,10 +14,10 @@ FileName: gdb-glibc-strstr-workaround.patch
create mode 100644 gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 86d496312e..babe659539 100644
index c8db955f2f..6ebe00f542 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -21330,6 +21330,26 @@ new_symbol_full (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
@@ -21328,6 +21328,26 @@ new_symbol_full (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
/* Cache this symbol's name and the name's demangled form (if any). */
SYMBOL_SET_LANGUAGE (sym, cu->language, &objfile->objfile_obstack);
linkagename = dwarf2_physname (name, die, cu);

View File

@ -45,10 +45,10 @@ gdb/
1 file changed, 8 insertions(+)
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 1a62c58614..ebded1753f 100644
index fbaa0af64f..2c972d5e74 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -10614,6 +10614,14 @@ private:
@@ -10612,6 +10612,14 @@ private:
static void
process_die (struct die_info *die, struct dwarf2_cu *cu)
{

View File

@ -13,7 +13,7 @@ FileName: gdb-jit-reader-multilib.patch
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/gdb/configure b/gdb/configure
index aa944a08c4..dbae54b42c 100755
index 904cc453ad..6fb5b5b509 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -9528,10 +9528,12 @@ _ACEOF
@ -33,7 +33,7 @@ index aa944a08c4..dbae54b42c 100755
TARGET_PTR="unsigned __int128"
else
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 1b6c4d77c3..e94280f773 100644
index 1557760ed8..d891c7bccc 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -832,10 +832,12 @@ AC_CHECK_SIZEOF(unsigned long long)

View File

@ -15,7 +15,7 @@ FileName: gdb-linux_perf-bundle.patch
4 files changed, 181 insertions(+), 2 deletions(-)
diff --git a/gdb/configure b/gdb/configure
index fcd2efd4d7..26f5259b64 100755
index db849572b5..7720c00f4b 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -11907,7 +11907,7 @@ else
@ -28,7 +28,7 @@ index fcd2efd4d7..26f5259b64 100755
_ACEOF
diff --git a/gdb/configure.ac b/gdb/configure.ac
index ec82a09a0b..6a07648239 100644
index 4412e25450..e64b0e806f 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -1466,7 +1466,7 @@ else

View File

@ -39,10 +39,10 @@ index ebd48fffe7..ccf011e35e 100644
@findex gdb.breakpoints
diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h
index f32a258209..4556323472 100644
index c110588f76..89bbc6987b 100644
--- a/gdb/python/python-internal.h
+++ b/gdb/python/python-internal.h
@@ -142,6 +142,8 @@ typedef int Py_ssize_t;
@@ -148,6 +148,8 @@ typedef int Py_ssize_t;
#define PyGILState_Release(ARG) ((void)(ARG))
#define PyEval_InitThreads()
#define PyThreadState_Swap(ARG) ((void)(ARG))

View File

@ -572,7 +572,7 @@ index 9385659f14..08e6f4d4fd 100644
return aarch64_linux_region_ok_for_watchpoint (addr, len);
}
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 748e8196ab..0fb4354bad 100644
index 6395184956..8d25fdb4c6 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -78,7 +78,7 @@ static struct type *desc_bounds_type (struct type *);
@ -792,7 +792,7 @@ index 748e8196ab..0fb4354bad 100644
gdb_byte *buf = (gdb_byte *) alloca (len);
CORE_ADDR addr;
@@ -6701,7 +6703,7 @@ value_tag_from_contents_and_address (struct type *type,
@@ -6718,7 +6720,7 @@ value_tag_from_contents_and_address (struct type *type,
const gdb_byte *valaddr,
CORE_ADDR address)
{
@ -801,7 +801,7 @@ index 748e8196ab..0fb4354bad 100644
struct type *tag_type;
if (find_struct_field ("_tag", type, 0, &tag_type, &tag_byte_offset,
@@ -7194,7 +7196,7 @@ ada_in_variant (LONGEST val, struct type *type, int field_num)
@@ -7211,7 +7213,7 @@ ada_in_variant (LONGEST val, struct type *type, int field_num)
only in that it can handle packed values of arbitrary type. */
static struct value *
@ -810,7 +810,7 @@ index 748e8196ab..0fb4354bad 100644
struct type *arg_type)
{
struct type *type;
@@ -7206,7 +7208,7 @@ ada_value_primitive_field (struct value *arg1, int offset, int fieldno,
@@ -7223,7 +7225,7 @@ ada_value_primitive_field (struct value *arg1, int offset, int fieldno,
if (TYPE_FIELD_BITSIZE (arg_type, fieldno) != 0)
{
@ -819,7 +819,7 @@ index 748e8196ab..0fb4354bad 100644
int bit_size = TYPE_FIELD_BITSIZE (arg_type, fieldno);
return ada_value_primitive_packed_val (arg1, value_contents (arg1),
@@ -7283,9 +7285,9 @@ ada_value_primitive_field (struct value *arg1, int offset, int fieldno,
@@ -7300,9 +7302,9 @@ ada_value_primitive_field (struct value *arg1, int offset, int fieldno,
Returns 1 if found, 0 otherwise. */
static int
@ -831,7 +831,7 @@ index 748e8196ab..0fb4354bad 100644
int *index_p)
{
int i;
@@ -7304,8 +7306,8 @@ find_struct_field (const char *name, struct type *type, int offset,
@@ -7321,8 +7323,8 @@ find_struct_field (const char *name, struct type *type, int offset,
for (i = 0; i < TYPE_NFIELDS (type); i += 1)
{
@ -842,7 +842,7 @@ index 748e8196ab..0fb4354bad 100644
const char *t_field_name = TYPE_FIELD_NAME (type, i);
if (t_field_name == NULL)
@@ -7407,7 +7409,7 @@ num_visible_fields (struct type *type)
@@ -7424,7 +7426,7 @@ num_visible_fields (struct type *type)
long explanation in find_struct_field's function documentation. */
static struct value *
@ -851,7 +851,7 @@ index 748e8196ab..0fb4354bad 100644
struct type *type)
{
int i;
@@ -7455,7 +7457,7 @@ ada_search_struct_field (const char *name, struct value *arg, int offset,
@@ -7472,7 +7474,7 @@ ada_search_struct_field (const char *name, struct value *arg, int offset,
int j;
struct type *field_type = ada_check_typedef (TYPE_FIELD_TYPE (type,
i));
@ -860,7 +860,7 @@ index 748e8196ab..0fb4354bad 100644
for (j = 0; j < TYPE_NFIELDS (field_type); j += 1)
{
@@ -7487,8 +7489,8 @@ ada_search_struct_field (const char *name, struct value *arg, int offset,
@@ -7504,8 +7506,8 @@ ada_search_struct_field (const char *name, struct value *arg, int offset,
return NULL;
}
@ -871,7 +871,7 @@ index 748e8196ab..0fb4354bad 100644
/* Return field #INDEX in ARG, where the index is that returned by
@@ -7497,7 +7499,7 @@ static struct value *ada_index_struct_field_1 (int *, struct value *,
@@ -7514,7 +7516,7 @@ static struct value *ada_index_struct_field_1 (int *, struct value *,
* If found, return value, else return NULL. */
static struct value *
@ -880,7 +880,7 @@ index 748e8196ab..0fb4354bad 100644
struct type *type)
{
return ada_index_struct_field_1 (&index, arg, offset, type);
@@ -7509,7 +7511,7 @@ ada_index_struct_field (int index, struct value *arg, int offset,
@@ -7526,7 +7528,7 @@ ada_index_struct_field (int index, struct value *arg, int offset,
* *INDEX_P. */
static struct value *
@ -889,7 +889,7 @@ index 748e8196ab..0fb4354bad 100644
struct type *type)
{
int i;
@@ -7599,7 +7601,8 @@ ada_value_struct_elt (struct value *arg, const char *name, int no_err)
@@ -7616,7 +7618,8 @@ ada_value_struct_elt (struct value *arg, const char *name, int no_err)
v = ada_search_struct_field (name, arg, 0, t);
else
{
@ -899,7 +899,7 @@ index 748e8196ab..0fb4354bad 100644
struct type *field_type;
CORE_ADDR address;
@@ -7943,8 +7946,8 @@ ada_coerce_ref (struct value *val0)
@@ -7960,8 +7963,8 @@ ada_coerce_ref (struct value *val0)
/* Return OFF rounded upward if necessary to a multiple of
ALIGNMENT (a power of 2). */
@ -910,7 +910,7 @@ index 748e8196ab..0fb4354bad 100644
{
return (off + alignment - 1) & ~(alignment - 1);
}
@@ -8338,10 +8341,9 @@ ada_template_to_fixed_record_type_1 (struct type *type,
@@ -8355,10 +8358,9 @@ ada_template_to_fixed_record_type_1 (struct type *type,
struct value *mark = value_mark ();
struct value *dval;
struct type *rtype;
@ -923,7 +923,7 @@ index 748e8196ab..0fb4354bad 100644
int f;
/* Compute the number of fields in this record type that are going
@@ -8419,7 +8421,7 @@ ada_template_to_fixed_record_type_1 (struct type *type,
@@ -8436,7 +8438,7 @@ ada_template_to_fixed_record_type_1 (struct type *type,
that follow this one. */
if (ada_is_aligner_type (field_type))
{
@ -932,7 +932,7 @@ index 748e8196ab..0fb4354bad 100644
field_valaddr = cond_offset_host (field_valaddr, field_offset);
field_address = cond_offset_target (field_address, field_offset);
@@ -8555,11 +8557,11 @@ ada_template_to_fixed_record_type_1 (struct type *type,
@@ -8572,11 +8574,11 @@ ada_template_to_fixed_record_type_1 (struct type *type,
if (TYPE_LENGTH (type) <= 0)
{
if (TYPE_NAME (rtype))
@ -948,7 +948,7 @@ index 748e8196ab..0fb4354bad 100644
}
else
{
@@ -9025,7 +9027,8 @@ to_fixed_array_type (struct type *type0, struct value *dval,
@@ -9042,7 +9044,8 @@ to_fixed_array_type (struct type *type0, struct value *dval,
type was a regular (non-packed) array type. As a result, the
bitsize of the array elements needs to be set again, and the array
length needs to be recomputed based on that bitsize. */
@ -1774,7 +1774,7 @@ index 5486e4dc12..1fe45f6069 100644
if (subobj_byte_offset + len > max)
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index babe659539..1a62c58614 100644
index 6ebe00f542..fbaa0af64f 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -2268,12 +2268,12 @@ dwarf2_complex_location_expr_complaint (void)
@ -1794,7 +1794,7 @@ index babe659539..1a62c58614 100644
}
static void
@@ -15086,8 +15086,8 @@ dwarf2_add_field (struct field_info *fip, struct die_info *die,
@@ -15084,8 +15084,8 @@ dwarf2_add_field (struct field_info *fip, struct die_info *die,
object, and then subtract off the number of bits of
the field itself. The result is the bit offset of
the LSB of the field. */
@ -2055,10 +2055,10 @@ index a929e13b81..cc1def6a3d 100755
# For most targets, a pointer on the target and its representation as an
# address in GDB have the same size and "look the same". For such a
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index b731a2f2c6..6fad967fb4 100644
index cb5524023f..7c2ae72cfc 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -2882,7 +2882,7 @@ floatformat_from_type (const struct type *type)
@@ -2920,7 +2920,7 @@ floatformat_from_type (const struct type *type)
least as long as OBJFILE. */
struct type *
@ -2067,7 +2067,7 @@ index b731a2f2c6..6fad967fb4 100644
const char *name)
{
struct type *type;
@@ -3214,8 +3214,8 @@ is_public_ancestor (struct type *base, struct type *dclass)
@@ -3252,8 +3252,8 @@ is_public_ancestor (struct type *base, struct type *dclass)
static int
is_unique_ancestor_worker (struct type *base, struct type *dclass,
@ -2078,7 +2078,7 @@ index b731a2f2c6..6fad967fb4 100644
CORE_ADDR address, struct value *val)
{
int i, count = 0;
@@ -3226,7 +3226,7 @@ is_unique_ancestor_worker (struct type *base, struct type *dclass,
@@ -3264,7 +3264,7 @@ is_unique_ancestor_worker (struct type *base, struct type *dclass,
for (i = 0; i < TYPE_N_BASECLASSES (dclass) && count < 2; ++i)
{
struct type *iter;
@ -2087,7 +2087,7 @@ index b731a2f2c6..6fad967fb4 100644
iter = check_typedef (TYPE_BASECLASS (dclass, i));
@@ -3267,7 +3267,7 @@ is_unique_ancestor_worker (struct type *base, struct type *dclass,
@@ -3305,7 +3305,7 @@ is_unique_ancestor_worker (struct type *base, struct type *dclass,
int
is_unique_ancestor (struct type *base, struct value *val)
{
@ -2096,7 +2096,7 @@ index b731a2f2c6..6fad967fb4 100644
return is_unique_ancestor_worker (base, value_type (val), &offset,
value_contents_for_printing (val),
@@ -4513,7 +4513,7 @@ recursive_dump_type (struct type *type, int spaces)
@@ -4550,7 +4550,7 @@ recursive_dump_type (struct type *type, int spaces)
break;
}
puts_filtered ("\n");
@ -2105,7 +2105,7 @@ index b731a2f2c6..6fad967fb4 100644
if (TYPE_OBJFILE_OWNED (type))
{
printfi_filtered (spaces, "objfile ");
@@ -4954,7 +4954,7 @@ copy_type (const struct type *type)
@@ -4991,7 +4991,7 @@ copy_type (const struct type *type)
struct type *
arch_type (struct gdbarch *gdbarch,
@ -2115,10 +2115,10 @@ index b731a2f2c6..6fad967fb4 100644
struct type *type;
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
index 9703d966a7..58f0c10645 100644
index 5597038357..f6e0c3e8c1 100644
--- a/gdb/gdbtypes.h
+++ b/gdb/gdbtypes.h
@@ -785,7 +785,7 @@ struct type
@@ -805,7 +805,7 @@ struct type
type_length_units function should be used in order to get the length
expressed in target addressable memory units. */
@ -2127,7 +2127,7 @@ index 9703d966a7..58f0c10645 100644
/* * Core type, shared by a group of qualified types. */
@@ -1687,7 +1687,7 @@ extern unsigned int type_length_units (struct type *type);
@@ -1707,7 +1707,7 @@ extern unsigned int type_length_units (struct type *type);
/* * Helper function to construct objfile-owned types. */
@ -2136,7 +2136,7 @@ index 9703d966a7..58f0c10645 100644
const char *);
extern struct type *init_integer_type (struct objfile *, int, int,
const char *);
@@ -1704,7 +1704,7 @@ extern struct type *init_pointer_type (struct objfile *, int, const char *,
@@ -1724,7 +1724,7 @@ extern struct type *init_pointer_type (struct objfile *, int, const char *,
struct type *);
/* Helper functions to construct architecture-owned types. */
@ -2293,10 +2293,10 @@ index d1b461b538..af4942ab2e 100644
if (len == 128 && name)
if (strcmp (name, "__float128") == 0
diff --git a/gdb/language.c b/gdb/language.c
index cacaf3f7d1..589515edb7 100644
index 0d8604b826..7dca669b40 100644
--- a/gdb/language.c
+++ b/gdb/language.c
@@ -766,7 +766,7 @@ unk_lang_printchar (int c, struct type *type, struct ui_file *stream)
@@ -773,7 +773,7 @@ unk_lang_printchar (int c, struct type *type, struct ui_file *stream)
static void
unk_lang_printstr (struct ui_file *stream, struct type *type,
@ -2305,7 +2305,7 @@ index cacaf3f7d1..589515edb7 100644
const char *encoding, int force_ellipses,
const struct value_print_options *options)
{
@@ -785,7 +785,7 @@ unk_lang_print_type (struct type *type, const char *varstring,
@@ -792,7 +792,7 @@ unk_lang_print_type (struct type *type, const char *varstring,
static void
unk_lang_val_print (struct type *type,
@ -2315,7 +2315,7 @@ index cacaf3f7d1..589515edb7 100644
struct value *val,
const struct value_print_options *options)
diff --git a/gdb/language.h b/gdb/language.h
index 49828f3aee..70e6a4a7ef 100644
index 06b42aeb5c..9e794f13a3 100644
--- a/gdb/language.h
+++ b/gdb/language.h
@@ -188,7 +188,7 @@ struct language_defn
@ -2953,10 +2953,10 @@ index 9e3da8c3fc..a803b58516 100644
void transfer_regset (const struct regset *regset,
struct regcache *out_regcache,
diff --git a/gdb/remote.c b/gdb/remote.c
index 9ff6028b8d..f9f8f973a2 100644
index a426508723..94d5594175 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -9963,7 +9963,7 @@ int remote_hw_breakpoint_limit = -1;
@@ -9969,7 +9969,7 @@ int remote_hw_breakpoint_limit = -1;
static int
remote_region_ok_for_hw_watchpoint (struct target_ops *self,

View File

@ -317,10 +317,10 @@ index 887f1201fe..edd1be632a 100644
{
int pflags = 0;
diff --git a/gdb/remote.c b/gdb/remote.c
index f9f8f973a2..1eee712466 100644
index 94d5594175..86777f1e5e 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -9891,7 +9891,7 @@ remote_insert_watchpoint (struct target_ops *self, CORE_ADDR addr, int len,
@@ -9897,7 +9897,7 @@ remote_insert_watchpoint (struct target_ops *self, CORE_ADDR addr, int len,
p = strchr (rs->buf, '\0');
addr = remote_address_masked (addr);
p += hexnumstr (p, (ULONGEST) addr);
@ -329,7 +329,7 @@ index f9f8f973a2..1eee712466 100644
putpkt (rs->buf);
getpkt (&rs->buf, &rs->buf_size, 0);
@@ -9911,7 +9911,7 @@ remote_insert_watchpoint (struct target_ops *self, CORE_ADDR addr, int len,
@@ -9917,7 +9917,7 @@ remote_insert_watchpoint (struct target_ops *self, CORE_ADDR addr, int len,
static int
remote_watchpoint_addr_within_range (struct target_ops *target, CORE_ADDR addr,
@ -338,7 +338,7 @@ index f9f8f973a2..1eee712466 100644
{
CORE_ADDR diff = remote_address_masked (addr - start);
@@ -9940,7 +9940,7 @@ remote_remove_watchpoint (struct target_ops *self, CORE_ADDR addr, int len,
@@ -9946,7 +9946,7 @@ remote_remove_watchpoint (struct target_ops *self, CORE_ADDR addr, int len,
p = strchr (rs->buf, '\0');
addr = remote_address_masked (addr);
p += hexnumstr (p, (ULONGEST) addr);

View File

@ -174,10 +174,10 @@ index f82e7b2d11..74f0597359 100644
property to C code.
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index a3028e5c52..59e749e416 100644
index 58da0fc1f9..8fc1f7ec45 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -17553,7 +17553,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -17551,7 +17551,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
struct type *base_type, *orig_base_type;
struct type *range_type;
struct attribute *attr;
@ -186,7 +186,7 @@ index a3028e5c52..59e749e416 100644
int low_default_is_valid;
int high_bound_is_count = 0;
const char *name;
@@ -17573,7 +17573,9 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -17571,7 +17571,9 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
low.kind = PROP_CONST;
high.kind = PROP_CONST;
@ -196,7 +196,7 @@ index a3028e5c52..59e749e416 100644
/* Set LOW_DEFAULT_IS_VALID if current language and DWARF version allow
omitting DW_AT_lower_bound. */
@@ -17606,6 +17608,13 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -17604,6 +17606,13 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
break;
}
@ -210,7 +210,7 @@ index a3028e5c52..59e749e416 100644
attr = dwarf2_attr (die, DW_AT_lower_bound, cu);
if (attr)
attr_to_dynamic_prop (attr, die, cu, &low);
@@ -17682,7 +17691,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -17680,7 +17689,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
&& !TYPE_UNSIGNED (base_type) && (high.data.const_val & negative_mask))
high.data.const_val |= negative_mask;
@ -827,10 +827,10 @@ index 903f2af638..b4067a8460 100644
for (i = lowerbound;
(i < upperbound + 1 && (*elts) < options->print_max);
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index 7ba62df474..519dfebba8 100644
index 43fe56e487..a72e2b3e0a 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -864,7 +864,8 @@ allocate_stub_method (struct type *type)
@@ -902,7 +902,8 @@ operator== (const range_bounds &l, const range_bounds &r)
struct type *
create_range_type (struct type *result_type, struct type *index_type,
const struct dynamic_prop *low_bound,
@ -840,7 +840,7 @@ index 7ba62df474..519dfebba8 100644
{
if (result_type == NULL)
result_type = alloc_type_copy (index_type);
@@ -879,6 +880,7 @@ create_range_type (struct type *result_type, struct type *index_type,
@@ -917,6 +918,7 @@ create_range_type (struct type *result_type, struct type *index_type,
TYPE_ZALLOC (result_type, sizeof (struct range_bounds));
TYPE_RANGE_DATA (result_type)->low = *low_bound;
TYPE_RANGE_DATA (result_type)->high = *high_bound;
@ -848,7 +848,7 @@ index 7ba62df474..519dfebba8 100644
if (low_bound->kind == PROP_CONST && low_bound->data.const_val >= 0)
TYPE_UNSIGNED (result_type) = 1;
@@ -907,7 +909,7 @@ struct type *
@@ -945,7 +947,7 @@ struct type *
create_static_range_type (struct type *result_type, struct type *index_type,
LONGEST low_bound, LONGEST high_bound)
{
@ -857,7 +857,7 @@ index 7ba62df474..519dfebba8 100644
low.kind = PROP_CONST;
low.data.const_val = low_bound;
@@ -915,7 +917,11 @@ create_static_range_type (struct type *result_type, struct type *index_type,
@@ -953,7 +955,11 @@ create_static_range_type (struct type *result_type, struct type *index_type,
high.kind = PROP_CONST;
high.data.const_val = high_bound;
@ -870,7 +870,7 @@ index 7ba62df474..519dfebba8 100644
return result_type;
}
@@ -1133,16 +1139,20 @@ create_array_type_with_stride (struct type *result_type,
@@ -1171,16 +1177,20 @@ create_array_type_with_stride (struct type *result_type,
&& (!type_not_associated (result_type)
&& !type_not_allocated (result_type)))
{
@ -892,7 +892,7 @@ index 7ba62df474..519dfebba8 100644
else if (bit_stride > 0)
TYPE_LENGTH (result_type) =
(bit_stride * (high_bound - low_bound + 1) + 7) / 8;
@@ -1954,12 +1964,12 @@ resolve_dynamic_range (struct type *dyn_range_type,
@@ -1992,12 +2002,12 @@ resolve_dynamic_range (struct type *dyn_range_type,
CORE_ADDR value;
struct type *static_range_type, *static_target_type;
const struct dynamic_prop *prop;
@ -907,7 +907,7 @@ index 7ba62df474..519dfebba8 100644
{
low_bound.kind = PROP_CONST;
low_bound.data.const_val = value;
@@ -1971,7 +1981,7 @@ resolve_dynamic_range (struct type *dyn_range_type,
@@ -2009,7 +2019,7 @@ resolve_dynamic_range (struct type *dyn_range_type,
}
prop = &TYPE_RANGE_DATA (dyn_range_type)->high;
@ -916,7 +916,7 @@ index 7ba62df474..519dfebba8 100644
{
high_bound.kind = PROP_CONST;
high_bound.data.const_val = value;
@@ -1986,12 +1996,20 @@ resolve_dynamic_range (struct type *dyn_range_type,
@@ -2024,12 +2034,20 @@ resolve_dynamic_range (struct type *dyn_range_type,
high_bound.data.const_val = 0;
}
@ -939,10 +939,10 @@ index 7ba62df474..519dfebba8 100644
return static_range_type;
}
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
index 5942b5ad48..923ba101ca 100644
index 92ca85c295..179238ce82 100644
--- a/gdb/gdbtypes.h
+++ b/gdb/gdbtypes.h
@@ -550,6 +550,10 @@ struct range_bounds
@@ -560,6 +560,10 @@ struct range_bounds
struct dynamic_prop high;
@ -953,7 +953,7 @@ index 5942b5ad48..923ba101ca 100644
/* True if HIGH range bound contains the number of elements in the
subrange. This affects how the final hight bound is computed. */
@@ -711,7 +715,6 @@ struct main_type
@@ -731,7 +735,6 @@ struct main_type
/* * Union member used for range types. */
struct range_bounds *bounds;
@ -961,7 +961,7 @@ index 5942b5ad48..923ba101ca 100644
} flds_bnds;
/* * Slot to point to additional language-specific fields of this
@@ -1233,6 +1236,15 @@ extern void allocate_gnat_aux_type (struct type *);
@@ -1253,6 +1256,15 @@ extern void allocate_gnat_aux_type (struct type *);
TYPE_RANGE_DATA(range_type)->high.kind
#define TYPE_LOW_BOUND_KIND(range_type) \
TYPE_RANGE_DATA(range_type)->low.kind
@ -977,7 +977,7 @@ index 5942b5ad48..923ba101ca 100644
/* Property accessors for the type data location. */
#define TYPE_DATA_LOCATION(thistype) \
@@ -1267,6 +1279,9 @@ extern void allocate_gnat_aux_type (struct type *);
@@ -1287,6 +1299,9 @@ extern void allocate_gnat_aux_type (struct type *);
TYPE_HIGH_BOUND_UNDEFINED(TYPE_INDEX_TYPE(arraytype))
#define TYPE_ARRAY_LOWER_BOUND_IS_UNDEFINED(arraytype) \
TYPE_LOW_BOUND_UNDEFINED(TYPE_INDEX_TYPE(arraytype))
@ -987,7 +987,7 @@ index 5942b5ad48..923ba101ca 100644
#define TYPE_ARRAY_UPPER_BOUND_VALUE(arraytype) \
(TYPE_HIGH_BOUND(TYPE_INDEX_TYPE((arraytype))))
@@ -1798,6 +1813,7 @@ extern struct type *create_array_type_with_stride
@@ -1818,6 +1833,7 @@ extern struct type *create_array_type_with_stride
struct dynamic_prop *, unsigned int);
extern struct type *create_range_type (struct type *, struct type *,

View File

@ -59,18 +59,18 @@ git diff --stat -p gdb/master...gdb/users/bheckel/fortran-vla-strings
create mode 100644 gdb/testsuite/gdb.fortran/vla-strings.f90
diff --git a/gdb/NEWS b/gdb/NEWS
index 14fcdf8674..6b45cc27db 100644
index 6c9a2ecefd..f40eb6c390 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -1,6 +1,8 @@
What has changed in GDB?
(Organized release by release)
@@ -3,6 +3,8 @@
*** Changes in GDB 8.1
+* Fortran: Support pointers to dynamic types.
+
*** Changes since GDB 8.0
* GDB now supports dynamically creating arbitrary register groups specified
in XML target descriptions. This allows for finer grain grouping of
registers on systems with a large amount of registers.
diff --git a/gdb/c-valprint.c b/gdb/c-valprint.c
index c4c0918e26..3904fab260 100644
--- a/gdb/c-valprint.c
@ -105,7 +105,7 @@ index c4c0918e26..3904fab260 100644
type_print (value_type (val), "", stream, -1);
fprintf_filtered (stream, ") ");
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 59e749e416..a1bc7eda75 100644
index 8fc1f7ec45..98e7d842f0 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -2077,7 +2077,8 @@ static void read_signatured_type (struct signatured_type *);
@ -118,7 +118,7 @@ index 59e749e416..a1bc7eda75 100644
/* memory allocation interface */
@@ -13747,7 +13748,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
@@ -13745,7 +13746,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
{
newobj->static_link
= XOBNEW (&objfile->objfile_obstack, struct dynamic_prop);
@ -127,7 +127,7 @@ index 59e749e416..a1bc7eda75 100644
}
cu->list_in_scope = &local_symbols;
@@ -16329,7 +16330,8 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -16327,7 +16328,8 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
byte_stride_prop
= (struct dynamic_prop *) alloca (sizeof (struct dynamic_prop));
@ -137,7 +137,7 @@ index 59e749e416..a1bc7eda75 100644
if (!stride_ok)
{
complaint (&symfile_complaints,
@@ -17077,29 +17079,94 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -17075,29 +17077,94 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu)
struct gdbarch *gdbarch = get_objfile_arch (objfile);
struct type *type, *range_type, *index_type, *char_type;
struct attribute *attr;
@ -243,7 +243,7 @@ index 59e749e416..a1bc7eda75 100644
char_type = language_string_char_type (cu->language_defn, gdbarch);
type = create_string_type (NULL, char_type, range_type);
@@ -17448,7 +17515,8 @@ read_base_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -17446,7 +17513,8 @@ read_base_type (struct die_info *die, struct dwarf2_cu *cu)
static int
attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
@ -253,7 +253,7 @@ index 59e749e416..a1bc7eda75 100644
{
struct dwarf2_property_baton *baton;
struct obstack *obstack = &cu->objfile->objfile_obstack;
@@ -17458,14 +17526,33 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
@@ -17456,14 +17524,33 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
if (attr_form_is_block (attr))
{
@ -291,7 +291,7 @@ index 59e749e416..a1bc7eda75 100644
}
else if (attr_form_is_ref (attr))
{
@@ -17498,8 +17585,28 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
@@ -17496,8 +17583,28 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
baton = XOBNEW (obstack, struct dwarf2_property_baton);
baton->referenced_type = die_type (target_die, target_cu);
baton->locexpr.per_cu = cu->per_cu;
@ -322,7 +322,7 @@ index 59e749e416..a1bc7eda75 100644
prop->data.baton = baton;
prop->kind = PROP_LOCEXPR;
gdb_assert (prop->data.baton != NULL);
@@ -17610,24 +17717,24 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
@@ -17608,24 +17715,24 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
attr = dwarf2_attr (die, DW_AT_byte_stride, cu);
if (attr)
@ -351,7 +351,7 @@ index 59e749e416..a1bc7eda75 100644
{
/* If bounds are constant do the final calculation here. */
if (low.kind == PROP_CONST && high.kind == PROP_CONST)
@@ -25225,7 +25332,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
@@ -25223,7 +25330,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
attr = dwarf2_attr (die, DW_AT_allocated, cu);
if (attr_form_is_block (attr))
{
@ -360,7 +360,7 @@ index 59e749e416..a1bc7eda75 100644
add_dyn_prop (DYN_PROP_ALLOCATED, prop, type, objfile);
}
else if (attr != NULL)
@@ -25240,7 +25347,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
@@ -25238,7 +25345,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
attr = dwarf2_attr (die, DW_AT_associated, cu);
if (attr_form_is_block (attr))
{
@ -369,7 +369,7 @@ index 59e749e416..a1bc7eda75 100644
add_dyn_prop (DYN_PROP_ASSOCIATED, prop, type, objfile);
}
else if (attr != NULL)
@@ -25253,7 +25360,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
@@ -25251,7 +25358,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
/* Read DW_AT_data_location and set in type. */
attr = dwarf2_attr (die, DW_AT_data_location, cu);
@ -532,10 +532,10 @@ index f14f1811f4..4f6a0ed09a 100644
}
fprintfi_filtered (level, stream, "End Type ");
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index 519dfebba8..b731a2f2c6 100644
index a72e2b3e0a..cb5524023f 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -1877,7 +1877,8 @@ is_dynamic_type_internal (struct type *type, int top_level)
@@ -1915,7 +1915,8 @@ is_dynamic_type_internal (struct type *type, int top_level)
type = check_typedef (type);
/* We only want to recognize references at the outermost level. */
@ -545,7 +545,7 @@ index 519dfebba8..b731a2f2c6 100644
type = check_typedef (TYPE_TARGET_TYPE (type));
/* Types that have a dynamic TYPE_DATA_LOCATION are considered
@@ -1911,6 +1912,7 @@ is_dynamic_type_internal (struct type *type, int top_level)
@@ -1949,6 +1950,7 @@ is_dynamic_type_internal (struct type *type, int top_level)
}
case TYPE_CODE_ARRAY:
@ -553,7 +553,7 @@ index 519dfebba8..b731a2f2c6 100644
{
gdb_assert (TYPE_NFIELDS (type) == 1);
@@ -2029,7 +2031,8 @@ resolve_dynamic_array (struct type *type,
@@ -2067,7 +2069,8 @@ resolve_dynamic_array (struct type *type,
struct dynamic_prop *prop;
unsigned int bit_stride = 0;
@ -563,7 +563,7 @@ index 519dfebba8..b731a2f2c6 100644
type = copy_type (type);
@@ -2054,11 +2057,15 @@ resolve_dynamic_array (struct type *type,
@@ -2092,11 +2095,15 @@ resolve_dynamic_array (struct type *type,
ary_dim = check_typedef (TYPE_TARGET_TYPE (elt_type));
@ -580,7 +580,7 @@ index 519dfebba8..b731a2f2c6 100644
prop = get_dyn_prop (DYN_PROP_BYTE_STRIDE, type);
if (prop != NULL)
{
@@ -2213,6 +2220,28 @@ resolve_dynamic_struct (struct type *type,
@@ -2251,6 +2258,28 @@ resolve_dynamic_struct (struct type *type,
return resolved_type;
}
@ -609,7 +609,7 @@ index 519dfebba8..b731a2f2c6 100644
/* Worker for resolved_dynamic_type. */
static struct type *
@@ -2261,7 +2290,12 @@ resolve_dynamic_type_internal (struct type *type,
@@ -2299,7 +2328,12 @@ resolve_dynamic_type_internal (struct type *type,
break;
}
@ -1321,10 +1321,10 @@ index b6e777235c..14b611f7b5 100644
mi_gdb_test "582-var-show-format pvla2_not_associated" \
"582\\^done,format=\"natural\"" \
diff --git a/gdb/typeprint.c b/gdb/typeprint.c
index 9a125076a1..586f644c49 100644
index c098a3f426..319fbaf94e 100644
--- a/gdb/typeprint.c
+++ b/gdb/typeprint.c
@@ -534,6 +534,25 @@ whatis_exp (const char *exp, int show)
@@ -538,6 +538,25 @@ whatis_exp (const char *exp, int show)
printf_filtered (" */\n");
}

View File

@ -22,18 +22,18 @@ Name: %{?scl_prefix}gdb
# See timestamp of source gnulib installed into gdb/gnulib/ .
%global snapgnulib 20161115
%global tarname gdb-%{version}
Version: 8.0.90.%{snapsrc}
Version: 8.1
# The release always contains a leading reserved number, start it at 1.
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
Release: 2%{?dist}
Release: 3%{?dist}
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and LGPLv3+ and BSD and Public Domain and GFDL
Group: Development/Debuggers
# Do not provide URL for snapshots as the file lasts there only for 2 days.
# ftp://sourceware.org/pub/gdb/releases/FIXME{tarname}.tar.xz
Source: %{tarname}.tar.xz
#Source: ftp://sourceware.org/pub/gdb/releases/%{tarname}.tar.xz
#Source: %{tarname}.tar.xz
Source: ftp://sourceware.org/pub/gdb/releases/%{tarname}.tar.xz
Buildroot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
URL: http://gnu.org/software/gdb/
@ -1017,6 +1017,9 @@ then
fi
%changelog
* Wed Jan 31 2018 Sergio Durigan Junior <sergiodj@redhat.com> - 8.1-3.fc26
- Rebase to FSF GDB 8.1.
* Fri Jan 19 2018 Sergio Durigan Junior <sergiodj@redhat.com> - 8.0.90.20180109-2.fc26
- Remove gdb-6.3-rh-dummykfail-20041202.patch (RH BZ 1535228).
- Remove gdb-glibc-vdso-workaround.patch (RH BZ 1535244).