Commit Graph

163980 Commits

Author SHA1 Message Date
Richard Biener
f6919d2011 re PR debug/83941 (Debug info generated with -flto contains useless forwarders)
2018-09-25  Richard Biener  <rguenther@suse.de>

	PR debug/83941
	* dwarf2out.c (struct sym_off_pair): New.
	(external_die_map): New global.
	(lookup_decl_die): When in LTO create DIEs lazily from the
	external_die_map.
	(lookup_block_die): New function, create DIEs lazily in LTO.
	(equate_block_to_die): New function.
	(dwarf2out_die_ref_for_decl): During WPA get the association
	from the external DIE map.
	(dwarf2out_register_external_die): Record mapping into the
	external DIE map.
	(maybe_create_die_with_external_ref): New function split out from
	DIE generation part of old dwarf2out_register_external_die.
	(add_abstract_origin_attribute): Do not return the DIE.  When
	in LTO reference externals directly.
	(dwarf2out_abstract_function): When in LTO ignore calls for
	decls with external DIEs (already present abstract instances).
	(gen_call_site_die): Adjust.
	(add_high_low_attributes): Likewise.
	(gen_lexical_block_die): Likewise.
	(gen_inlined_subroutine_die): Likewie.
	(gen_block_die): Likewise.
	(dwarf2out_inline_entry): Likewise.
	(dwarf2out_early_finish): In LTRANS phase create DW_TAG_imported_unit
	DIEs.

From-SVN: r264564
2018-09-25 07:30:56 +00:00
Martin Liska
59d2702625 Fix scaling of a sreal number.
2018-09-25  Martin Liska  <mliska@suse.cz>

	* ipa-fnsummary.c (estimate_node_size_and_time): Scale by two
	integers and not by a float value.

From-SVN: r264563
2018-09-25 07:14:38 +00:00
Martin Liska
5433e40109 Fix small coding style issues (PR fortran/87394).
2018-09-25  Martin Liska  <mliska@suse.cz>

	PR fortran/87394
	* dbgcnt.c (dbg_cnt_process_single_pair): Return false
	instead of NULL.
	* dumpfile.c (dump_enable_all): Remove extra parenthesis.
	* gcov-tool.c: Declare the function with ATTRIBUTE_NORETURN.
	* godump.c (go_format_type): Remove extra parenthesis.
2018-09-25  Martin Liska  <mliska@suse.cz>

	PR fortran/87394
	* decl.c (add_hidden_procptr_result): Simplify condition
	as we are in branch witch 'case1 || case2'.

From-SVN: r264562
2018-09-25 07:13:59 +00:00
Martin Liska
72744f65a2 Remove unused functions and fields.
2018-09-25  Martin Liska  <mliska@suse.cz>

	* alias.c (set_dest_equal_p): Remove unused function.
	* config/i386/i386.c (def_builtin_pure2): Likewise.
	* diagnostic-show-locus.c (class layout): Remove
	unused field.
	(layout::layout): Likewise here.
	* dump-context.h (class temp_dump_context): Likewise.
	* dwarf2out.c (add_AT_fde_ref): Remove unused function.
	(add_AT_loclistsptr): Likewise.
	(add_AT_offset): Likewise.
	(get_AT_hi_pc): Likewise.
	(is_comdat_die): Likewise.
	(type_is_enum): Likewise.
	(ceiling): Likewise.
	(add_AT_vms_delta): Likewise.
	(is_class_die): Likewise.
	* edit-context.c (class line_event): Remove unused field.
	* graphite-sese-to-poly.c (tree_int_to_gmp): Remove
	unused function.
	* ipa-cp.c (ipa_get_vr_lat): Likewise.
	* lra-constraints.c (ok_for_index_p_nonstrict): Likewise.
	(ok_for_base_p_nonstrict): Likewise.
	* tree-chrec.c (is_not_constant_evolution): Likewise.
	(chrec_fold_poly_cst): Likewise.
	* tree-if-conv.c (has_pred_critical_p): Likewise.
	* tree-ssa-coalesce.c (print_exprs): Likewise.
	* tree-ssa-pre.c (bitmap_set_contains_expr): Likewise.
	* tree-ssa-uninit.c (is_and_or_or_p): Likewise.
	* tree-vrp.c (value_ranges_intersect_p): Likewise.
	(value_range_nonnegative_p): Likewise.
2018-09-25  Martin Liska  <mliska@suse.cz>

	* name-lookup.c (namespace_scope_ht_size): Remove
	unused function.
	* parser.c (cp_lexer_next_token_is_not_keyword): Likewise.
2018-09-25  Martin Liska  <mliska@suse.cz>

	* trans.c (remove_suffix): Remove
	unused function.
2018-09-25  Martin Liska  <mliska@suse.cz>

	* gofrontend/escape.cc (Gogo::analyze_escape): Remove
	usage of a parameter.
	(Gogo::assign_connectivity): Likewise.
	(class Escape_analysis_tag): Likewise.
	(Gogo::tag_function): Likewise.
	* gofrontend/expressions.cc (Call_expression::do_type): Likewise.
	* gofrontend/gogo.h (class Gogo): Likewise.
	* gofrontend/types.cc (class Call_multiple_result_type): Likewise.
	(Type::make_call_multiple_result_type): Likewise.
	* gofrontend/types.h (class Type): Likewise.
	* gofrontend/wb.cc (class Check_escape): Likewise.
	(Gogo::add_write_barriers): Likewise.

From-SVN: r264561
2018-09-25 07:13:40 +00:00
Martin Liska
a0464aa0c4 Add filter-rtags-warnings.py script.
2018-09-25  Martin Liska  <mliska@suse.cz>

	* filter-rtags-warnings.py: New file.

From-SVN: r264560
2018-09-25 07:12:52 +00:00
Martin Liska
87677ac7fb Remove Pascal-related entries in code and comments.
2018-09-25  Martin Liska  <mliska@suse.cz>

	* config/powerpcspe/powerpcspe.c (rs6000_output_function_epilogue):
	Do not handle "GNU Pascal".
	* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
	Likewise.
	* config/sparc/sparc.c (sparc_pass_by_reference): Remove Pascal
	from documentation. Likewise.
	* dbxout.c (dbxout_range_type): Likewise.
	* doc/cpp.texi: Likewise.
	* doc/extend.texi: Likewise.
	* doc/frontends.texi: Likewise.
	* doc/invoke.texi: Remove Pascal entry.
	* tree.def (CLEANUP_POINT_EXPR): Likewise.
	* doc/rtl.texi (MODE_FUNCTION): Remove not used entry.
2018-09-25  Martin Liska  <mliska@suse.cz>

	* c-common.c (c_common_truthvalue_conversion):
	Remove Pascal from documentation.

From-SVN: r264559
2018-09-25 07:11:05 +00:00
Martin Liska
4cac9d00e9 Document all param values and remove defaults (PR middle-end/86078).
2018-09-25  Martin Liska  <mliska@suse.cz>

	PR middle-end/86078
	* doc/invoke.texi: Document all parameters and remove default
	of the parameters.
2018-09-25  Martin Liska  <mliska@suse.cz>

	PR middle-end/86078
	* check-params-in-docs.py: New file.

From-SVN: r264558
2018-09-25 07:08:44 +00:00
Ilya Leoshkevich
d5c4f75ddb Fix EQ_ATTR_ALT size calculation (PR bootstrap/87417)
"r264537: Change EQ_ATTR_ALT to support up to 64 alternatives" changed
the format of EQ_ATTR_ALT from ii to ww.  This broke the bootstrap on
32-bit systems, because the formula for rtx_code_size assumed that only
certain codes contain HOST_WIDE_INTs.  This did not surface on 64-bit
systems, because rtunion is 8 bytes anyway, but on 32-bit systems it's
only 4 bytes.  This resulted in out-of-bounds writes and memory
corruptions in genattrtab.

gcc/ChangeLog:

2018-09-25  Ilya Leoshkevich  <iii@linux.ibm.com>

	PR bootstrap/87417
	* rtl.c (rtx_code_size): Take into account that EQ_ATTR_ALT
	contains HOST_WIDE_INTs when computing its size.

From-SVN: r264556
2018-09-25 06:38:20 +00:00
Jim Wilson
75902396e6 RISC-V: Fix problems with ilp32e ABI support.
gcc/
	PR target/87391
	* config/riscv/riscv.h (STACK_BOUNDARY): Test riscv_abi == ABI_ILP32E
	not TARGET_RVE.
	(ABI_STACK_BOUNDARY, MAX_ARGS_IN_REGISTERS): Likewise.

From-SVN: r264555
2018-09-24 18:27:06 -07:00
GCC Administrator
0276f2c271 Daily bump.
From-SVN: r264552
2018-09-25 00:16:39 +00:00
Andrew Pinski
f8a2720685 aarch64.c (aarch_macro_fusion_pair_p): Don't access prev before checking it for NULLness in the...
2018-09-24  Andrew Pinski  <apinski@marvell.com>

        *  config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Don't
        access prev before checking it for NULLness in the
        AARCH64_FUSE_CMP_BRANCH case.

From-SVN: r264548
2018-09-24 17:12:18 -07:00
Gerald Pfeifer
44eb8fa73b codecvt.xml: Move link to "UTF-8 and Unicode FAQ" to https.
* doc/xml/manual/codecvt.xml: Move link to "UTF-8 and Unicode FAQ"
	to https.

From-SVN: r264547
2018-09-24 22:01:49 +00:00
Ian Lance Taylor
dd931d9b48 libgo: update to Go 1.11
Reviewed-on: https://go-review.googlesource.com/136435

gotools/:
	* Makefile.am (mostlyclean-local): Run chmod on check-go-dir to
	make sure it is writable.
	(check-go-tools): Likewise.
	(check-vet): Copy internal/objabi to check-vet-dir.
	* Makefile.in: Rebuild.

From-SVN: r264546
2018-09-24 21:46:21 +00:00
Marek Polacek
779d8a5ad0 cp-tree.h (build_noexcept_spec, [...]): Adjust declarations.
* cp-tree.h (build_noexcept_spec, add_exception_specifier): Adjust
	declarations.
	* except.c (build_noexcept_spec): Change the type of the complain
	parameter to tsubst_flags_t.
	* typeck2.c (add_exception_specifier): Likewise.

From-SVN: r264543
2018-09-24 19:26:04 +00:00
Paolo Carlini
06ff274feb re PR c++/85070 (ICE on C++ code: in lazily_declare_fn, at cp/method.c:2409)
/cp
2018-09-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85070
	* method.c (lazily_declare_fn): During error-recovery add_method
	may return false.

/testsuite
2018-09-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85070
	* g++.dg/cpp0x/pr85070.C: New.

From-SVN: r264541
2018-09-24 17:42:45 +00:00
H.J. Lu
708c728d4f i386: Insert ENDBR before the profiling counter call
ENDBR must be the first instruction of a function.  This patch queues
ENDBR if we need to put the profiling counter call before the prologue
and generate ENDBR before the profiling counter call.

gcc/

	PR target/82699
	* config/i386/i386.c (rest_of_insert_endbranch): Set
	endbr_queued_at_entrance to true and don't insert ENDBR if
	x86_function_profiler will be called.
	(x86_function_profiler): Insert ENDBR if endbr_queued_at_entrance
	is true.
	* config/i386/i386.h (machine_function): Add
	endbr_queued_at_entrance.

gcc/testsuite/

	PR target/82699
	* gcc.target/i386/pr82699-1.c: New file.
	* gcc.target/i386/pr82699-2.c: Likewise.
	* gcc.target/i386/pr82699-3.c: Likewise.
	* gcc.target/i386/pr82699-4.c: Likewise.
	* gcc.target/i386/pr82699-5.c: Likewise.
	* gcc.target/i386/pr82699-6.c: Likewise.

From-SVN: r264540
2018-09-24 10:20:58 -07:00
Thomas Koenig
c109362313 re PR fortran/87397 (Clobbering intent(out) variables caused regression in OpenCoarrays testsuite)
2018-09-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/87397
	* gfc_conv_procedure_call: Do not add clobber on INTENT(OUT)
	for variables in an associate statement.

2018-09-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/87401
	* gfortran.dg/intent_out_12.f90: New test.

From-SVN: r264539
2018-09-24 17:12:34 +00:00
Will Schmidt
4afdfa3795 re PR target/86952 (Avoid jump table for switch statement with -mindirect-branch=thunk)
[testsuite]

2018-09-24  Will Schmidt  <will_schmidt@vnet.ibm.com>

	PR testsuite/86952
	* gcc.target/powerpc/p8-vec-xl-xst-v2.c: Add and
	update expected codegen

From-SVN: r264538
2018-09-24 15:47:22 +00:00
Ilya Leoshkevich
882c3f17b6 Change EQ_ATTR_ALT to support up to 64 alternatives
On S/390 there is a need to support more than 32 instruction
alternatives per define_insn.  Currently this is not explicitly
prohibited or unsupported: MAX_RECOG_ALTERNATIVES is equal 35, and,
futhermore, the related code uses uint64_t for bitmaps in most places.

However, genattrtab contains the logic to convert (eq_attr "attribute"
"value") RTXs to (eq_attr_alt bitmap) RTXs, where bitmap contains
alternatives, whose "attribute" has the corresponding "value".
Unfortunately, bitmap is only 32 bits.

When adding the 33rd alternative, this led to (eq_attr "type" "larl")
becoming (eq_attr_alt -1050625 1), where -1050625 == 0xffeff7ff.  The
cleared bits 12, 21 and 32 correspond to two existing and one newly
added insn of type "larl".  compute_alternative_mask sign extended this
to 0xffffffffffeff7ff, which contained non-existent alternatives, and
this made simplify_test_exp fail with "invalid alternative specified".

I'm not sure why it didn't fail the same way before, since the top bit,
which led to sign extension, should have been set even with 32
alternatives.  Maybe simplify_test_exp was not called for "type"
attribute for some reason?

This patch widens EQ_ATTR_ALT bitmap to 64 bits, making it possible to
gracefully handle up to 64 alternatives.  It eliminates the problem with
the 33rd alternative on S/390.

gcc/ChangeLog:

2018-09-24  Ilya Leoshkevich  <iii@linux.ibm.com>

	* genattrtab.c (mk_attr_alt): Use alternative_mask.
	(attr_rtx_1): Adjust caching to match the new EQ_ATTR_ALT field
        types.
	(check_attr_test): Use alternative_mask.
	(get_attr_value): Likewise.
	(compute_alternative_mask): Use alternative_mask and XWINT.
	(make_alternative_compare): Use alternative_mask.
	(attr_alt_subset_p): Use XWINT.
	(attr_alt_subset_of_compl_p): Likewise.
	(attr_alt_intersection): Use alternative_mask and XWINT.
	(attr_alt_union): Likewise.
	(attr_alt_complement): Use HOST_WIDE_INT and XWINT.
        (mk_attr_alt): Use alternative_mask and HOST_WIDE_INT.
	(simplify_test_exp): Use alternative_mask and XWINT.
	(write_test_expr): Use alternative_mask and XWINT, adjust bit
        number calculation to support 64 bits.  Generate code that
        checks 64-bit masks.
	(main): Use alternative_mask.
	* rtl.def (EQ_ATTR_ALT): Change field types from ii to ww.

From-SVN: r264537
2018-09-24 15:01:57 +00:00
Cesar Philippidis
9a51c0cc2a [OpenACC] update fortran nested parallelism error messages
gcc/fortran/
	* openmp.c (resolve_oacc_loop_blocks):

	gcc/testsuite/
	* gfortran.dg/goacc/nested-parallelism.f90: New test.

From-SVN: r264536
2018-09-24 07:51:25 -07:00
Ilya Leoshkevich
f80316c5d7 S/390: Fix conditional returns on z196+
S/390 epilogue ends with (parallel [(return) (use %r14)]) instead of
the more usual (return) or (simple_return).  This sequence is not
recognized by the conditional return logic in try_optimize_cfg ().

This was introduced for processors older than z196, where it is
sometimes profitable to use call-clobbered register for returning
instead of %r14.  On newer processors we always return via %r14,
for which the fact that it's used is already reflected by
EPILOGUE_USES.  In this case a simple (return) suffices.

This patch changes return_use () to emit simple (return)s when
returning via %r14.  The resulting sequences are recognized by the
conditional return logic in try_optimize_cfg ().

gcc/ChangeLog:

2018-09-24  Ilya Leoshkevich  <iii@linux.ibm.com>

	PR target/80080
	* config/s390/s390.c (s390_emit_epilogue): Do not use PARALLEL
	RETURN+USE when returning via %r14.

gcc/testsuite/ChangeLog:

2018-09-24  Ilya Leoshkevich  <iii@linux.ibm.com>

	PR target/80080
	* gcc.target/s390/risbg-ll-3.c: Expect conditional returns.
	* gcc.target/s390/zvector/vec-cmp-2.c: Likewise.

From-SVN: r264535
2018-09-24 14:21:03 +00:00
Martin Liska
e595522aa8 Improve colorization legend in gcov reports.
2018-09-24  Martin Liska  <mliska@suse.cz>

	* gcov.c (output_lines): Print colorization legend
	for both flag_use_colors and flag_use_hotness_colors.
	Reword the help.

From-SVN: r264531
2018-09-24 11:28:38 +00:00
Martin Liska
bda815c597 Improve location information of -Wcoverage-mismatch.
2018-09-24  Martin Liska  <mliska@suse.cz>

	* coverage.c (get_coverage_counts): Use warning_at
	with current_function_decl location. Use %qD in warning
	message.

From-SVN: r264530
2018-09-24 11:28:23 +00:00
Martin Liska
d609225669 Guard memory block allocation.
2018-09-24  Martin Liska  <mliska@suse.cz>

	* memory-block.h (memory_block_pool::release): Annotate with
	valgrind that the memory is not accessible.

From-SVN: r264529
2018-09-24 11:23:35 +00:00
Martin Liska
bf9f929213 Unpoison variable partition properly (PR sanitizer/85774).
2018-09-24  Martin Liska  <mliska@suse.cz>

	PR sanitizer/85774
	* asan.c: Make asan_handled_variables extern.
	* asan.h: Likewise.
	* cfgexpand.c (expand_stack_vars): Make sure
	a representative is unpoison if another
	variable in the partition is handled by
	use-after-scope sanitization.
2018-09-24  Martin Liska  <mliska@suse.cz>

	PR sanitizer/85774
	* g++.dg/asan/pr85774.C: New test.

From-SVN: r264528
2018-09-24 11:22:38 +00:00
Gerald Pfeifer
54b7d98ec4 policy_data_structures_biblio.xml: Update link to "Priority Queues and the STL".
* doc/xml/manual/policy_data_structures_biblio.xml: Update link
	to "Priority Queues and the STL".

From-SVN: r264527
2018-09-24 11:14:36 +00:00
Alexandre Oliva
b3934b3ca2 [PR87054] adjust testcase for 32-bit x86
The test assumed __int128 to be available whenever __SSE__ was
defined, but this assumption doesn't hold on 32-bit x86.  Fixed.

for  gcc/testsuite/ChangeLog

	PR middle-end/87054
	* gcc.dg/pr87054.c: Adjust for no __int128 on x86.

From-SVN: r264526
2018-09-24 11:03:34 +00:00
Eric Botcazou
30e36fd00d re PR ada/87396 (ada/gcc-interface/decl.c:8798:53:Value Conversion Issue: implicit conversion from 'int' to 'char' changes value from 132 to -124: -Wconstant-conversion)
PR ada/87396
	* fe.h (Get_Attribute_Definition_Clause): Use 'unsigned char' instead
	of 'char' as the type of the second parameter.

From-SVN: r264525
2018-09-24 10:29:07 +00:00
Richard Biener
e78c3eb320 re PR middle-end/63155 (memory hog)
2018-09-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63155
	* tree-ssa-propagate.c (add_ssa_edge): Avoid adding PHIs to
	the worklist when the edge of the respective argument isn't
	executable.

From-SVN: r264523
2018-09-24 07:08:24 +00:00
GCC Administrator
e528260d8f Daily bump.
From-SVN: r264522
2018-09-24 00:16:34 +00:00
Thomas Koenig
5986c254bf re PR fortran/87397 (Clobbering intent(out) variables caused regression in OpenCoarrays testsuite)
2018-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/87397
	* gfc_conv_procedure_call: Do not add clobber on INTENT(OUT)
	for variables having the dimension attribute.

2018-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/87395
	* gfortran.dg/intent_out_11.f90: New test.

From-SVN: r264518
2018-09-23 20:17:25 +00:00
Uros Bizjak
d18cbbf677 i386.h (enum reg_class): Rename MASK_REGS to ALL_MASK_REGS and MASK_EVEX_REGS to MASK_REGS.
* config/i386/i386.h (enum reg_class): Rename MASK_REGS to
	ALL_MASK_REGS and MASK_EVEX_REGS to MASK_REGS.
	(MASK_CLASS_P): Update for rename.
	(MAYBE_MASK_CLASS_P): Ditto.
	(REG_CLASS_NAMES): Update.
	(REG_CLASS_CONTENT): Update.
	* config/i386/i386.c (regclass_map): Update for MASK_REG
	and ALL_MASK_REGS rename.
	* config/i386/constraints.md (Yk): Update for rename.
	(k): Ditto.

	* config/i386/i386.h (enum reg_class): Remove
	EVEX_SSE_REGS and MOD4_SSE_REGS.
	(REG_CLASS_NAMES): Update.
	(REG_CLASS_CONTENT): Update.
	* config/i386/i386.c (regclass_map): Declare AVX-512 SSE
	registers as ALL_SSE_REGS.
	(ix86_additional_allocno_class_p): Remove.
	(TARGET_ADDITIONAL_ALLOCNO_CLASS_P): Remove.
	(ix86_register_priority): Lower priority of EVEX SSE registers.
	Use IN_RANGE macro where appropriate.
	(ix86_hard_regno_mode_ok): Merge AVX-5124FMAPS and
	AVX-5124VNNIW checks.
	(ix86_modes_tieable_p): Tie 512-bit SSE modes.
	* config/i386/sse.md (avx5124fmaddps_4fmaddps)
	(avx5124fmaddps_4fmaddps_mask, avx5124fmaddps_4fmaddps_maskz)
	(avx5124fmaddps_4fmaddss, avx5124fmaddps_4fmaddss_mask)
	(avx5124fmaddps_4fmaddss_maskz, avx5124fmaddps_4fnmaddps)
	(avx5124fmaddps_4fnmaddps_mask, avx5124fmaddps_4fnmaddps_maskz)
	(avx5124fmaddps_4fnmaddss, avx5124fmaddps_4fnmaddss_mask)
	(avx5124fmaddps_4fnmaddss_maskz, avx5124vnniw_vp4dpwssd)
	(avx5124vnniw_vp4dpwssd_mask, avx5124vnniw_vp4dpwssd_maskz)
	(avx5124vnniw_vp4dpwssds, avx5124vnniw_vp4dpwssds_mask)
	(avx5124vnniw_vp4dpwssds_maskz): Use "v" instead of "Yh" constraint.
	* config/i386/constraints.md (Yh): Remove.

	* config/i386/i386.c (regclass_map): Declare integer REX registers
        as GENERAL_REGS.

From-SVN: r264516
2018-09-23 17:37:30 +02:00
Gerald Pfeifer
839837b036 using_exceptions.xml: Move boost.orgs link to https.
* doc/xml/manual/using_exceptions.xml: Move boost.orgs link to
	https.

From-SVN: r264515
2018-09-23 14:57:25 +00:00
Gerald Pfeifer
86ca01ad46 * doc/service.texi (Service): Switch the fsf.org link to https.
From-SVN: r264514
2018-09-23 14:41:54 +00:00
Janne Blomqvist
0f97b81b03 Do array index calculations in gfc_array_index_type
It was recently noticed that for a few of the coarray intrinsics array
index calculations were done in integer_type_node instead of
gfc_array_index_type.  This patch fixes this.

Regtested on x86_64-pc-linux-gnu.

gcc/fortran/ChangeLog:

2018-09-23  Janne Blomqvist  <jb@gcc.gnu.org>

	* trans-expr.c (gfc_caf_get_image_index): Do array index
	calculations in gfc_array_index_type.
	* trans-intrinsic.c (conv_intrinsic_event_query): Likewise.
	* trans-stmt.c (gfc_trans_lock_unlock): Likewise.
	(gfc_trans_event_post_wait): Likewise.

gcc/testsuite/ChangeLog:

2018-09-23  Janne Blomqvist  <jb@gcc.gnu.org>

	* gfortran.dg/coarray_lib_alloc_4.f90: Fix scan patterns.
	* gfortran.dg/coarray_lock_7.f90: Likewise.

From-SVN: r264513
2018-09-23 14:03:38 +03:00
Thomas Koenig
ee7fb0588c re PR fortran/87395 (ICE in in lookup_field_for_decl with whizard)
2018-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/87395
	* gfc_conv_procedure_call: Reformat comments slightly. Do not add
	clobber on INTENT(OUT) for saved variables.

2018-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/87395
	* gfortran.dg/intent_out_10.f90: New test.

From-SVN: r264512
2018-09-23 10:52:27 +00:00
GCC Administrator
5cdf09b069 Daily bump.
From-SVN: r264510
2018-09-23 00:16:19 +00:00
Thomas Koenig
056e6860b3 re PR middle-end/41453 (use INTENT(out) for optimization)
2018-09-22  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/41453
	* trans.h (gfc_conv_expr_reference): Add optional argument
	add_clobber to prototype.
	(gfc_conv_procedure_call):  Set add_clobber argument to
	gfc_conv_procedure_reference to true for scalar, INTENT(OUT),
	non-pointer, non-allocatable, non-dummy variables whose type
	is neither BT_CHARACTER, BT_DERIVED or BT_CLASS, but only if
	the procedure is not elemental.
	* trans-expr.c (gfc_conv_procedure_reference): Add clobber
	statement before call if add_clobber is set.

2018-09-22  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/41453
	* gfortran.dg/intent_optimize_2.f90: New test.

From-SVN: r264506
2018-09-22 18:44:01 +00:00
Jerry DeLisle
73a958c67e re PR fortran/87318 (gfortran.dg/dtio_1.f90 is invalid)
2018-09-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/87318
	* gfortran.dg/dtio_1.f90: Update test to valid code.

From-SVN: r264505
2018-09-22 17:49:19 +00:00
Chung-Ju Wu
091a8640be re PR target/86798 (nds32 port needs updating for CVE-2017-5753)
PR target/86798
	* config/nds32/nds32.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
	Define to speculation_safe_value_not_needed.

From-SVN: r264503
2018-09-22 12:30:50 +00:00
Paul Thomas
204d463084 re PR fortran/85603 (ICE with character array substring assignment)
2018-09-22  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/85603
	* trans-array.c (gfc_alloc_allocatable_for_assignment): Test
	the charlen backend_decl before using the VAR_P macro.

2018-09-22  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/85603
	* gfortran.dg/deferred_character_23.f90 : New test.

From-SVN: r264502
2018-09-22 10:21:25 +00:00
GCC Administrator
0e569a3c7e Daily bump.
From-SVN: r264500
2018-09-22 00:16:49 +00:00
François Dumont
9b29794962 re PR libstdc++/87135 ([C++17] unordered containers violate iterator validity requirements)
2018-09-21  François Dumont  <fdumont@gcc.gnu.org>

	PR libstdc++/87135
	* src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
	Use __builtin_floor to compute _M_next_resize.
	* testsuite/23_containers/unordered_set/hash_policy/71181.cc: Adapt.
	* testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc:
	Adapt.

From-SVN: r264494
2018-09-21 20:39:07 +00:00
Jeff Law
35b66f3043 gimple-ssa-evrp.c (evrp_dom_walker::cleanup): Call vr_values::cleanup_edges_and_switches.
* gimple-ssa-evrp.c (evrp_dom_walker::cleanup): Call
	vr_values::cleanup_edges_and_switches.
	* tree-vrp.c (to_remove_edges, to_update_switch_stmts): Moved into
	vr_values class.
	(identify_jump_threads): Remove EDGE_IGNORE handling.
	(execute_vrp): Move handling of to_remove_edges and
	to_update_switch_stmts into vr_values class member functions.
	* tree-vrp.h (switch_update, to_remove_edges): Remove declarations.
	(to_update_switch_stmts): Likewise.
	* vr-values.c: Include cfghooks.h.
	(vr_values::vr_values): Initialize to_remove_edges and
	to_update_switch_stmts.
	(vr_values::~vr_values): Verify to_remove_edges and
	to_update_switch_stmts are empty.
	(vr_values::simplify_switch_using_ranges): Set EDGE_IGNORE as needed.
	(vr_values::cleanup_edges_and_switches): New member function.
	* vr-values.h (vr_values): Add cleanup_edges_and_switches member
	function.  Add new data members.

	* gcc.dg/tree-ssa/vrp113.c: Disable EVRP.
	* gcc.dg/tree-ssa/vrp120.c: New test.

From-SVN: r264491
2018-09-21 14:00:23 -06:00
Florian Weimer
2e3f6531bf Document that attribute noreturn inhibits tail call optimization
PR middle-end/81035
	* doc/extend.texi (Common Function Attributes): Mention that
	noreturn suppresses tail call optimization.

From-SVN: r264490
2018-09-21 21:49:36 +02:00
Marek Polacek
382955736e PR c++/87372 - __func__ constexpr evaluation.
* constexpr.c (maybe_constant_init_1): Pass false for strict down to
	cxx_eval_outermost_constant_expr.

	* g++.dg/cpp1y/func_constexpr2.C: New test.

From-SVN: r264489
2018-09-21 18:45:59 +00:00
Janne Blomqvist
edaaef601d Use vectored writes when reporting errors and warnings.
When producing error and warning messages, libgfortran writes a
message by using many system calls.  By using vectored writes (the
POSIX writev function) when available and feasible to use without
major surgery, we reduce the chance that output gets intermingled with
other output to stderr.

In practice, this is done by introducing a new function estr_writev in
addition to the existing estr_write.  In order to use this, the old
st_vprintf is removed, replaced by direct calls of vsnprintf, allowing
more message batching.

Regtested on x86_64-pc-linux-gnu.

libgfortran/ChangeLog:

2018-09-21  Janne Blomqvist  <jb@gcc.gnu.org>

	* config.h.in: Regenerated.
	* configure: Regenerated.
	* configure.ac: Check for writev and sys/uio.h.
	* libgfortran.h: Include sys/uio.h.
	(st_vprintf): Remove prototype.
	(struct iovec): Define if not available.
	(estr_writev): New prototype.
	* runtime/backtrace.c (error_callback): Use estr_writev.
	* runtime/error.c (ST_VPRINTF_SIZE): Remove.
	(estr_writev): New function.
	(st_vprintf): Remove.
	(gf_vsnprintf): New function.
	(ST_ERRBUF_SIZE): New macro.
	(st_printf): Use vsnprintf.
	(os_error): Use estr_writev.
	(runtime_error): Use vsnprintf and estr_writev.
	(runtime_error_at): Likewise.
	(runtime_warning_at): Likewise.
	(internal_error): Use estr_writev.
	(generate_error_common): Likewise.
	(generate_warning): Likewise.
	(notify_std): Likewise.
	* runtime/pause.c (pause_string): Likewise.
	* runtime/stop.c (report_exception): Likewise.
	(stop_string): Likewise.
	(error_stop_string): Likewise.

From-SVN: r264487
2018-09-21 21:12:59 +03:00
Paul Thomas
5b4dd01583 re PR fortran/77325 (ICE in gimplify_var_or_parm_decl, at gimplify.c:1933)
2018-09-21  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/77325
	* trans-array.c (gfc_alloc_allocatable_for_assignment): If the
	rhs has a charlen expression, convert that and use it.
	* trans-expr.c (gfc_trans_assignment_1): The rse.pre for the
	assignment of deferred character array vars to a realocatable
	lhs should not be added to the exterior block since vector
	indices, for example, generate temporaries indexed within the
	loop.

2018-09-21  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/77325
	* gfortran.dg/deferred_character_22.f90 : New test.

From-SVN: r264486
2018-09-21 17:33:29 +00:00
Paul Thomas
fd876246ee re PR fortran/87359 (pointer being freed was not allocated)
2018-09-21  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/87359
	* trans-stmt.c (gfc_trans_allocate): Don't deallocate alloc
	components if must_finalize is set for expr3.

2018-09-21  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/87359
	* gfortran.dg/finalize_33.f90 : New test.

From-SVN: r264485
2018-09-21 17:26:23 +00:00
Jason Merrill
d4accef391 * constexpr.c (cxx_eval_outermost_constant_expr): Update comment.
From-SVN: r264484
2018-09-21 13:22:20 -04:00