gcc/include
Jakub Jelinek 680c60feb4 re PR debug/77589 (fortran: Missing DW_AT_byte_stride for an array record field selection)
PR debug/77589
include/
	* dwarf2.def (DW_OP_GNU_variable_value): New opcode.
gcc/
	* dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
	bitfield.
	(size_of_loc_descr): Handle DW_OP_GNU_variable_value.
	(output_loc_operands): Handle DW_OP_call_ref and
	DW_OP_GNU_variable_value.
	(struct variable_value_struct): New type.
	(struct variable_value_hasher): Likewise.
	(variable_value_hash): New variable.
	(string_types): Remove.
	(copy_loc_descr): New function.
	(add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
	(prepend_loc_descr_to_each): New function.
	(add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
	instead of add_loc_descr_to_each if the first argument is single
	location list and the second has multiple.
	(resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
	(loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
	when looking for variable value which doesn't have other location info.
	(loc_list_from_tree): Formatting fix.
	(gen_array_type_die): Simplify DW_AT_string_length handling.
	(adjust_string_types): Remove.
	(gen_subprogram_die): Don't call adjust_string_types nor test/set
	string_types.  Call resolve_variable_values.
	(prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
	(resolve_addr_in_expr): Likewise.  Add A argument.
	(copy_deref_exprloc): Remove deref argument.  Adjust for the
	original expression being DW_OP_GNU_variable_value with optionally
	DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
	optionally after it.
	(optimize_string_length): Rework for DW_OP_GNU_variable_value.
	(resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
	callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
	(variable_value_hasher::hash, variable_value_hasher::equal): New
	methods.
	(resolve_variable_value_in_expr, resolve_variable_value,
	resolve_variable_values, note_variable_value_in_expr,
	note_variable_value): New functions.
	(dwarf2out_early_finish): Call note_variable_value on all toplevel
	DIEs.

From-SVN: r245733
2017-02-25 09:18:24 +01:00
..
gdb Update copyright years. 2017-01-04 12:30:51 +01:00
COPYING Update the address and phone number of the FSF organization. 2005-05-10 15:22:21 +00:00
COPYING3 COPYING_v3: New file. 2007-07-17 08:37:53 +00:00
ChangeLog re PR debug/77589 (fortran: Missing DW_AT_byte_stride for an array record field selection) 2017-02-25 09:18:24 +01:00
ChangeLog-9103 Convert ChangeLog files to UTF-8. 2008-09-05 13:07:45 +02:00
ChangeLog.jit Merger of dmalcolm/jit branch from git 2014-11-11 21:55:52 +00:00
ansidecl.h Update copyright years. 2017-01-04 12:30:51 +01:00
demangle.h Update copyright years. 2017-01-04 12:30:51 +01:00
dwarf2.def re PR debug/77589 (fortran: Missing DW_AT_byte_stride for an array record field selection) 2017-02-25 09:18:24 +01:00
dwarf2.h Update copyright years. 2017-01-04 12:30:51 +01:00
dyn-string.h Update copyright years. 2017-01-04 12:30:51 +01:00
environ.h Update copyright years. 2017-01-04 12:30:51 +01:00
fibheap.h Update copyright years. 2017-01-04 12:30:51 +01:00
filenames.h Update copyright years. 2017-01-04 12:30:51 +01:00
floatformat.h Update copyright years. 2017-01-04 12:30:51 +01:00
fnmatch.h Update copyright years. 2017-01-04 12:30:51 +01:00
gcc-c-fe.def Introduce C++ support in libcc1 2017-01-31 01:02:03 +00:00
gcc-c-interface.h Introduce C++ support in libcc1 2017-01-31 01:02:03 +00:00
gcc-cp-fe.def Introduce C++ support in libcc1 2017-01-31 01:02:03 +00:00
gcc-cp-interface.h Introduce C++ support in libcc1 2017-01-31 01:02:03 +00:00
gcc-interface.h Introduce C++ support in libcc1 2017-01-31 01:02:03 +00:00
getopt.h Update copyright years. 2017-01-04 12:30:51 +01:00
gomp-constants.h Update copyright years. 2017-01-04 12:30:51 +01:00
hashtab.h Update copyright years. 2017-01-04 12:30:51 +01:00
hsa.h Brig front-end 2017-01-24 13:45:56 +01:00
leb128.h Update copyright years. 2017-01-04 12:30:51 +01:00
libiberty.h Update copyright years. 2017-01-04 12:30:51 +01:00
longlong.h Update copyright years. 2017-01-04 12:30:51 +01:00
lto-symtab.h Update copyright years. 2017-01-04 12:30:51 +01:00
md5.h Update copyright years. 2017-01-04 12:30:51 +01:00
objalloc.h Update copyright years. 2017-01-04 12:30:51 +01:00
obstack.h Update copyright years. 2017-01-04 12:30:51 +01:00
partition.h Update copyright years. 2017-01-04 12:30:51 +01:00
plugin-api.h Update copyright years. 2017-01-04 12:30:51 +01:00
safe-ctype.h Update copyright years. 2017-01-04 12:30:51 +01:00
sha1.h Update copyright years. 2017-01-04 12:30:51 +01:00
simple-object.h Update copyright years. 2017-01-04 12:30:51 +01:00
sort.h Update copyright years. 2017-01-04 12:30:51 +01:00
splay-tree.h Update copyright years. 2017-01-04 12:30:51 +01:00
symcat.h Update copyright years. 2017-01-04 12:30:51 +01:00
timeval-utils.h Update copyright years. 2017-01-04 12:30:51 +01:00
vtv-change-permission.h Update copyright years. 2017-01-04 12:30:51 +01:00
xregex.h system.h [...]: Wrap C function declarations in extern "C". 2011-07-25 14:24:59 +00:00
xregex2.h Update copyright years. 2017-01-04 12:30:51 +01:00
xtensa-config.h Update copyright years. 2017-01-04 12:30:51 +01:00