Go to file
Andrew Burgess 5ff2bbae19 gdb: Check element of optimised out vla exists
If a vla is not in memory, and the upper bound is not defined, then we
can't know that an array element exists or not, and we should not try
to access the array element.  One case where this happens is for
arrays that have been optimised out, the array will then have
VALUE_LVAL of not_lval, and an undefined upper bound, if we then try
to access an element of this array we will index into random GDB
memory.

An argument could be made that even for arrays that are in inferior
memory, if the upper bound is not defined then we should not try to
access the array element, however, in some of the Fortran tests, it
seems as though we do rely indexing from a base address into an array
which has no bounds defined.  In this case GDBs standard protection
for detecting unreadable target memory prevents bad thing happening.

gdb/ChangeLog:

	* valarith.c (value_subscripted_rvalue): If an array is not in
	memory, and we don't know the upper bound, then we can't know that
	the requested element exists or not.

gdb/testsuite/ChangeLog:

	* gdb.base/vla-optimized-out.exp: Add new test.
2018-08-09 17:17:35 +01:00
bfd Convert .note.gnu.property section between ELF32 and ELF64 2018-08-08 21:00:18 -07:00
binutils Convert .note.gnu.property section between ELF32 and ELF64 2018-08-08 21:00:18 -07:00
config Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
contrib Update dg-extract-results.* from gcc 2018-08-06 16:05:16 +02:00
cpu PR23430, Indices misspelled 2018-07-24 19:58:12 +09:30
elfcpp [GOLD] PowerPC .gnu.attributes support 2018-07-06 15:18:51 +09:30
etc Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
gas Correct the parsing of derferred register addressing in the PDP11 assembler. 2018-08-07 08:34:08 +01:00
gdb gdb: Check element of optimised out vla exists 2018-08-09 17:17:35 +01:00
gold Fix "may be used uninitialized" warning. 2018-08-07 22:40:33 -07:00
gprof Fix use of "command line X" in binutils doc 2018-07-02 11:18:24 +01:00
include arm - Add some comments about the versions of ARM ELF that define various e_flags values 2018-08-09 16:51:09 +01:00
intl Backport gettext fixes to get rid of warnings on macOS 2018-08-02 14:56:02 -04:00
ld x86: Properly merge GNU_PROPERTY_X86_ISA_1_USED 2018-08-08 06:09:28 -07:00
libdecnumber Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
libiberty Copy from GCC: Add linker_output as prefix for LTO temps (PR lto/86548). 2018-08-01 14:23:10 +01:00
opcodes [ARC] Update handling AUX-registers. 2018-08-06 16:41:32 +03:00
readline Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
sim Update my e-mail address, limit maintenance to MIPS I-IV ISAs 2018-07-21 00:14:01 +01:00
texinfo
zlib Regen doc/Makefile.in 2018-06-21 23:00:05 +09:30
.cvsignore
.gitattributes
.gitignore
ar-lib Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
ChangeLog Update the src-release script to include the new top level files test-driver and ar-lib. 2018-07-16 14:10:35 +01:00
compile
config-ml.in Update top level configure files by synchronizing them with gcc. 2018-01-10 15:29:21 +00:00
config.guess Update config.guess and config.sub 2018-07-05 13:35:19 +02:00
config.rpath
config.sub Update config.sub 2018-07-06 08:23:40 +02:00
configure Introduce @unless/@endunless and postbootstrap Makefile targets 2018-06-29 23:49:28 -03:00
configure.ac Introduce @unless/@endunless and postbootstrap Makefile targets 2018-06-29 23:49:28 -03:00
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
COPYING.LIBGLOSS
COPYING.NEWLIB
depcomp
djunpack.bat
install-sh
libtool.m4 Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
lt~obsolete.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS
Makefile.def This was already applied on the GCC side. 2018-06-19 00:05:40 +02:00
Makefile.in Introduce @unless/@endunless and postbootstrap Makefile targets 2018-06-29 23:49:28 -03:00
Makefile.tpl Introduce @unless/@endunless and postbootstrap Makefile targets 2018-06-29 23:49:28 -03:00
makefile.vms
missing
mkdep
mkinstalldirs
move-if-change
README
README-maintainer-mode Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
setup.com
src-release.sh Update the src-release script to include the new top level files test-driver and ar-lib. 2018-07-16 14:10:35 +01:00
symlink-tree
test-driver Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
ylwrap

		   README for GNU development tools

This directory contains various GNU compilers, assemblers, linkers, 
debuggers, etc., plus their support routines, definitions, and documentation.

If you are receiving this as part of a GDB release, see the file gdb/README.
If with a binutils release, see binutils/README;  if with a libg++ release,
see libg++/README, etc.  That'll give you info about this
package -- supported targets, how to use it, how to report bugs, etc.

It is now possible to automatically configure and build a variety of
tools with one command.  To build all of the tools contained herein,
run the ``configure'' script here, e.g.:

	./configure 
	make

To install them (by default in /usr/local/bin, /usr/local/lib, etc),
then do:
	make install

(If the configure script can't determine your type of computer, give it
the name as an argument, for instance ``./configure sun4''.  You can
use the script ``config.sub'' to test whether a name is recognized; if
it is, config.sub translates it to a triplet specifying CPU, vendor,
and OS.)

If you have more than one compiler on your system, it is often best to
explicitly set CC in the environment before running configure, and to
also set CC when running make.  For example (assuming sh/bash/ksh):

	CC=gcc ./configure
	make

A similar example using csh:

	setenv CC gcc
	./configure
	make

Much of the code and documentation enclosed is copyright by
the Free Software Foundation, Inc.  See the file COPYING or
COPYING.LIB in the various directories, for a description of the
GNU General Public License terms under which you can copy the files.

REPORTING BUGS: Again, see gdb/README, binutils/README, etc., for info
on where and how to report problems.