diff --git a/.gitignore b/.gitignore index af8ca9b..1e8534a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ /gdb-libstdc++-v3-python-8.1.1-20180626.tar.xz /v2.0.tar.gz -/gdb-8.3.50.20190610.tar.xz +/gdb-8.3.50.20190625.tar.xz diff --git a/_git_upstream_commit b/_git_upstream_commit index f2add1d..50d506d 100644 --- a/_git_upstream_commit +++ b/_git_upstream_commit @@ -1 +1 @@ -a72f8c4ce397a0bbe98281d4151982330ad16f15 +2e7c439dec066ac8a597d0b85193b8d3ec8e09eb diff --git a/gdb-6.3-gstack-20050411.patch b/gdb-6.3-gstack-20050411.patch index 6ba993d..c6bb26d 100644 --- a/gdb-6.3-gstack-20050411.patch +++ b/gdb-6.3-gstack-20050411.patch @@ -16,7 +16,7 @@ Subject: gdb-6.3-gstack-20050411.patch diff --git a/gdb/Makefile.in b/gdb/Makefile.in --- a/gdb/Makefile.in +++ b/gdb/Makefile.in -@@ -1751,7 +1751,7 @@ info install-info clean-info dvi pdf install-pdf html install-html: force +@@ -1742,7 +1742,7 @@ info install-info clean-info dvi pdf install-pdf html install-html: force install: all @$(MAKE) $(FLAGS_TO_PASS) install-only @@ -25,7 +25,7 @@ diff --git a/gdb/Makefile.in b/gdb/Makefile.in transformed_name=`t='$(program_transform_name)'; \ echo gdb | sed -e "$$t"` ; \ if test "x$$transformed_name" = x; then \ -@@ -1800,7 +1800,25 @@ install-guile: +@@ -1791,7 +1791,25 @@ install-guile: install-python: $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(GDB_DATADIR)/python/gdb @@ -52,7 +52,7 @@ diff --git a/gdb/Makefile.in b/gdb/Makefile.in transformed_name=`t='$(program_transform_name)'; \ echo gdb | sed -e $$t` ; \ if test "x$$transformed_name" = x; then \ -@@ -1823,6 +1841,18 @@ uninstall: force $(CONFIG_UNINSTALL) +@@ -1814,6 +1832,18 @@ uninstall: force $(CONFIG_UNINSTALL) fi @$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do diff --git a/gdb-6.3-rh-testversion-20041202.patch b/gdb-6.3-rh-testversion-20041202.patch index f1c0735..69fe3cd 100644 --- a/gdb-6.3-rh-testversion-20041202.patch +++ b/gdb-6.3-rh-testversion-20041202.patch @@ -27,7 +27,7 @@ diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest diff --git a/gdb/top.c b/gdb/top.c --- a/gdb/top.c +++ b/gdb/top.c -@@ -2079,7 +2079,7 @@ init_gdb_version_vars (void) +@@ -2070,7 +2070,7 @@ init_gdb_version_vars (void) struct internalvar *major_version_var = create_internalvar ("_gdb_major"); struct internalvar *minor_version_var = create_internalvar ("_gdb_minor"); int vmajor = 0, vminor = 0, vrevision = 0; diff --git a/gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch b/gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch index 3a1fe0c..aca516b 100644 --- a/gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch +++ b/gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch @@ -44,9 +44,9 @@ glibc-debuginfo-2.7-2.x86_64: /usr/lib/debug/lib64/libc.so.6.debug: diff --git a/gdb/printcmd.c b/gdb/printcmd.c --- a/gdb/printcmd.c +++ b/gdb/printcmd.c -@@ -1182,6 +1182,10 @@ print_command_1 (const char *exp, int voidprint) +@@ -1188,6 +1188,10 @@ print_command_1 (const char *args, int voidprint) - if (exp && *exp) + if (exp != nullptr && *exp) { + /* '*((int *(*) (void)) __errno_location) ()' is incompatible with + function descriptors. */ diff --git a/gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch b/gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch index d419b89..885fa2a 100644 --- a/gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch +++ b/gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch @@ -11,7 +11,7 @@ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=218379 diff --git a/gdb/symtab.c b/gdb/symtab.c --- a/gdb/symtab.c +++ b/gdb/symtab.c -@@ -3145,6 +3145,13 @@ find_pc_sect_line (CORE_ADDR pc, struct obj_section *section, int notcurrent) +@@ -3148,6 +3148,13 @@ find_pc_sect_line (CORE_ADDR pc, struct obj_section *section, int notcurrent) SYMBOL_LINKAGE_NAME (msymbol)); */ ; /* fall through */ diff --git a/gdb-6.6-buildid-locate-rpm-scl.patch b/gdb-6.6-buildid-locate-rpm-scl.patch index 81523e2..daabf53 100644 --- a/gdb-6.6-buildid-locate-rpm-scl.patch +++ b/gdb-6.6-buildid-locate-rpm-scl.patch @@ -98,7 +98,7 @@ diff --git a/gdb/build-id.c b/gdb/build-id.c diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c -@@ -3496,6 +3496,16 @@ read_gdb_index_from_buffer (struct objfile *objfile, +@@ -3456,6 +3456,16 @@ read_gdb_index_from_buffer (struct objfile *objfile, "set use-deprecated-index-sections on". */ if (version < 6 && !deprecated_ok) { @@ -115,7 +115,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c static int warning_printed = 0; if (!warning_printed) { -@@ -3507,6 +3517,10 @@ to use the section anyway."), +@@ -3467,6 +3477,10 @@ to use the section anyway."), warning_printed = 1; } return 0; diff --git a/gdb-6.6-buildid-locate-rpm.patch b/gdb-6.6-buildid-locate-rpm.patch index e3189ba..97cc973 100644 --- a/gdb-6.6-buildid-locate-rpm.patch +++ b/gdb-6.6-buildid-locate-rpm.patch @@ -707,7 +707,7 @@ diff --git a/gdb/configure b/gdb/configure GDB_DATADIR DEBUGDIR MAKEINFO_EXTRA_FLAGS -@@ -855,6 +860,7 @@ with_gdb_datadir +@@ -854,6 +859,7 @@ with_gdb_datadir with_relocated_sources with_auto_load_dir with_auto_load_safe_path @@ -715,7 +715,7 @@ diff --git a/gdb/configure b/gdb/configure enable_targets enable_64_bit_bfd enable_gdbmi -@@ -915,6 +921,11 @@ CCC +@@ -914,6 +920,11 @@ CCC CPP MAKEINFO MAKEINFOFLAGS @@ -727,7 +727,7 @@ diff --git a/gdb/configure b/gdb/configure YACC YFLAGS XMKMF' -@@ -1588,6 +1599,8 @@ Optional Packages: +@@ -1587,6 +1598,8 @@ Optional Packages: [--with-auto-load-dir] --without-auto-load-safe-path do not restrict auto-loaded files locations @@ -736,7 +736,7 @@ diff --git a/gdb/configure b/gdb/configure --with-libunwind-ia64 use libunwind frame unwinding for ia64 targets --with-curses use the curses library instead of the termcap library -@@ -1645,6 +1658,13 @@ Some influential environment variables: +@@ -1644,6 +1657,13 @@ Some influential environment variables: MAKEINFO Parent configure detects if it is of sufficient version. MAKEINFOFLAGS Parameters for MAKEINFO. @@ -750,7 +750,7 @@ diff --git a/gdb/configure b/gdb/configure YACC The `Yet Another Compiler Compiler' implementation to use. Defaults to the first program found out of: `bison -y', `byacc', `yacc'. -@@ -6626,6 +6646,494 @@ _ACEOF +@@ -6503,6 +6523,494 @@ _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_auto_load_safe_path" >&5 $as_echo "$with_auto_load_safe_path" >&6; } @@ -1248,7 +1248,7 @@ diff --git a/gdb/configure b/gdb/configure diff --git a/gdb/configure.ac b/gdb/configure.ac --- a/gdb/configure.ac +++ b/gdb/configure.ac -@@ -166,6 +166,199 @@ AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escape_dir, +@@ -144,6 +144,199 @@ AC_DEFINE_DIR(AUTO_LOAD_SAFE_PATH, escape_dir, [Directories safe to hold auto-loaded files.]) AC_MSG_RESULT([$with_auto_load_safe_path]) diff --git a/gdb-6.6-buildid-locate.patch b/gdb-6.6-buildid-locate.patch index b0bc634..878feee 100644 --- a/gdb-6.6-buildid-locate.patch +++ b/gdb-6.6-buildid-locate.patch @@ -932,7 +932,7 @@ diff --git a/gdb/build-id.h b/gdb/build-id.h diff --git a/gdb/coffread.c b/gdb/coffread.c --- a/gdb/coffread.c +++ b/gdb/coffread.c -@@ -717,7 +717,8 @@ coff_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags) +@@ -710,7 +710,8 @@ coff_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags) /* Try to add separate debug file if no symbols table found. */ if (!objfile_has_partial_symbols (objfile)) { @@ -1036,7 +1036,7 @@ diff --git a/gdb/corelow.c b/gdb/corelow.c diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo -@@ -20183,6 +20183,27 @@ information files. +@@ -20427,6 +20427,27 @@ information files. @end table @@ -1067,19 +1067,29 @@ diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo diff --git a/gdb/dwarf-index-cache.c b/gdb/dwarf-index-cache.c --- a/gdb/dwarf-index-cache.c +++ b/gdb/dwarf-index-cache.c -@@ -93,7 +93,7 @@ index_cache::store (struct dwarf2_per_objfile *dwarf2_per_objfile) - if (!enabled ()) +@@ -94,7 +94,7 @@ index_cache::store (struct dwarf2_per_objfile *dwarf2_per_objfile) return; + /* Get build id of objfile. */ - const bfd_build_id *build_id = build_id_bfd_get (obj->obfd); + const bfd_build_id *build_id = build_id_bfd_shdr_get (obj->obfd); if (build_id == nullptr) { if (debug_index_cache) +@@ -112,7 +112,8 @@ index_cache::store (struct dwarf2_per_objfile *dwarf2_per_objfile) + + if (dwz != nullptr) + { +- const bfd_build_id *dwz_build_id = build_id_bfd_get (dwz->dwz_bfd.get ()); ++ const bfd_build_id *dwz_build_id ++ = build_id_bfd_shdr_get (dwz->dwz_bfd.get ()); + + if (dwz_build_id == nullptr) + { diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c -@@ -2722,7 +2722,7 @@ dwarf2_get_dwz_file (struct dwarf2_per_objfile *dwarf2_per_objfile) +@@ -2677,7 +2677,7 @@ dwarf2_get_dwz_file (struct dwarf2_per_objfile *dwarf2_per_objfile) } if (dwz_bfd == NULL) @@ -1088,7 +1098,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c if (dwz_bfd == NULL) error (_("could not find '.gnu_debugaltlink' file for %s"), -@@ -6232,7 +6232,7 @@ get_gdb_index_contents_from_section (objfile *obj, T *section_owner) +@@ -6189,7 +6189,7 @@ get_gdb_index_contents_from_section (objfile *obj, T *section_owner) static gdb::array_view get_gdb_index_contents_from_cache (objfile *obj, dwarf2_per_objfile *dwarf2_obj) { @@ -1097,7 +1107,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c if (build_id == nullptr) return {}; -@@ -6245,7 +6245,7 @@ get_gdb_index_contents_from_cache (objfile *obj, dwarf2_per_objfile *dwarf2_obj) +@@ -6202,7 +6202,7 @@ get_gdb_index_contents_from_cache (objfile *obj, dwarf2_per_objfile *dwarf2_obj) static gdb::array_view get_gdb_index_contents_from_cache_dwz (objfile *obj, dwz_file *dwz) { @@ -1109,7 +1119,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c diff --git a/gdb/elfread.c b/gdb/elfread.c --- a/gdb/elfread.c +++ b/gdb/elfread.c -@@ -1290,7 +1290,9 @@ elf_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags) +@@ -1284,7 +1284,9 @@ elf_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags) && objfile->separate_debug_objfile == NULL && objfile->separate_debug_objfile_backlink == NULL) { @@ -1120,7 +1130,7 @@ diff --git a/gdb/elfread.c b/gdb/elfread.c if (debugfile.empty ()) debugfile = find_separate_debug_file_by_debuglink (objfile); -@@ -1302,6 +1304,10 @@ elf_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags) +@@ -1296,6 +1298,10 @@ elf_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags) symbol_file_add_separate (debug_bfd.get (), debugfile.c_str (), symfile_flags, objfile); } diff --git a/gdb-6.8-quit-never-aborts.patch b/gdb-6.8-quit-never-aborts.patch index 237c730..baab460 100644 --- a/gdb-6.8-quit-never-aborts.patch +++ b/gdb-6.8-quit-never-aborts.patch @@ -45,7 +45,7 @@ diff --git a/gdb/extension.c b/gdb/extension.c diff --git a/gdb/top.c b/gdb/top.c --- a/gdb/top.c +++ b/gdb/top.c -@@ -1686,7 +1686,13 @@ quit_force (int *exit_arg, int from_tty) +@@ -1677,7 +1677,13 @@ quit_force (int *exit_arg, int from_tty) qt.from_tty = from_tty; diff --git a/gdb-archer-pie-addons-keep-disabled.patch b/gdb-archer-pie-addons-keep-disabled.patch index 9cd534c..de2a95c 100644 --- a/gdb-archer-pie-addons-keep-disabled.patch +++ b/gdb-archer-pie-addons-keep-disabled.patch @@ -8,7 +8,7 @@ Subject: gdb-archer-pie-addons-keep-disabled.patch diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c -@@ -15428,6 +15428,50 @@ static struct cmd_list_element *enablebreaklist = NULL; +@@ -15416,6 +15416,50 @@ static struct cmd_list_element *enablebreaklist = NULL; cmd_list_element *commands_cmd_element = nullptr; @@ -62,7 +62,7 @@ diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h --- a/gdb/breakpoint.h +++ b/gdb/breakpoint.h -@@ -1664,6 +1664,9 @@ extern const char *ep_parse_optional_if_clause (const char **arg); +@@ -1674,6 +1674,9 @@ extern const char *ep_parse_optional_if_clause (const char **arg); UIOUT iff debugging multiple threads. */ extern void maybe_print_thread_hit_breakpoint (struct ui_out *uiout); diff --git a/gdb-archer.patch b/gdb-archer.patch index 44d4849..f28902e 100644 --- a/gdb-archer.patch +++ b/gdb-archer.patch @@ -14,22 +14,6 @@ commit 718a1618b2f691a7f407213bb50f100ac59f91c3 tromey/python -diff --git a/gdb/Makefile.in b/gdb/Makefile.in ---- a/gdb/Makefile.in -+++ b/gdb/Makefile.in -@@ -2084,6 +2084,12 @@ stamp-h: $(srcdir)/config.in config.status - CONFIG_LINKS= \ - $(SHELL) config.status - -+.gdbinit: $(srcdir)/gdbinit.in config.status -+ CONFIG_FILES=".gdbinit:gdbinit.in" \ -+ CONFIG_COMMANDS= \ -+ CONFIG_HEADERS= \ -+ $(SHELL) config.status -+ - config.status: $(srcdir)/configure configure.nat configure.tgt configure.host ../bfd/development.sh - $(SHELL) config.status --recheck - diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in --- a/gdb/data-directory/Makefile.in +++ b/gdb/data-directory/Makefile.in @@ -41,11 +25,10 @@ diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in gdb/command/explore.py \ gdb/command/backtrace.py \ gdb/command/frame_filters.py \ -@@ -92,6 +93,8 @@ PYTHON_FILE_LIST = \ +@@ -92,6 +93,7 @@ PYTHON_FILE_LIST = \ gdb/function/as_string.py \ gdb/function/caller_is.py \ gdb/function/strfns.py \ -+ gdb/function/caller_is.py \ + gdb/function/in_scope.py \ gdb/printer/__init__.py \ gdb/printer/bound_registers.py @@ -53,7 +36,7 @@ diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo -@@ -1251,6 +1251,16 @@ for remote debugging. +@@ -1252,6 +1252,16 @@ for remote debugging. Run using @var{device} for your program's standard input and output. @c FIXME: kingdon thinks there is more to -tty. Investigate. @@ -466,7 +449,7 @@ diff --git a/gdb/python/python.c b/gdb/python/python.c /* Return a sequence holding all the Progspaces. */ static PyObject * -@@ -1928,6 +2018,8 @@ PyMethodDef python_GdbMethods[] = +@@ -1927,6 +2017,8 @@ PyMethodDef python_GdbMethods[] = Evaluate command, a string, as a gdb CLI command. Optionally returns\n\ a Python String containing the output of the command if to_string is\n\ set to True." }, @@ -478,11 +461,7 @@ diff --git a/gdb/python/python.c b/gdb/python/python.c diff --git a/gdb/python/python.h b/gdb/python/python.h --- a/gdb/python/python.h +++ b/gdb/python/python.h -@@ -25,7 +25,10 @@ - /* This is all that python exports to gdb. */ - extern const struct extension_language_defn extension_language_python; - -+ +@@ -28,4 +28,6 @@ extern const struct extension_language_defn extension_language_python; /* Command element for the 'python' command. */ extern cmd_list_element *python_cmd_element; @@ -528,14 +507,3 @@ diff --git a/gdb/testsuite/gdb.python/py-value.exp b/gdb/testsuite/gdb.python/py # Test either C or C++ values. -diff --git a/gdb/varobj.c b/gdb/varobj.c ---- a/gdb/varobj.c -+++ b/gdb/varobj.c -@@ -217,7 +217,6 @@ is_root_p (const struct varobj *var) - } - - #ifdef HAVE_PYTHON -- - /* See python-internal.h. */ - gdbpy_enter_varobj::gdbpy_enter_varobj (const struct varobj *var) - : gdbpy_enter (var->root->exp->gdbarch, var->root->exp->language_defn) diff --git a/gdb-attach-fail-reasons-5of5.patch b/gdb-attach-fail-reasons-5of5.patch index 236aab8..c7f88d6 100644 --- a/gdb-attach-fail-reasons-5of5.patch +++ b/gdb-attach-fail-reasons-5of5.patch @@ -68,7 +68,7 @@ diff --git a/gdb/config.in b/gdb/config.in diff --git a/gdb/configure b/gdb/configure --- a/gdb/configure +++ b/gdb/configure -@@ -15814,6 +15814,64 @@ cat >>confdefs.h <<_ACEOF +@@ -15691,6 +15691,64 @@ cat >>confdefs.h <<_ACEOF _ACEOF @@ -136,7 +136,7 @@ diff --git a/gdb/configure b/gdb/configure diff --git a/gdb/configure.ac b/gdb/configure.ac --- a/gdb/configure.ac +++ b/gdb/configure.ac -@@ -2039,6 +2039,10 @@ case $host_os in +@@ -2017,6 +2017,10 @@ case $host_os in esac AC_DEFINE_UNQUOTED(GDBINIT,"$gdbinit",[The .gdbinit filename.]) @@ -276,7 +276,7 @@ diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c -@@ -1098,7 +1098,16 @@ linux_nat_target::create_inferior (const char *exec_file, +@@ -1095,7 +1095,16 @@ linux_nat_target::create_inferior (const char *exec_file, /* Make sure we report all signals during startup. */ pass_signals ({}); diff --git a/gdb-btrobust.patch b/gdb-btrobust.patch index 7fe9eb3..c28ab06 100644 --- a/gdb-btrobust.patch +++ b/gdb-btrobust.patch @@ -14,7 +14,7 @@ printed, but a default backtrace will occur in this case. diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c --- a/gdb/python/py-framefilter.c +++ b/gdb/python/py-framefilter.c -@@ -1138,6 +1138,7 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang, +@@ -1139,6 +1139,7 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang, htab_eq_pointer, NULL)); @@ -22,7 +22,7 @@ diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c while (true) { gdbpy_ref<> item (PyIter_Next (iterable.get ())); -@@ -1146,8 +1147,8 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang, +@@ -1147,8 +1148,8 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang, { if (PyErr_Occurred ()) { @@ -33,7 +33,7 @@ diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c } break; } -@@ -1179,7 +1180,8 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang, +@@ -1180,7 +1181,8 @@ gdbpy_apply_frame_filter (const struct extension_language_defn *extlang, /* Do not exit on error printing a single frame. Print the error and continue with other frames. */ if (success == EXT_LANG_BT_ERROR) diff --git a/gdb-bz568248-oom-is-error.patch b/gdb-bz568248-oom-is-error.patch index 48116f0..b1e33c2 100644 --- a/gdb-bz568248-oom-is-error.patch +++ b/gdb-bz568248-oom-is-error.patch @@ -53,7 +53,7 @@ gdb/ diff --git a/gdb/utils.c b/gdb/utils.c --- a/gdb/utils.c +++ b/gdb/utils.c -@@ -692,13 +692,11 @@ malloc_failure (long size) +@@ -689,13 +689,11 @@ malloc_failure (long size) { if (size > 0) { diff --git a/gdb-fedora-libncursesw.patch b/gdb-fedora-libncursesw.patch index cc4571d..5536b9a 100644 --- a/gdb-fedora-libncursesw.patch +++ b/gdb-fedora-libncursesw.patch @@ -12,7 +12,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1270534 diff --git a/gdb/configure b/gdb/configure --- a/gdb/configure +++ b/gdb/configure -@@ -9418,6 +9418,7 @@ if test x"$prefer_curses" = xyes; then +@@ -9295,6 +9295,7 @@ if test x"$prefer_curses" = xyes; then # search /usr/local/include, if ncurses is installed in /usr/local. A # default installation of ncurses on alpha*-dec-osf* will lead to such # a situation. @@ -20,7 +20,7 @@ diff --git a/gdb/configure b/gdb/configure { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing waddstr" >&5 $as_echo_n "checking for library containing waddstr... " >&6; } if ${ac_cv_search_waddstr+:} false; then : -@@ -9442,7 +9443,7 @@ return waddstr (); +@@ -9319,7 +9320,7 @@ return waddstr (); return 0; } _ACEOF @@ -29,7 +29,7 @@ diff --git a/gdb/configure b/gdb/configure if test -z "$ac_lib"; then ac_res="none required" else -@@ -9516,6 +9517,7 @@ case $host_os in +@@ -9393,6 +9394,7 @@ case $host_os in esac # These are the libraries checked by Readline. @@ -37,7 +37,7 @@ diff --git a/gdb/configure b/gdb/configure { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tgetent" >&5 $as_echo_n "checking for library containing tgetent... " >&6; } if ${ac_cv_search_tgetent+:} false; then : -@@ -9540,7 +9542,7 @@ return tgetent (); +@@ -9417,7 +9419,7 @@ return tgetent (); return 0; } _ACEOF @@ -49,7 +49,7 @@ diff --git a/gdb/configure b/gdb/configure diff --git a/gdb/configure.ac b/gdb/configure.ac --- a/gdb/configure.ac +++ b/gdb/configure.ac -@@ -743,7 +743,8 @@ if test x"$prefer_curses" = xyes; then +@@ -721,7 +721,8 @@ if test x"$prefer_curses" = xyes; then # search /usr/local/include, if ncurses is installed in /usr/local. A # default installation of ncurses on alpha*-dec-osf* will lead to such # a situation. @@ -59,7 +59,7 @@ diff --git a/gdb/configure.ac b/gdb/configure.ac if test "$ac_cv_search_waddstr" != no; then curses_found=yes -@@ -785,7 +786,8 @@ case $host_os in +@@ -763,7 +764,8 @@ case $host_os in esac # These are the libraries checked by Readline. diff --git a/gdb-gnat-dwarf-crash-3of3.patch b/gdb-gnat-dwarf-crash-3of3.patch index c1caccb..29eaab9 100644 --- a/gdb-gnat-dwarf-crash-3of3.patch +++ b/gdb-gnat-dwarf-crash-3of3.patch @@ -42,7 +42,7 @@ gdb/ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c -@@ -10590,6 +10590,13 @@ private: +@@ -10543,6 +10543,13 @@ private: static void process_die (struct die_info *die, struct dwarf2_cu *cu) { @@ -89,7 +89,7 @@ diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c static unsigned int debug_linux_nat; static void show_debug_linux_nat (struct ui_file *file, int from_tty, -@@ -1036,6 +1042,9 @@ linux_nat_post_attach_wait (ptid_t ptid, int *signalled) +@@ -1033,6 +1039,9 @@ linux_nat_post_attach_wait (ptid_t ptid, int *signalled) if (debug_linux_nat) fprintf_unfiltered (gdb_stdlog, "LNPAW: Attaching to a stopped process\n"); @@ -99,7 +99,7 @@ diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c /* The process is definitely stopped. It is in a job control stop, unless the kernel predates the TASK_STOPPED / -@@ -1367,6 +1376,25 @@ get_detach_signal (struct lwp_info *lp) +@@ -1364,6 +1373,25 @@ get_detach_signal (struct lwp_info *lp) return gdb_signal_to_host (signo); } @@ -125,7 +125,7 @@ diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c return 0; } -@@ -1515,6 +1543,10 @@ linux_nat_target::detach (inferior *inf, int from_tty) +@@ -1512,6 +1540,10 @@ linux_nat_target::detach (inferior *inf, int from_tty) detach_one_lwp (main_lwp, &signo); detach_success (inf); @@ -136,7 +136,7 @@ diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c } } -@@ -1772,6 +1804,16 @@ linux_nat_target::resume (ptid_t ptid, int step, enum gdb_signal signo) +@@ -1769,6 +1801,16 @@ linux_nat_target::resume (ptid_t ptid, int step, enum gdb_signal signo) return; } @@ -153,7 +153,7 @@ diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c if (resume_many) iterate_over_lwps (ptid, [=] (struct lwp_info *info) { -@@ -3773,6 +3815,10 @@ linux_nat_target::mourn_inferior () +@@ -3770,6 +3812,10 @@ linux_nat_target::mourn_inferior () /* Let the arch-specific native code know this process is gone. */ linux_target->low_forget_process (pid); diff --git a/gdb-jit-reader-multilib.patch b/gdb-jit-reader-multilib.patch index 4a50fa9..89eab10 100644 --- a/gdb-jit-reader-multilib.patch +++ b/gdb-jit-reader-multilib.patch @@ -9,7 +9,7 @@ Subject: gdb-jit-reader-multilib.patch diff --git a/gdb/configure b/gdb/configure --- a/gdb/configure +++ b/gdb/configure -@@ -9705,10 +9705,12 @@ _ACEOF +@@ -9582,10 +9582,12 @@ _ACEOF @@ -28,7 +28,7 @@ diff --git a/gdb/configure b/gdb/configure diff --git a/gdb/configure.ac b/gdb/configure.ac --- a/gdb/configure.ac +++ b/gdb/configure.ac -@@ -820,10 +820,12 @@ AC_CHECK_SIZEOF(unsigned long long) +@@ -798,10 +798,12 @@ AC_CHECK_SIZEOF(unsigned long long) AC_CHECK_SIZEOF(unsigned long) AC_CHECK_SIZEOF(unsigned __int128) diff --git a/gdb-libexec-add-index.patch b/gdb-libexec-add-index.patch index c3990ef..19f6b54 100644 --- a/gdb-libexec-add-index.patch +++ b/gdb-libexec-add-index.patch @@ -14,9 +14,9 @@ Subject: gdb-libexec-add-index.patch diff --git a/gdb/contrib/gdb-add-index.sh b/gdb/contrib/gdb-add-index.sh --- a/gdb/contrib/gdb-add-index.sh +++ b/gdb/contrib/gdb-add-index.sh -@@ -21,6 +21,20 @@ - GDB=${GDB:=gdb} +@@ -22,6 +22,20 @@ GDB=${GDB:=gdb} OBJCOPY=${OBJCOPY:=objcopy} + READELF=${READELF:=readelf} +GDB2=/usr/libexec/gdb +if test -x $GDB2 && ! which $GDB &>/dev/null; then diff --git a/gdb-linux_perf-bundle.patch b/gdb-linux_perf-bundle.patch index dae4ae3..552b8dc 100644 --- a/gdb-linux_perf-bundle.patch +++ b/gdb-linux_perf-bundle.patch @@ -9,7 +9,7 @@ Subject: gdb-linux_perf-bundle.patch diff --git a/gdb/configure b/gdb/configure --- a/gdb/configure +++ b/gdb/configure -@@ -12053,7 +12053,7 @@ else +@@ -11930,7 +11930,7 @@ else #include #ifndef PERF_ATTR_SIZE_VER5 @@ -21,7 +21,7 @@ diff --git a/gdb/configure b/gdb/configure diff --git a/gdb/configure.ac b/gdb/configure.ac --- a/gdb/configure.ac +++ b/gdb/configure.ac -@@ -1488,7 +1488,7 @@ else +@@ -1466,7 +1466,7 @@ else AC_PREPROC_IFELSE([AC_LANG_SOURCE([[ #include #ifndef PERF_ATTR_SIZE_VER5 diff --git a/gdb-moribund-utrace-workaround.patch b/gdb-moribund-utrace-workaround.patch index c3e5c20..f8d6617 100644 --- a/gdb-moribund-utrace-workaround.patch +++ b/gdb-moribund-utrace-workaround.patch @@ -14,7 +14,7 @@ Bug in FSF GDB exploited by the ptrace-on-utrace interaction. diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c -@@ -11922,6 +11922,8 @@ update_global_location_list (enum ugll_insert_mode insert_mode) +@@ -11911,6 +11911,8 @@ update_global_location_list (enum ugll_insert_mode insert_mode) traps we can no longer explain. */ old_loc->events_till_retirement = 3 * (thread_count () + 1); diff --git a/gdb-vla-intel-fortran-strides.patch b/gdb-vla-intel-fortran-strides.patch index e489e6c..fc9da49 100644 --- a/gdb-vla-intel-fortran-strides.patch +++ b/gdb-vla-intel-fortran-strides.patch @@ -143,7 +143,7 @@ diff --git a/gdb/dwarf2loc.h b/gdb/dwarf2loc.h diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c -@@ -17839,7 +17839,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -17763,7 +17763,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; @@ -152,7 +152,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c int low_default_is_valid; int high_bound_is_count = 0; const char *name; -@@ -17859,7 +17859,9 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -17783,7 +17783,9 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) low.kind = PROP_CONST; high.kind = PROP_CONST; @@ -162,7 +162,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c /* Set LOW_DEFAULT_IS_VALID if current language and DWARF version allow omitting DW_AT_lower_bound. */ -@@ -17892,6 +17894,14 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -17816,6 +17818,14 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) break; } @@ -177,7 +177,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c attr = dwarf2_attr (die, DW_AT_lower_bound, cu); if (attr) attr_to_dynamic_prop (attr, die, cu, &low); -@@ -17984,7 +17994,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -17908,7 +17918,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; @@ -1672,7 +1672,7 @@ new file mode 100644 diff --git a/gdb/testsuite/gdb.fortran/vla-ptype.exp b/gdb/testsuite/gdb.fortran/vla-ptype.exp --- a/gdb/testsuite/gdb.fortran/vla-ptype.exp +++ b/gdb/testsuite/gdb.fortran/vla-ptype.exp -@@ -98,3 +98,7 @@ gdb_test "ptype vla2" "type = " "ptype vla2 not allocated" +@@ -98,3 +98,7 @@ gdb_test "ptype vla2" "type = $real, allocatable \\(:,:,:\\)" "ptype vla2 not al gdb_test "ptype vla2(5, 45, 20)" \ "no such vector element \\\(vector not allocated\\\)" \ "ptype vla2(5, 45, 20) not allocated" @@ -1687,7 +1687,7 @@ diff --git a/gdb/testsuite/gdb.fortran/vla-sizeof.exp b/gdb/testsuite/gdb.fortra gdb_test "print sizeof(vla1(3,2,1))" \ "no such vector element \\(vector not allocated\\)" \ "print sizeof non-allocated indexed vla1" --gdb_test "print sizeof(vla1(3:4,2,1))" "slice out of range" \ +-gdb_test "print sizeof(vla1(3:4,2,1))" "array not allocated" \ +gdb_test "print sizeof(vla1(3:4,2,1))" \ + "provided bound\\(s\\) outside array bound\\(s\\)" \ "print sizeof non-allocated sliced vla1" @@ -1706,7 +1706,7 @@ diff --git a/gdb/testsuite/gdb.fortran/vla-sizeof.exp b/gdb/testsuite/gdb.fortra gdb_test "print sizeof(pvla(3,2,1))" \ "no such vector element \\(vector not associated\\)" \ "print sizeof non-associated indexed pvla" --gdb_test "print sizeof(pvla(3:4,2,1))" "slice out of range" \ +-gdb_test "print sizeof(pvla(3:4,2,1))" "array not associated" \ +gdb_test "print sizeof(pvla(3:4,2,1))" \ + "provided bound\\(s\\) outside array bound\\(s\\)" \ "print sizeof non-associated sliced pvla" @@ -1849,7 +1849,7 @@ diff --git a/gdb/valarith.c b/gdb/valarith.c diff --git a/gdb/valops.c b/gdb/valops.c --- a/gdb/valops.c +++ b/gdb/valops.c -@@ -3790,56 +3790,195 @@ value_of_this_silent (const struct language_defn *lang) +@@ -3790,13 +3790,42 @@ value_of_this_silent (const struct language_defn *lang) struct value * value_slice (struct value *array, int lowbound, int length) @@ -1896,6 +1896,9 @@ diff --git a/gdb/valops.c b/gdb/valops.c if (TYPE_CODE (array_type) != TYPE_CODE_ARRAY && TYPE_CODE (array_type) != TYPE_CODE_STRING) error (_("cannot take slice of non-array")); +@@ -3806,45 +3835,155 @@ value_slice (struct value *array, int lowbound, int length) + if (type_not_associated (array_type)) + error (_("array not associated")); - range_type = TYPE_INDEX_TYPE (array_type); - if (get_discrete_bounds (range_type, &lowerbound, &upperbound) < 0) @@ -1963,7 +1966,7 @@ diff --git a/gdb/valops.c b/gdb/valops.c /* FIXME-type-allocation: need a way to free this type when we are - done with it. */ -- slice_range_type = create_static_range_type ((struct type *) NULL, +- slice_range_type = create_static_range_type (NULL, - TYPE_TARGET_TYPE (range_type), - lowbound, - lowbound + length - 1); @@ -1985,7 +1988,7 @@ diff --git a/gdb/valops.c b/gdb/valops.c + + slice_type = create_array_type (NULL, element_type, slice_range_type); -- slice_type = create_array_type ((struct type *) NULL, +- slice_type = create_array_type (NULL, - element_type, - slice_range_type); - TYPE_CODE (slice_type) = TYPE_CODE (array_type); diff --git a/gdb-vla-intel-fortran-vla-strings.patch b/gdb-vla-intel-fortran-vla-strings.patch index 2d6c1d9..b46c895 100644 --- a/gdb-vla-intel-fortran-vla-strings.patch +++ b/gdb-vla-intel-fortran-vla-strings.patch @@ -33,7 +33,7 @@ git diff --stat -p gdb/master...gdb/users/bheckel/fortran-vla-strings diff --git a/gdb/NEWS b/gdb/NEWS --- a/gdb/NEWS +++ b/gdb/NEWS -@@ -467,6 +467,8 @@ SH-5/SH64 running OpenBSD SH-5/SH64 support in sh*-*-openbsd* +@@ -573,6 +573,8 @@ SH-5/SH64 running OpenBSD SH-5/SH64 support in sh*-*-openbsd* *** Changes in GDB 8.1 @@ -77,7 +77,7 @@ diff --git a/gdb/c-valprint.c b/gdb/c-valprint.c diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c -@@ -1833,7 +1833,8 @@ static void read_signatured_type (struct signatured_type *); +@@ -1810,7 +1810,8 @@ static void read_signatured_type (struct signatured_type *); static int attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die, struct dwarf2_cu *cu, @@ -87,7 +87,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c /* memory allocation interface */ -@@ -13759,7 +13760,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu) +@@ -13686,7 +13687,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu) { newobj->static_link = XOBNEW (&objfile->objfile_obstack, struct dynamic_prop); @@ -96,7 +96,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c } cu->list_in_scope = cu->get_builder ()->get_local_symbols (); -@@ -16518,7 +16519,8 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -16445,7 +16446,8 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu) byte_stride_prop = (struct dynamic_prop *) alloca (sizeof (struct dynamic_prop)); @@ -106,7 +106,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c if (!stride_ok) { complaint (_("unable to read array DW_AT_byte_stride " -@@ -17279,29 +17281,90 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -17203,29 +17205,90 @@ 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; @@ -208,7 +208,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c char_type = language_string_char_type (cu->language_defn, gdbarch); type = create_string_type (NULL, char_type, range_type); -@@ -17733,7 +17796,8 @@ read_base_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -17657,7 +17720,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, @@ -218,7 +218,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c { struct dwarf2_property_baton *baton; struct obstack *obstack -@@ -17744,14 +17808,33 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die, +@@ -17668,14 +17732,33 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die, if (attr_form_is_block (attr)) { @@ -256,7 +256,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c } else if (attr_form_is_ref (attr)) { -@@ -17784,8 +17867,28 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die, +@@ -17708,8 +17791,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; @@ -287,7 +287,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c prop->data.baton = baton; prop->kind = PROP_LOCEXPR; gdb_assert (prop->data.baton != NULL); -@@ -17896,7 +17999,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -17820,7 +17923,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) attr = dwarf2_attr (die, DW_AT_byte_stride, cu); if (attr) @@ -296,7 +296,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c complaint (_("Missing DW_AT_byte_stride " "- DIE at 0x%s [in module %s]"), sect_offset_str (die->sect_off), -@@ -17904,7 +18007,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -17828,7 +17931,7 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) attr = dwarf2_attr (die, DW_AT_lower_bound, cu); if (attr) @@ -305,7 +305,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c else if (!low_default_is_valid) complaint (_("Missing DW_AT_lower_bound " "- DIE at %s [in module %s]"), -@@ -17913,10 +18016,10 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) +@@ -17837,10 +17940,10 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu) struct attribute *attr_ub, *attr_count; attr = attr_ub = dwarf2_attr (die, DW_AT_upper_bound, cu); @@ -318,7 +318,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c { /* If bounds are constant do the final calculation here. */ if (low.kind == PROP_CONST && high.kind == PROP_CONST) -@@ -25574,7 +25677,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) +@@ -25502,7 +25605,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)) { @@ -327,7 +327,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c add_dyn_prop (DYN_PROP_ALLOCATED, prop, type); } else if (attr != NULL) -@@ -25588,7 +25691,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) +@@ -25516,7 +25619,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)) { @@ -336,7 +336,7 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c add_dyn_prop (DYN_PROP_ASSOCIATED, prop, type); } else if (attr != NULL) -@@ -25600,7 +25703,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu) +@@ -25528,7 +25631,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); @@ -348,63 +348,19 @@ diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c --- a/gdb/f-typeprint.c +++ b/gdb/f-typeprint.c -@@ -37,7 +37,7 @@ static void f_type_print_args (struct type *, struct ui_file *); - #endif - - static void f_type_print_varspec_suffix (struct type *, struct ui_file *, int, -- int, int, int); -+ int, int, int, int); - - void f_type_print_varspec_prefix (struct type *, struct ui_file *, - int, int); -@@ -53,18 +53,6 @@ f_print_type (struct type *type, const char *varstring, struct ui_file *stream, - { - enum type_code code; - -- if (type_not_associated (type)) -- { -- val_print_not_associated (stream); -- return; -- } -- -- if (type_not_allocated (type)) -- { -- val_print_not_allocated (stream); -- return; -- } -- - f_type_print_base (type, stream, show, level); - code = TYPE_CODE (type); - if ((varstring != NULL && *varstring != '\0') -@@ -96,7 +84,7 @@ f_print_type (struct type *type, const char *varstring, struct ui_file *stream, - - demangled_args = (*varstring != '\0' - && varstring[strlen (varstring) - 1] == ')'); -- f_type_print_varspec_suffix (type, stream, show, 0, demangled_args, 0); -+ f_type_print_varspec_suffix (type, stream, show, 0, demangled_args, 0, 0); - } - } - -@@ -166,7 +154,7 @@ f_type_print_varspec_prefix (struct type *type, struct ui_file *stream, - static void - f_type_print_varspec_suffix (struct type *type, struct ui_file *stream, - int show, int passed_a_ptr, int demangled_args, -- int arrayprint_recurse_level) -+ int arrayprint_recurse_level, int print_rank_only) - { - /* No static variables are permitted as an error call may occur during - execution of this function. */ -@@ -188,36 +176,52 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream, - fprintf_filtered (stream, "("); - - if (type_not_associated (type)) -- val_print_not_associated (stream); -+ print_rank_only = 1; - else if (type_not_allocated (type)) -- val_print_not_allocated (stream); -+ print_rank_only = 1; -+ else if ((TYPE_ASSOCIATED_PROP (type) -+ && PROP_CONST != TYPE_DYN_PROP_KIND (TYPE_ASSOCIATED_PROP (type))) +@@ -186,15 +186,14 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream, + print_rank_only = true; + else if ((TYPE_ASSOCIATED_PROP (type) + && PROP_CONST != TYPE_DYN_PROP_KIND (TYPE_ASSOCIATED_PROP (type))) +- || (TYPE_ALLOCATED_PROP (type) +- && PROP_CONST != TYPE_DYN_PROP_KIND (TYPE_ALLOCATED_PROP (type))) +- || (TYPE_DATA_LOCATION (type) +- && PROP_CONST != TYPE_DYN_PROP_KIND (TYPE_DATA_LOCATION (type)))) +- { +- /* This case exist when we ptype a typename which has the dynamic +- properties but cannot be resolved as there is no object. */ +- print_rank_only = true; +- } + || (TYPE_ALLOCATED_PROP (type) + && PROP_CONST != TYPE_DYN_PROP_KIND (TYPE_ALLOCATED_PROP (type))) + || (TYPE_DATA_LOCATION (type) @@ -412,93 +368,39 @@ diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c + /* This case exist when we ptype a typename which has the + dynamic properties but cannot be resolved as there is + no object. */ -+ print_rank_only = 1; -+ -+ if (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_ARRAY) -+ f_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0, -+ 0, 0, arrayprint_recurse_level, -+ print_rank_only); -+ -+ if (print_rank_only == 1) -+ fprintf_filtered (stream, ":"); - else -- { -- if (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_ARRAY) -- f_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0, -- 0, 0, arrayprint_recurse_level); -+ { -+ LONGEST lower_bound = f77_get_lowerbound (type); ++ print_rank_only = true; -- LONGEST lower_bound = f77_get_lowerbound (type); -+ if (lower_bound != 1) /* Not the default. */ + if (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_ARRAY) + f_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0, +@@ -206,8 +205,9 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream, + else + { + LONGEST lower_bound = f77_get_lowerbound (type); ++ + if (lower_bound != 1) /* Not the default. */ +- fprintf_filtered (stream, "%s:", plongest (lower_bound)); + fprintf_filtered (stream, "%s:", plongest (lower_bound)); -- if (lower_bound != 1) /* Not the default. */ -- fprintf_filtered (stream, "%s:", plongest (lower_bound)); -+ /* Make sure that, if we have an assumed size array, we -+ print out a warning and print the upperbound as '*'. */ - -- /* Make sure that, if we have an assumed size array, we -- print out a warning and print the upperbound as '*'. */ -+ if (TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (type)) -+ fprintf_filtered (stream, "*"); -+ else -+ { -+ LONGEST upper_bound = f77_get_upperbound (type); - -- if (TYPE_ARRAY_UPPER_BOUND_IS_UNDEFINED (type)) -- fprintf_filtered (stream, "*"); -- else -- { -- LONGEST upper_bound = f77_get_upperbound (type); -+ fprintf_filtered (stream, "%s", plongest (upper_bound)); -+ } -+ } + /* Make sure that, if we have an assumed size array, we + print out a warning and print the upperbound as '*'. */ +@@ -218,7 +218,7 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream, + { + LONGEST upper_bound = f77_get_upperbound (type); - fputs_filtered (plongest (upper_bound), stream); -- } -+ if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_ARRAY) -+ f_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0, -+ 0, 0, arrayprint_recurse_level, -+ print_rank_only); ++ fprintf_filtered (stream, "%s", plongest (upper_bound)); + } + } -- if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_ARRAY) -- f_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0, -- 0, 0, arrayprint_recurse_level); -- } - if (arrayprint_recurse_level == 1) - fprintf_filtered (stream, ")"); - else -@@ -228,8 +232,8 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream, - case TYPE_CODE_PTR: +@@ -238,7 +238,7 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream, case TYPE_CODE_REF: f_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0, 1, 0, -- arrayprint_recurse_level); + arrayprint_recurse_level, false); - fprintf_filtered (stream, " )"); -+ arrayprint_recurse_level, 0); + fprintf_filtered (stream, ")"); break; case TYPE_CODE_FUNC: -@@ -237,7 +241,8 @@ f_type_print_varspec_suffix (struct type *type, struct ui_file *stream, - int i, nfields = TYPE_NFIELDS (type); - - f_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0, -- passed_a_ptr, 0, arrayprint_recurse_level); -+ passed_a_ptr, 0, arrayprint_recurse_level, -+ 0); - if (passed_a_ptr) - fprintf_filtered (stream, ") "); - fprintf_filtered (stream, "("); -@@ -416,7 +421,7 @@ f_type_print_base (struct type *type, struct ui_file *stream, int show, - fputs_filtered (" :: ", stream); - fputs_filtered (TYPE_FIELD_NAME (type, index), stream); - f_type_print_varspec_suffix (TYPE_FIELD_TYPE (type, index), -- stream, show - 1, 0, 0, 0); -+ stream, show - 1, 0, 0, 0, 0); - fputs_filtered ("\n", stream); - } - fprintfi_filtered (level, stream, "End Type "); diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c @@ -792,32 +694,12 @@ new file mode 100644 +gdb_test "print *((integer*) &intvla + 3)" "= 4" "print temporary pointer, allocated vla" +gdb_test "print \$pc" "= \\(PTR TO -> \\( void \\(\\) \\(\\)\\)\\) $hex " "Print program counter" diff --git a/gdb/testsuite/gdb.fortran/pointers.f90 b/gdb/testsuite/gdb.fortran/pointers.f90 -new file mode 100644 ---- /dev/null +--- a/gdb/testsuite/gdb.fortran/pointers.f90 +++ b/gdb/testsuite/gdb.fortran/pointers.f90 -@@ -0,0 +1,109 @@ -+! Copyright 2016 Free Software Foundation, Inc. -+! -+! 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 . -+ -+program pointers -+ -+ type :: two -+ integer, allocatable :: ivla1 (:) -+ integer, allocatable :: ivla2 (:, :) -+ end type two -+ +@@ -20,21 +20,34 @@ program pointers + integer, allocatable :: ivla2 (:, :) + end type two + + type :: typeWithPointer + integer i + type(typeWithPointer), pointer:: p @@ -827,229 +709,129 @@ new file mode 100644 + type (two), pointer :: p + end type twoPtr + -+ logical, target :: logv -+ complex, target :: comv -+ character, target :: charv -+ character (len=3), target :: chara -+ integer, target :: intv -+ integer, target, dimension (10,2) :: inta + logical, target :: logv + complex, target :: comv + character, target :: charv + character (len=3), target :: chara + integer, target :: intv + integer, target, dimension (10,2) :: inta +- real, target :: realv +- type(two), target :: twov + integer, target, allocatable, dimension (:) :: intvla + real, target :: realv + type(two), target :: twov + type(twoPtr) :: arrayOfPtr (3) + type(typeWithPointer), target:: cyclicp1,cyclicp2 -+ -+ logical, pointer :: logp -+ complex, pointer :: comp + + logical, pointer :: logp + complex, pointer :: comp +- character, pointer :: charp +- character (len=3), pointer :: charap + character, pointer:: charp + character (len=3), pointer:: charap -+ integer, pointer :: intp -+ integer, pointer, dimension (:,:) :: intap + integer, pointer :: intp + integer, pointer, dimension (:,:) :: intap + integer, pointer, dimension (:) :: intvlap -+ real, pointer :: realp -+ type(two), pointer :: twop -+ -+ nullify (logp) -+ nullify (comp) -+ nullify (charp) -+ nullify (charap) -+ nullify (intp) -+ nullify (intap) + real, pointer :: realp + type(two), pointer :: twop + +@@ -44,8 +57,14 @@ program pointers + nullify (charap) + nullify (intp) + nullify (intap) + nullify (intvlap) -+ nullify (realp) -+ nullify (twop) + nullify (realp) + nullify (twop) + nullify (arrayOfPtr(1)%p) + nullify (arrayOfPtr(2)%p) + nullify (arrayOfPtr(3)%p) + nullify (cyclicp1%p) + nullify (cyclicp2%p) -+ -+ logp => logv ! Before pointer assignment -+ comp => comv -+ charp => charv -+ charap => chara -+ intp => intv -+ intap => inta + + logp => logv ! Before pointer assignment + comp => comv +@@ -53,8 +72,14 @@ program pointers + charap => chara + intp => intv + intap => inta + intvlap => intvla -+ realp => realv -+ twop => twov + realp => realv + twop => twov + arrayOfPtr(2)%p => twov + cyclicp1%i = 1 + cyclicp1%p => cyclicp2 + cyclicp2%i = 2 + cyclicp2%p => cyclicp1 -+ -+ logv = associated(logp) ! Before value assignment -+ comv = cmplx(1,2) -+ charv = "a" -+ chara = "abc" -+ intv = 10 -+ inta(:,:) = 1 -+ inta(3,1) = 3 + + logv = associated(logp) ! Before value assignment + comv = cmplx(1,2) +@@ -63,6 +88,10 @@ program pointers + intv = 10 + inta(:,:) = 1 + inta(3,1) = 3 + allocate (intvla(10)) + intvla(:) = 2 + intvla(4) = 4 + intvlap => intvla -+ realv = 3.14 -+ -+ allocate (twov%ivla1(3)) -+ allocate (twov%ivla2(2,2)) -+ twov%ivla1(1) = 11 -+ twov%ivla1(2) = 12 -+ twov%ivla1(3) = 13 -+ twov%ivla2(1,1) = 211 -+ twov%ivla2(2,1) = 221 -+ twov%ivla2(1,2) = 212 -+ twov%ivla2(2,2) = 222 -+ -+ intv = intv + 1 ! After value assignment -+ -+end program pointers + realv = 3.14 + + allocate (twov%ivla1(3)) diff --git a/gdb/testsuite/gdb.fortran/print_type.exp b/gdb/testsuite/gdb.fortran/print_type.exp -new file mode 100644 ---- /dev/null +--- a/gdb/testsuite/gdb.fortran/print_type.exp +++ b/gdb/testsuite/gdb.fortran/print_type.exp -@@ -0,0 +1,100 @@ -+# Copyright 2016 Free Software Foundation, Inc. +@@ -1,5 +1,6 @@ + # Copyright 2019 Free Software Foundation, Inc. + # + -+# 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 . -+ -+standard_testfile "pointers.f90" -+load_lib fortran.exp -+ -+if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \ -+ {debug f90 quiet}] } { -+ return -1 -+} -+ -+ -+if ![runto_main] { -+ untested "could not run to main" -+ return -1 -+} -+ -+# Depending on the compiler being used, the type names can be printed differently. -+set logical [fortran_logical4] -+set real [fortran_real4] -+set int [fortran_int4] -+set complex [fortran_complex4] -+ -+gdb_breakpoint [gdb_get_line_number "Before pointer assignment"] -+gdb_continue_to_breakpoint "Before pointer assignment" -+gdb_test "ptype logp" "type = PTR TO -> \\( $logical\\)" "ptype logp, not associated" -+gdb_test "ptype comp" "type = PTR TO -> \\( $complex\\)" "ptype comp, not associated" -+gdb_test "ptype charp" "type = PTR TO -> \\( character\\*1\\)" "ptype charp, not associated" -+gdb_test "ptype charap" "type = PTR TO -> \\( character\\*3\\)" "ptype charap, not associated" -+gdb_test "ptype intp" "type = PTR TO -> \\( $int\\)" "ptype intp, not associated" -+set test "ptype intap, not associated" -+gdb_test_multiple "ptype intap" $test { -+ -re "type = PTR TO -> \\( $int \\(:,:\\)\\)\r\n$gdb_prompt $" { -+ pass $test -+ } -+ -re "type = $int \\(:,:\\)\r\n$gdb_prompt $" { -+ pass $test -+ } -+} -+gdb_test "ptype realp" "type = PTR TO -> \\( $real\\)" "ptype realp, not associated" -+gdb_test "ptype twop" \ -+ [multi_line "type = PTR TO -> \\( Type two" \ -+ " $int, allocatable :: ivla1\\(:\\)" \ -+ " $int, allocatable :: ivla2\\(:,:\\)" \ -+ "End Type two\\)"] \ -+ "ptype twop, not associated" -+gdb_test "ptype two" \ -+ [multi_line "type = Type two" \ -+ " $int, allocatable :: ivla1\\(:\\)" \ -+ " $int, allocatable :: ivla2\\(:,:\\)" \ -+ "End Type two"] -+ -+ -+gdb_breakpoint [gdb_get_line_number "Before value assignment"] -+gdb_continue_to_breakpoint "Before value assignment" -+gdb_test "ptype twop" \ -+ [multi_line "type = PTR TO -> \\( Type two" \ -+ " $int, allocatable :: ivla1\\(:\\)" \ -+ " $int, allocatable :: ivla2\\(:,:\\)" \ + # 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 +@@ -40,7 +41,7 @@ set complex [fortran_complex4] + # matches the string TYPE. + proc check_pointer_type { var_name type } { + gdb_test "ptype ${var_name}" \ +- "type = PTR TO -> \\( ${type} \\)" ++ "type = PTR TO -> \\( ${type}\\)" + } + + gdb_breakpoint [gdb_get_line_number "Before pointer assignment"] +@@ -85,7 +86,8 @@ gdb_test "ptype twop" \ + [multi_line "type = PTR TO -> \\( Type two" \ + " $int, allocatable :: ivla1\\(:\\)" \ + " $int, allocatable :: ivla2\\(:,:\\)" \ +- "End Type two \\)"] + "End Type two\\)"] + -+ -+gdb_breakpoint [gdb_get_line_number "After value assignment"] -+gdb_continue_to_breakpoint "After value assignment" -+gdb_test "ptype logv" "type = $logical" -+gdb_test "ptype comv" "type = $complex" -+gdb_test "ptype charv" "type = character\\*1" -+gdb_test "ptype chara" "type = character\\*3" -+gdb_test "ptype intv" "type = $int" -+gdb_test "ptype inta" "type = $int \\(10,2\\)" -+gdb_test "ptype realv" "type = $real" -+ -+ + + gdb_breakpoint [gdb_get_line_number "After value assignment"] + gdb_continue_to_breakpoint "After value assignment" +@@ -97,11 +99,11 @@ gdb_test "ptype intv" "type = $int" + gdb_test "ptype inta" "type = $int \\(10,2\\)" + gdb_test "ptype realv" "type = $real" + +-gdb_test "ptype logp" "type = PTR TO -> \\( $logical \\)" +-gdb_test "ptype comp" "type = PTR TO -> \\( $complex \\)" +-gdb_test "ptype charp" "type = PTR TO -> \\( character\\*1 \\)" +-gdb_test "ptype charap" "type = PTR TO -> \\( character\\*3 \\)" +-gdb_test "ptype intp" "type = PTR TO -> \\( $int \\)" +gdb_test "ptype logp" "type = PTR TO -> \\( $logical\\)" +gdb_test "ptype comp" "type = PTR TO -> \\( $complex\\)" +gdb_test "ptype charp" "type = PTR TO -> \\( character\\*1\\)" +gdb_test "ptype charap" "type = PTR TO -> \\( character\\*3\\)" +gdb_test "ptype intp" "type = PTR TO -> \\( $int\\)" -+set test "ptype intap" -+gdb_test_multiple $test $test { -+ -re "type = $int \\(10,2\\)\r\n$gdb_prompt $" { -+ pass $test -+ } -+ -re "type = PTR TO -> \\( $int \\(10,2\\)\\)\r\n$gdb_prompt $" { -+ pass $test -+ } -+} + set test "ptype intap" + gdb_test_multiple $test $test { + -re "type = $int \\(10,2\\)\r\n$gdb_prompt $" { +@@ -111,4 +113,4 @@ gdb_test_multiple $test $test { + pass $test + } + } +-gdb_test "ptype realp" "type = PTR TO -> \\( $real \\)" +gdb_test "ptype realp" "type = PTR TO -> \\( $real\\)" diff --git a/gdb/testsuite/gdb.fortran/vla-ptype.exp b/gdb/testsuite/gdb.fortran/vla-ptype.exp --- a/gdb/testsuite/gdb.fortran/vla-ptype.exp +++ b/gdb/testsuite/gdb.fortran/vla-ptype.exp -@@ -32,9 +32,9 @@ set real [fortran_real4] - # Check the ptype of various VLA states and pointer to VLA's. - gdb_breakpoint [gdb_get_line_number "vla1-init"] - gdb_continue_to_breakpoint "vla1-init" --gdb_test "ptype vla1" "type = " "ptype vla1 not initialized" --gdb_test "ptype vla2" "type = " "ptype vla2 not initialized" --gdb_test "ptype pvla" "type = " "ptype pvla not initialized" -+gdb_test "ptype vla1" "type = $real, allocatable \\(:,:,:\\)" "ptype vla1 not initialized" -+gdb_test "ptype vla2" "type = $real, allocatable \\(:,:,:\\)" "ptype vla2 not initialized" -+gdb_test "ptype pvla" "type = $real \\(:,:,:\\)" "ptype pvla not initialized" - gdb_test "ptype vla1(3, 6, 9)" "no such vector element \\\(vector not allocated\\\)" \ - "ptype vla1(3, 6, 9) not initialized" - gdb_test "ptype vla2(5, 45, 20)" \ -@@ -81,24 +81,24 @@ gdb_test "ptype vla2(5, 45, 20)" "type = $real" \ - - gdb_breakpoint [gdb_get_line_number "pvla-deassociated"] - gdb_continue_to_breakpoint "pvla-deassociated" --gdb_test "ptype pvla" "type = " "ptype pvla deassociated" -+gdb_test "ptype pvla" "type = $real \\(:,:,:\\)" "ptype pvla deassociated" - gdb_test "ptype pvla(5, 45, 20)" \ - "no such vector element \\\(vector not associated\\\)" \ - "ptype pvla(5, 45, 20) not associated" - - gdb_breakpoint [gdb_get_line_number "vla1-deallocated"] - gdb_continue_to_breakpoint "vla1-deallocated" --gdb_test "ptype vla1" "type = " "ptype vla1 not allocated" -+gdb_test "ptype vla1" "type = $real, allocatable \\(:,:,:\\)" "ptype vla1 not allocated" - gdb_test "ptype vla1(3, 6, 9)" "no such vector element \\\(vector not allocated\\\)" \ - "ptype vla1(3, 6, 9) not allocated" - - gdb_breakpoint [gdb_get_line_number "vla2-deallocated"] - gdb_continue_to_breakpoint "vla2-deallocated" --gdb_test "ptype vla2" "type = " "ptype vla2 not allocated" -+gdb_test "ptype vla2" "type = $real, allocatable \\(:,:,:\\)" "ptype vla2 not allocated" - gdb_test "ptype vla2(5, 45, 20)" \ - "no such vector element \\\(vector not allocated\\\)" \ - "ptype vla2(5, 45, 20) not allocated" +@@ -101,4 +101,4 @@ gdb_test "ptype vla2(5, 45, 20)" \ gdb_breakpoint [gdb_get_line_number "vla1-neg-bounds"] gdb_continue_to_breakpoint "vla1-neg-bounds" @@ -1207,30 +989,6 @@ new file mode 100644 + var_char_p => null() + l = associated(var_char_p) ! var_char_p-not-associated +end program vla_strings -diff --git a/gdb/testsuite/gdb.fortran/vla-type.exp b/gdb/testsuite/gdb.fortran/vla-type.exp ---- a/gdb/testsuite/gdb.fortran/vla-type.exp -+++ b/gdb/testsuite/gdb.fortran/vla-type.exp -@@ -132,7 +132,10 @@ gdb_test "ptype fivearr(2)%tone" \ - "End Type one" ] - - # Check allocation status of dynamic array and it's dynamic members --gdb_test "ptype fivedynarr" "type = " -+gdb_test "ptype fivedynarr" \ -+ [multi_line "type = Type five" \ -+ " Type one :: tone" \ -+ "End Type five, allocatable \\(:\\)" ] - gdb_test "next" "" - gdb_test "ptype fivedynarr(2)" \ - [multi_line "type = Type five" \ -@@ -141,7 +144,7 @@ gdb_test "ptype fivedynarr(2)" \ - "ptype fivedynarr(2), tone is not allocated" - gdb_test "ptype fivedynarr(2)%tone" \ - [multi_line "type = Type one" \ -- " $int, allocatable :: ivla\\(\\)" \ -+ " $int, allocatable :: ivla\\(:,:,:\\)" \ - "End Type one" ] \ - "ptype fivedynarr(2)%tone, not allocated" - diff --git a/gdb/testsuite/gdb.fortran/vla-value.exp b/gdb/testsuite/gdb.fortran/vla-value.exp --- a/gdb/testsuite/gdb.fortran/vla-value.exp +++ b/gdb/testsuite/gdb.fortran/vla-value.exp @@ -1238,7 +996,7 @@ diff --git a/gdb/testsuite/gdb.fortran/vla-value.exp b/gdb/testsuite/gdb.fortran gdb_continue_to_breakpoint "vla1-init" gdb_test "print vla1" " = " "print non-allocated vla1" gdb_test "print &vla1" \ -- " = \\\(PTR TO -> \\\( $real, allocatable \\\(\\\) \\\)\\\) $hex" \ +- " = \\\(PTR TO -> \\\( $real, allocatable \\\(:,:,:\\\) \\\)\\\) $hex" \ + " = \\\(PTR TO -> \\\( $real, allocatable \\\(:,:,:\\\)\\\)\\\) $hex" \ "print non-allocated &vla1" gdb_test "print vla1(1,1,1)" "no such vector element \\\(vector not allocated\\\)" \ @@ -1256,7 +1014,7 @@ diff --git a/gdb/testsuite/gdb.fortran/vla-value.exp b/gdb/testsuite/gdb.fortran # Try to access values in undefined pointer to VLA (dangling) gdb_test "print pvla" " = " "print undefined pvla" gdb_test "print &pvla" \ -- " = \\\(PTR TO -> \\\( $real \\\(\\\) \\\)\\\) $hex" \ +- " = \\\(PTR TO -> \\\( $real \\\(:,:,:\\\) \\\)\\\) $hex" \ + " = \\\(PTR TO -> \\\( $real \\\(:,:,:\\\)\\\)\\\) $hex" \ "print non-associated &pvla" gdb_test "print pvla(1, 3, 8)" "no such vector element \\\(vector not associated\\\)" \ @@ -1270,35 +1028,6 @@ diff --git a/gdb/testsuite/gdb.fortran/vla-value.exp b/gdb/testsuite/gdb.fortran "print associated &pvla" gdb_test "print pvla(3, 6, 9)" " = 42" "print associated pvla(3,6,9)" gdb_test "print pvla(1, 3, 8)" " = 1001" "print associated pvla(1,3,8)" -diff --git a/gdb/testsuite/gdb.mi/mi-vla-fortran.exp b/gdb/testsuite/gdb.mi/mi-vla-fortran.exp ---- a/gdb/testsuite/gdb.mi/mi-vla-fortran.exp -+++ b/gdb/testsuite/gdb.mi/mi-vla-fortran.exp -@@ -51,10 +51,10 @@ mi_expect_stop "breakpoint-hit" "vla" "" ".*vla.f90" "$bp_lineno" \ - mi_gdb_test "500-data-evaluate-expression vla1" \ - "500\\^done,value=\"\"" "evaluate not allocated vla, before allocation" - --mi_create_varobj_checked vla1_not_allocated vla1 "" \ -+mi_create_varobj_checked vla1_not_allocated vla1 "$real, allocatable \\(:\\)" \ - "create local variable vla1_not_allocated" - mi_gdb_test "501-var-info-type vla1_not_allocated" \ -- "501\\^done,type=\"\"" \ -+ "501\\^done,type=\"$real, allocatable \\(:\\)\"" \ - "info type variable vla1_not_allocated" - mi_gdb_test "502-var-show-format vla1_not_allocated" \ - "502\\^done,format=\"natural\"" \ -@@ -146,10 +146,10 @@ gdb_expect { - -re "580\\^done,value=\"\".*${mi_gdb_prompt}$" { - pass $test - -- mi_create_varobj_checked pvla2_not_associated pvla2 "" \ -+ mi_create_varobj_checked pvla2_not_associated pvla2 "$real \\(:,:\\)" \ - "create local variable pvla2_not_associated" - mi_gdb_test "581-var-info-type pvla2_not_associated" \ -- "581\\^done,type=\"\"" \ -+ "581\\^done,type=\"$real \\(:,:\\)\"" \ - "info type variable pvla2_not_associated" - mi_gdb_test "582-var-show-format pvla2_not_associated" \ - "582\\^done,format=\"natural\"" \ diff --git a/gdb/typeprint.c b/gdb/typeprint.c --- a/gdb/typeprint.c +++ b/gdb/typeprint.c @@ -1364,7 +1093,7 @@ diff --git a/gdb/valops.c b/gdb/valops.c diff --git a/gdb/valprint.c b/gdb/valprint.c --- a/gdb/valprint.c +++ b/gdb/valprint.c -@@ -1142,12 +1142,6 @@ value_check_printable (struct value *val, struct ui_file *stream, +@@ -1143,12 +1143,6 @@ value_check_printable (struct value *val, struct ui_file *stream, return 0; } diff --git a/gdb.spec b/gdb.spec index 07676b7..127a781 100644 --- a/gdb.spec +++ b/gdb.spec @@ -27,7 +27,7 @@ Name: %{?scl_prefix}gdb # Freeze it when GDB gets branched -%global snapsrc 20190610 +%global snapsrc 20190625 # See timestamp of source gnulib installed into gdb/gnulib/ . %global snapgnulib 20161115 %global tarname gdb-%{version} @@ -35,7 +35,7 @@ Version: 8.3.50.%{snapsrc} # 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: 17%{?dist} +Release: 18%{?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 # Do not provide URL for snapshots as the file lasts there only for 2 days. @@ -1141,6 +1141,9 @@ fi %endif %changelog +* Tue Jun 25 2019 Sergio Durigan Junior - 8.3.50.20190625-18 +- Rebase to FSF GDB 8.3.50.20190625 (8.4pre). + * Fri Jun 21 2019 Sergio Durigan Junior - 8.3.50.20190610-17 - Rebuild for librpm9 (RH BZ 1720305). diff --git a/sources b/sources index 966e7ed..4dda21c 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (gdb-libstdc++-v3-python-8.1.1-20180626.tar.xz) = a8b1c54dd348cfeb37da73f968742896be3dd13a4215f8d8519870c2abea915f5176c3fa6989ddd10f20020a16f0fab20cbae68ee8d58a82234d8778023520f8 SHA512 (v2.0.tar.gz) = ec63151e842c81cc73ea11ba560b63e005cefbe19d98de24ae5c8caa4de7c9c1d71d1ec5b6214a347592eac675b75a3d2b26d4691ca86f91020ebfea8e912939 -SHA512 (gdb-8.3.50.20190610.tar.xz) = f9abdd8d6af6cc2d3aebf882f12b9e65cea5dfa772d0b98b55c1b7d6cb9510a347b5ef80cdd743764393f9475333e56c3839b8254205d4cff770664f81eda6ab +SHA512 (gdb-8.3.50.20190625.tar.xz) = e374fc5ec3c27d40802c7f915bca2a5d98804a45d47e41723805f53610307a10926f1074cda8daaefd9eea1910a523b431b380cbd173e8174d331f1dbd726031