1. 17 Aug, 2016 7 commits
  2. 16 Aug, 2016 17 commits
    • re PR tree-optimization/72817 (wrong code at -O3 on x86_64-linux-gnu (in both… · af23e99c
      re PR tree-optimization/72817 (wrong code at -O3 on x86_64-linux-gnu (in both 32-bit and 64-bit modes))
      
      	PR tree-optimization/72817
      	* gcc.dg/tree-ssa/pr72817.c (a): Change type from char to signed char.
      
      From-SVN: r239514
      Jakub Jelinek committed
    • Update soft-fp from glibc (PR libgcc/77265). · feeb6268
      This patch updates soft-fp from glibc, bringing in the fix for PR
      libgcc/77265, XFmode extension to TFmode wrongly turning an infinity
      into a NaN.  A test for that bug is added.
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.
      
      	PR libgcc/77265
      gcc/testsuite:
      	* gcc.dg/torture/float128-extend-inf.c: New test.
      
      libgcc:
      	* soft-fp/adddf3.c: Update from glibc.
      	* soft-fp/addsf3.c: Likewise.
      	* soft-fp/addtf3.c: Likewise.
      	* soft-fp/divdf3.c: Likewise.
      	* soft-fp/divsf3.c: Likewise.
      	* soft-fp/divtf3.c: Likewise.
      	* soft-fp/double.h: Likewise.
      	* soft-fp/eqdf2.c: Likewise.
      	* soft-fp/eqsf2.c: Likewise.
      	* soft-fp/eqtf2.c: Likewise.
      	* soft-fp/extenddftf2.c: Likewise.
      	* soft-fp/extended.h: Likewise.
      	* soft-fp/extendsfdf2.c: Likewise.
      	* soft-fp/extendsftf2.c: Likewise.
      	* soft-fp/extendxftf2.c: Likewise.
      	* soft-fp/fixdfdi.c: Likewise.
      	* soft-fp/fixdfsi.c: Likewise.
      	* soft-fp/fixdfti.c: Likewise.
      	* soft-fp/fixsfdi.c: Likewise.
      	* soft-fp/fixsfsi.c: Likewise.
      	* soft-fp/fixsfti.c: Likewise.
      	* soft-fp/fixtfdi.c: Likewise.
      	* soft-fp/fixtfsi.c: Likewise.
      	* soft-fp/fixtfti.c: Likewise.
      	* soft-fp/fixunsdfdi.c: Likewise.
      	* soft-fp/fixunsdfsi.c: Likewise.
      	* soft-fp/fixunsdfti.c: Likewise.
      	* soft-fp/fixunssfdi.c: Likewise.
      	* soft-fp/fixunssfsi.c: Likewise.
      	* soft-fp/fixunssfti.c: Likewise.
      	* soft-fp/fixunstfdi.c: Likewise.
      	* soft-fp/fixunstfsi.c: Likewise.
      	* soft-fp/fixunstfti.c: Likewise.
      	* soft-fp/floatdidf.c: Likewise.
      	* soft-fp/floatdisf.c: Likewise.
      	* soft-fp/floatditf.c: Likewise.
      	* soft-fp/floatsidf.c: Likewise.
      	* soft-fp/floatsisf.c: Likewise.
      	* soft-fp/floatsitf.c: Likewise.
      	* soft-fp/floattidf.c: Likewise.
      	* soft-fp/floattisf.c: Likewise.
      	* soft-fp/floattitf.c: Likewise.
      	* soft-fp/floatundidf.c: Likewise.
      	* soft-fp/floatundisf.c: Likewise.
      	* soft-fp/floatunditf.c: Likewise.
      	* soft-fp/floatunsidf.c: Likewise.
      	* soft-fp/floatunsisf.c: Likewise.
      	* soft-fp/floatunsitf.c: Likewise.
      	* soft-fp/floatuntidf.c: Likewise.
      	* soft-fp/floatuntisf.c: Likewise.
      	* soft-fp/floatuntitf.c: Likewise.
      	* soft-fp/gedf2.c: Likewise.
      	* soft-fp/gesf2.c: Likewise.
      	* soft-fp/getf2.c: Likewise.
      	* soft-fp/ledf2.c: Likewise.
      	* soft-fp/lesf2.c: Likewise.
      	* soft-fp/letf2.c: Likewise.
      	* soft-fp/muldf3.c: Likewise.
      	* soft-fp/mulsf3.c: Likewise.
      	* soft-fp/multf3.c: Likewise.
      	* soft-fp/negdf2.c: Likewise.
      	* soft-fp/negsf2.c: Likewise.
      	* soft-fp/negtf2.c: Likewise.
      	* soft-fp/op-1.h: Likewise.
      	* soft-fp/op-2.h: Likewise.
      	* soft-fp/op-4.h: Likewise.
      	* soft-fp/op-8.h: Likewise.
      	* soft-fp/op-common.h: Likewise.
      	* soft-fp/quad.h: Likewise.
      	* soft-fp/single.h: Likewise.
      	* soft-fp/soft-fp.h: Likewise.
      	* soft-fp/subdf3.c: Likewise.
      	* soft-fp/subsf3.c: Likewise.
      	* soft-fp/subtf3.c: Likewise.
      	* soft-fp/truncdfsf2.c: Likewise.
      	* soft-fp/trunctfdf2.c: Likewise.
      	* soft-fp/trunctfsf2.c: Likewise.
      	* soft-fp/trunctfxf2.c: Likewise.
      	* soft-fp/unorddf2.c: Likewise.
      	* soft-fp/unordsf2.c: Likewise.
      	* soft-fp/unordtf2.c: Likewise.
      
      From-SVN: r239513
      Joseph Myers committed
    • i386.c (enum ix86_builtins): Reorder enumerators... · 4687d82a
      	* config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
      	that builtins not mentioned in bdesc_* arrays come first, then
      	the ones mentioned in bdesc_* arrays in the order they appear in
      	the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
      	IX86_BUILTIN__BDESC_*_LAST enumerator.
      	(bdesc_mpx): Fix up a comment typo.
      	(bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
      	__builtin_ia32_vpcomneu[bwdq] builtins.
      	(BDESC_VERIFY, BDESC_VERIFYS): Define.
      	(ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
      	enum ix86_builtins ordering.
      	(ix86_expand_builtin): Use enum ix86_builtins ordering assumption
      	for direct bdesc_* array member access instead of searching all the
      	arrays until an fcode match is found.
      
      From-SVN: r239512
      Jakub Jelinek committed
    • i386.md (*ashl<mode>3_mask): Rewrite define_insn pattern as define_insn_and_split. · 3c5db734
      	* config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
      	pattern as define_insn_and_split.  Split insn before reload to
      	ashl<mode>3_1.
      	(*<shift_insn><mode>3_mask): Ditto.  Split insn before reload to
      	<shift_insn><mode>3_1.
      	(*<rotate_insn><mode>3_mask): Ditto.  Split insn before reload to
      	<rotate_insn><mode>3_1.
      
      From-SVN: r239511
      Uros Bizjak committed
    • Fix caret locations in format_type_warning (PR c/72857) · 65e736c0
      gcc/c-family/ChangeLog:
      	PR c/72857
      	* c-common.c (substring_loc::get_range): Rename to...
      	(substring_loc::get_location): ...this, converting param from a
      	source_range * to a location_t *.  Call
      	get_source_location_for_substring rather than
      	get_source_range_for_substring, and pass in m_caret_idx.
      	* c-common.h (substring_loc::substring_loc): Add param "caret_idx".
      	(substring_loc::get_range): Replace with...
      	(substring_loc::get_location): ...this.
      	(substring_loc::set_caret_index): New method.
      	(substring_loc): Add field m_caret_idx.
      	* c-format.c (format_warning_va): Update for above changes.
      	Rename local "substring_loc" to "fmt_substring_loc" to avoid
      	clashing with type name.
      	(format_warning_at_char): Add caret_idx param to substring_loc ctor.
      	(check_argument_type): Likewise.
      	(format_type_warning): Rename param "fmt_loc" to "whole_fmt_loc"
      	Use a copy when emitting warnings, setting the caret index from TYPE.
      
      gcc/ChangeLog:
      	PR c/72857
      	* input.c (get_source_range_for_substring): Rename to...
      	(get_source_location_for_substring): ...this, adding param
      	"caret_idx", and converting output param from source_range * to
      	location_t *.
      	(get_source_range_for_char): New function.
      	(get_num_source_ranges_for_substring): Update comment to reflect
      	above renaming.
      	(assert_char_at_range): Update to use get_source_range_for_char
      	rather than get_source_range_for_substring.
      	(test_lexer_string_locations_concatenation_2): Likewise.
      	* substring-locations.h (get_source_range_for_substring): Rename
      	to...
      	(get_source_location_for_substring): ...this, and adding param
      	"caret_idx", and converting output param from source_range * to
      	location_t *.
      
      gcc/testsuite/ChangeLog:
      	PR c/72857
      	* gcc.dg/format/asm_fprintf-1.c: Restore column numbers
      	for embedded NUL.
      	* gcc.dg/format/c90-printf-1.c: Restore column numbers.
      	* gcc.dg/format/diagnostic-ranges.c (test_hex): Update expected
      	caret placement.
      	(test_oct): Likewise.
      	(test_multiple): Likewise.
      	(test_field_width_specifier): Likewise.
      	(test_field_width_specifier_2): New function.
      	(test_field_precision_specifier): New function.
      	(test_embedded_nul): Update expected caret placement.
      	(test_non_contiguous_strings): Update line number.
      	* gcc.dg/plugin/diagnostic-test-string-literals-1.c
      	(__emit_string_literal_range): Add "caret_idx" param.
      	(test_simple_string_literal): Add value for new param, updating
      	expected output..
      	(test_concatenated_string_literal): Likewise.
      	(test_multiline_string_literal): Likewise.
      	(test_hex): Likewise.
      	(test_oct): Likewise.
      	(test_multiple): Likewise.
      	(test_ucn4): Likewise.
      	(test_ucn8): Likewise.
      	(test_u8): Likewise.
      	(test_u): Likewise; update expected message, from "range" to
      	"location".
      	(test_U): Likewise.
      	(test_L): Likewise.
      	(test_macro): Add value for new param.
      	* gcc.dg/plugin/diagnostic-test-string-literals-2.c
      	(__emit_string_literal_range): Add "caret_idx" param.
      	(test_stringified_token_1): Add value for new param.  Update
      	expected message, from "range" to "location".
      	(test_stringized_token_2): Likewise, adding param to macro.
      	(test_stringified_token_3): Likewise.
      	* gcc.dg/plugin/diagnostic_plugin_test_string_literals.c
      	(emit_warning): Convert param from source_range to location_t.
      	(test_string_literals): Add caret_idx param, and use it when
      	constructing a substring_loc.  Update error message, from
      	"range" to "location".
      
      From-SVN: r239510
      David Malcolm committed
    • Move class temp_source_file from input.c to selftest.c/h · eb3a5bcc
      gcc/ChangeLog:
      	* input.c (class selftest::temp_source_file): Move to
      	selftest.h.
      	(selftest::temp_source_file::temp_source_file): Move to
      	selftest.c.
      	(selftest::temp_source_file::~temp_source_file): Likewise.
      	* selftest.c (selftest::temp_source_file::temp_source_file): Move
      	here from input.c.
      	(selftest::temp_source_file::~temp_source_file): Likewise.
      	* selftest.h (class selftest::temp_source_file): Move here from
      	input.c
      
      From-SVN: r239509
      David Malcolm committed
    • re PR target/71910 (ICE on valid OpenMP code) · 7841800f
      	PR target/71910
      	* tree-cfg.c (execute_fixup_cfg): Add node variable, use it.  Before inlining,
      	add cgraph edge for the added __builtin_unreachable call.
      
      	* g++.dg/gomp/pr71910.C: New test.
      
      From-SVN: r239508
      Jakub Jelinek committed
    • re PR middle-end/67485 (expmed.c sanitizer detects overflow) · 1b13411a
      	PR middle-end/67485
      	* expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
      	only cast it to SHWI for the final comparison.
      
      	* gcc.c-torture/compile/pr67485.c: New test.
      
      From-SVN: r239507
      Jakub Jelinek committed
    • re PR target/72867 (SSE/AVX/AVX512: incorrect optimization of VMINPS/VMAXPS at compile time) · 4a7f57d5
      	PR target/72867
      	* gcc.target/i386/pr72867.c: Add -msse to dg-options.
      
      From-SVN: r239505
      Jakub Jelinek committed
    • gcov: add new option (--hash-filenames) (PR · 75cc66f2
      	PR gcov-profile/36412
      	* doc/gcov.texi: Document --hash-filenames(-x).
      	* gcov.c (print_usage): Add the option.
      	(process_args): Process the option, sort options alphabetically.
      	(md5sum_to_hex): New function.
      	(make_gcov_file_name): Do the md5sum and append it to a
      	filename.
      
      From-SVN: r239503
      Martin Liska committed
    • re PR tree-optimization/69848 (poor vectorization of a loop from SPEC2006 464.h264ref) · 3c556bc4
      	PR tree-optimization/69848
      	* config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
      	and swtich operands to avoid additional NOT instruction.
      	(vcond<v_cmp_mixed><mode>): Ditto.
      	(vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
      
      	gcc/testsuite
      	* gcc.target/aarch64/simd/vcond-ne-bit.c: New test.
      
      From-SVN: r239502
      Bin Cheng committed
    • * doc/install.texi (*-*-solaris2*): Adjust latest change. · edd1a1cb
      From-SVN: r239499
      Eric Botcazou committed
    • Fix val-prof-7.c on --target_board 'unix/-m32' · beab2da6
      	* gcc.dg/tree-prof/val-prof-7.c (int main): Change size
      	of memory operations so that it can be handled by core2
      	in 32-bit mode.
      
      From-SVN: r239498
      Martin Liska committed
    • PR 72847 Prevent double-free in std::vector<bool> · 32917686
      	PR libstdc++/72847
      	* include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
      	pointers to start and end of storage.
      	* testsuite/23_containers/vector/bool/72847.cc: New test.
      	* include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
      	_M_finish after deallocating.
      	(vector<bool>::_M_fill_insert): Likewise.
      	(vector<bool>::_M_insert_range): Likewise.
      	(vector<bool>::_M_insert_aux): Likewise.
      
      From-SVN: r239497
      Jonathan Wakely committed
    • re PR tree-optimization/76783 (wrong code with conditional vector assignment @ -Og) · f4eec0a3
      2016-08-16  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/76783
      	* tree-ssa-propagate.c (ssa_prop_init): Use RPO order.  Clear
      	BB visited flags at start.
      
      	* gcc.dg/pr76783.c: New testcase.
      	* gcc.dg/tree-ssa/pr69270-2.c: Adjust.
      
      From-SVN: r239496
      Richard Biener committed
    • re PR tree-optimization/72817 (wrong code at -O3 on x86_64-linux-gnu (in both… · 8f21990a
      re PR tree-optimization/72817 (wrong code at -O3 on x86_64-linux-gnu (in both 32-bit and 64-bit modes))
      
      	PR tree-optimization/72817
      	PR tree-optimization/73450
      	* tree-ssa-loop-niter.c (number_of_iterations_ne): Check
      	multiple_of_p for adjusted IV.base.
      
      	gcc/testsuite
      	* gcc.dg/tree-ssa/pr72817.c: New test.
      	* gcc.dg/tree-ssa/pr73450.c: New test.
      
      From-SVN: r239494
      Bin Cheng committed
    • Daily bump. · f6ba953d
      From-SVN: r239492
      GCC Administrator committed
  3. 15 Aug, 2016 16 commits
    • lang.opt, [...]: New flag -finit-derived. · 7fc61626
      2016-08-15  Fritz Reese  <fritzoreese@gmail.com>
      
      	gcc/fortran/
      	* lang.opt, invoke.texi: New flag -finit-derived.
      	* gfortran.h (gfc_build_default_init_expr, gfc_apply_init,
      	gfc_generate_initializer): New prototypes.
      	* expr.c (gfc_build_default_init_expr, gfc_apply_init,
      	component_initializer, gfc_generate_initializer): New functions.
      	* expr.c (gfc_default_initializer): Wrap gfc_generate_initializer.
      	* decl.c (build_struct): Move common code to gfc_apply_init.
      	* resolve.c (can_generate_init): New function.
      	* resolve.c (build_default_init_expr): Wrap gfc_build_default_init_expr.
      	* resolve.c (apply_default_init, resolve_fl_variable_derived): Use
      	gfc_generate_initializer.
      	* trans-decl.c (gfc_generate_function_code): Use
      	gfc_generate_initializer.
      
      	gcc/testsuite/gfortran.dg/
      	* init_flag_13.f90: New testcase.
      	* init_flag_14.f90: Ditto.
      	* init_flag_15.f03: Ditto.
      	* dec_init_1.f90: Ditto.
      	* dec_init_2.f90: Ditto.
      
      From-SVN: r239489
      Fritz Reese committed
    • frontend-passes.c (create_var): Set ts.deferred for deferred-length character variables. · 874be74a
      2016-08-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	* frontend-passes.c (create_var):  Set ts.deferred for
      	deferred-length character variables.
      	* dump-parse-tree.c (show_typespec):  Also dump
      	is_c_interop, is_iso_c and deferred flags.
      
      From-SVN: r239488
      Thomas Koenig committed
    • re PR target/72867 (SSE/AVX/AVX512: incorrect optimization of VMINPS/VMAXPS at compile time) · 432baa02
      	PR target/72867
      	* config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
      	Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
      	for !flag_finite_math_only or flag_signed_zeros.
      	(*<code><mode>3<mask_name><round_saeonly_name>): Rename from
      	*<code><mode>3_finite<mask_name><round_saeonly_name>.  Do not
      	depend on flag_finite_math_only.
      	(ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
      	New insn pattern.
      	(*<code><mode>3<mask_name><round_saeonly_name>): Remove.
      	(*ieee_smin<mode>3): Ditto.
      	(*ieee_smax<mode>3): Ditto.
      	* config/i386/mmx.md (mmx_<code>v2sf3): Emit
      	mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
      	flag_signed_zeros.
      	(*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite.  Do not
      	depend on flag_finite_math_only.
      	(mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
      	(*mmx_<code>v2sf3): Remove.
      	* config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
      	* config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
      	flag_signed_zeros instead of !flag_unsafe_math_optimizations.
      
      testsuite/ChangeLog:
      
      	PR target/72867
      	* gcc.target/i386/pr72867.c: New test.
      
      From-SVN: r239487
      Uros Bizjak committed
    • cmd/go: ignore errors from go/build for standard packages · 87155d4f
          
          The go/build package does not know that gccgo's standard packages don't
          have source, and will report an error saying that it can not find them.
          Work around that in the cmd/go sources, since the go/build sources don't
          currently have a list of standard packages.
          
          This should get a real fix in the master sources, somehow.
          
          Fixes golang/go#16701.
          
          Reviewed-on: https://go-review.googlesource.com/27052
      
      From-SVN: r239486
      Ian Lance Taylor committed
    • lra: A multiple_sets is not a simple_move_p (PR73650) · 2008be40
      In the PR we have a PARALLEL of a move and a compare (a "mr." instruction).
      The compare is dead, so single_set on it returns just the move.  Then,
      simple_move_p returns true; but the instruction does need reloads in this
      case.  This patch solves this by making simple_move_p return false for
      every multiple_sets instruction.
      
      
      	PR rtl-optimization/73650
      	* lra-constraints.c (simple_move_p): If the insn is multiple_sets
      	it is not a simple move.
      
      From-SVN: r239483
      Segher Boessenkool committed
    • Implement LWG 2744 and LWG 2754. · 5c578ae4
      	* include/std/any (any(ValueType&&)): Constrain with __is_in_place_type.
      	(any(in_place_type_t<_ValueType>, _Args&&...)): Use _Decay.
      	(any(in_place_type_t<_ValueType>, initializer_list<_Up>, _Args&&...)):
      	Likewise.
      	(emplace(_Args&&...)): Likewise.
      	(emplace(initializer_list<_Up>, _Args&&...)): Likewise.
      	* include/std/utility: (__is_in_place_type_impl): New.
      	(__is_in_place_type): Likewise.
      	* testsuite/20_util/any/assign/emplace.cc: Add tests for decaying
      	emplace.
      	* testsuite/20_util/any/cons/in_place.cc: Add tests for decaying
      	in_place constructor.
      	* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
      	* testsuite/20_util/any/requirements.cc: Add a test for
      	in_place-constructing a non-default-constructible type.
      
      From-SVN: r239482
      Ville Voutilainen committed
    • c-ada-spec.c (dump_number): New function. · 7e1dde14
      	* c-ada-spec.c (dump_number): New function.
      	(handle_escape_character): Likewise.
      	(print_ada_macros): Add handling of constant integers and strings.
      
      Co-Authored-By: Arnaud Charlet <charlet@adacore.com>
      
      From-SVN: r239481
      Eric Botcazou committed
    • Add a feature macro for C++17 make_from_tuple. · 24299f65
      	* include/std/tuple (__cpp_lib_make_from_tuple): New.
      	* testsuite/20_util/tuple/make_from_tuple/1.cc: Adjust.
      
      From-SVN: r239480
      Ville Voutilainen committed
    • ops.cc: Always include ostream and ext/stdio_filebuf.h. · 0657379e
      	* src/filesystem/ops.cc: Always include ostream and
      	ext/stdio_filebuf.h.
      	(do_copy_file): Check if _GLIBCXX_USE_FCHMODAT is defined.
      	[_GLIBCXX_USE_SENDFILE]: Fallback to read/write operations in case
      	sendfile fails with ENOSYS or EINVAL.
      
      From-SVN: r239479
      Uros Bizjak committed
    • gcov-tool: Do not segfault in merge operation (PR · 2e6fc1ac
      	PR gcov-profile/67097
      	* libgcov-util.c (gcov_profile_merge): Skip missing files.
      
      From-SVN: r239478
      Gilles Gouaillardet committed
    • Fix invalid memory access in gcc.c (driver/72765) · 38359141
      	PR driver/72765
      	* gcc.c (do_spec_1): Call save_string with the right size.
      	(save_string): Do an assert about string we copy.
      
      From-SVN: r239475
      Martin Liska committed
    • ree.c (rest_of_handle_ree): Remove redundant timevar push/pop. · 397d8acd
      2016-08-15  Richard Biener  <rguenther@suse.de>
      
      	* ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
      	* config/i386/i386.c (pass_data_insert_vzeroupper): Account to
      	TV_MACH_DEP.
      	(pass_data_stv): Likewise.
      
      From-SVN: r239474
      Richard Biener committed
    • re PR tree-optimization/73434 (Wrong code with casting, branches and aliasing) · e4969090
      2016-08-15  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/73434
      	* tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
      	TBAA info on the base when forwarding a non-invariant address.
      
      	* gcc.dg/torture/pr73434.c: New testcase.
      
      From-SVN: r239471
      Richard Biener committed
    • dwarf2.def (DW_AT_string_length_bit_size, [...]): New attributes. · 980bd537
      	* dwarf2.def (DW_AT_string_length_bit_size,
      	DW_AT_string_length_byte_size): New attributes.
      
      	* dwarf2out.c (struct checksum_attributes): Add
      	at_string_length_bit_size and at_string_length_byte_size fields.
      	(collect_checksum_attributes): Handle DW_AT_string_length_bit_size
      	and DW_AT_string_length_byte_size.
      	(die_checksum_ordered): Handle at_string_length_bit_size and
      	at_string_length_byte_size.
      	(gen_array_type_die): For dwarf_version >= 5 emit
      	DW_AT_string_length_byte_size instead of DW_AT_byte_size.
      	(adjust_string_types): For dwarf_version >= 5 remove
      	DW_AT_string_length_byte_size instead of DW_AT_byte_size.
      	(resolve_addr): Likewise.
      
      From-SVN: r239470
      Jakub Jelinek committed
    • re PR debug/71906 (Fortran allocatable strings debug info type size regression) · 8ae261c0
      	PR debug/71906
      	* dwarf2out.c (string_types): New variable.
      	(gen_array_type_die): Change early_dwarf handling of
      	DW_AT_string_length, create DW_OP_call4 referencing the
      	length var temporarily.  Handle parameters that are pointers
      	to string length.
      	(adjust_string_types): New function.
      	(gen_subprogram_die): Temporarily set string_types to local var,
      	call adjust_string_types if needed.
      	(non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
      	New functions.
      	(resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
      
      	* trans-decl.c (gfc_get_symbol_decl): Call gfc_finish_var_decl
      	for decl's character length before gfc_finish_var_decl on the
      	decl itself.
      
      From-SVN: r239469
      Jakub Jelinek committed
    • Enhance mark_spam.py script · 28619cd7
      	* mark_spam.py: Add error handling and reset
      	another properties of attachments and bugs.
      
      From-SVN: r239467
      Martin Liska committed