Commit Graph

164206 Commits

Author SHA1 Message Date
Richard Biener
392047f92a re PR debug/87428 ("Missed" inline instances cause bogus DWARF to be emitted)
2018-09-26  Richard Biener  <rguenther@suse.de>

	PR debug/87428
	PR debug/87362
	* tree-inline.c (expand_call_inline): When the location
	of the call is UNKNOWN_LOCATION use DECL_SOURCE_LOCATION
	or BUILTINS_LOCATION for the BLOCK_SOURCE_LOCATION of
	the inserted BLOCK to make inlined_function_outer_scope_p
	recognize it.
	* dwarf2out.c (add_call_src_coords_attributes): Do not add
	coords for reserved locations.

From-SVN: r264594
2018-09-26 07:05:01 +00:00
Ian Lance Taylor
201054a7f0 runtime, os: fix the build on Solaris
Reviewed-on: https://go-review.googlesource.com/137535

From-SVN: r264593
2018-09-26 03:29:07 +00:00
GCC Administrator
a1f9402ebd Daily bump.
From-SVN: r264592
2018-09-26 00:16:57 +00:00
Segher Boessenkool
0bbadf8bc3 rs6000: Use set_attr_alternative in some places
Some code is much neater if it uses set_attr_alternative than if it
does everything by hand.  Change some patterns to use this shorthand.


	* config/rs6000/rs6000.md (*movcc_internal1): Use set_attr_alternative.
	(*call_indirect_nonlocal_sysv<mode>): Ditto.
	(*call_value_indirect_nonlocal_sysv<mode>): Ditto.
	(*sibcall_nonlocal_sysv<mode>): Ditto.
	(*sibcall_value_nonlocal_sysv<mode>): Ditto.
	(<bd>_<mode>): Ditto.
	(<bd>tf_<mode>): Ditto.

From-SVN: r264588
2018-09-26 01:42:28 +02:00
Segher Boessenkool
07a38de7ce rs6000: Simplify "switch (which_alternative)" patterns
A few of the rs6000 patterns use C code as output control string, where
that code is just a "switch (which_alternative)" with all alternatives
returning a constant string or just the result of a function call as
template.
Write such cases as just a list of templates, with the few pieces that
are C code preceded by "*".


	* config/rs6000/altivec.md (*altivec_mov<mode>): Write the output
	control string as a list of templates instead of as C code.
	(*altivec_movti): Ditto.
	* config/rs6000/darwin.md (movdf_low_di): Ditto.

From-SVN: r264587
2018-09-26 01:31:22 +02:00
Jim Wilson
ad117173a0 RISC-V: Fix weak symbols with medany and explicit relocs.
gcc/
	* config/riscv/riscv.c (riscv_split_symbol): Mark auipc label as weak
	when target symbol is weak.

	gcc/testsuite/
	* gcc.target/riscv/weak-1.c: New.

From-SVN: r264586
2018-09-25 15:52:38 -07:00
Jeff Law
c7813484bc re PR c/87387 (trunk/gcc/builtins.c:585:7: warning: -Wself-assign problem)
PR c/87387
        * builtins.c (unterminated_array): Simplify.
	* expr.c (string_constant): Handle SSA_NAME.  Add more exceptions
	where pointer arithmetic is safe.

	* gcc.dg/warn-stpcpy-no-nul.c: Drop unnecessary xfails.
	* gcc.dg/warn-stplen-no-nul.c: Likewise.

From-SVN: r264585
2018-09-25 16:17:45 -06:00
Segher Boessenkool
a9f6e019d1 rs6000: Do not allow out of range immediate in vsplt[bhw] (PR86987)
The original AltiVec manuals had the immediate lane number in the
splat instructions as a 5-bit number, but anything too big has no
defined meaning, and gas will choke on it too.  This patch disallows
it in the instruction patterns as well as in the builtins.  This
solves PR86987.


	PR target/86987
	* config/rs6000/altivec.md (altivec_vspltb): Use
	const_0_to_15_operand instead of u5bit_cint_operand.
	(*altivec_vspltb_internal): Ditto.
	(altivec_vspltb_direct): Ditto.
	(altivec_vsplth): Use const_0_to_7_operand instead of
	u5bit_cint_operand.
	(*altivec_vsplth_internal): Ditto.
	(altivec_vsplth_direct): Ditto.
	(altivec_vspltw): Use const_0_to_3_operand instead of
	u5bit_cint_operand.
	(*altivec_vspltw_internal): Ditto.
	(altivec_vspltw_direct): Ditto.
	(altivec_vspltsf): Ditto.
	(*altivec_vspltsf_internal): Ditto.
	* config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Handle the
	various splats with the proper size immediate.  Reorder the various
	cases by ascending size of immediate, and put all such together.

From-SVN: r264584
2018-09-26 00:09:38 +02:00
Alexandre Oliva
ee8505183c adjust dinst.adb's expectations for location views
The testcase failed when the compiler used .loc view syntax, because
it expected discriminators at the end of the .loc lines.

for  gcc/testsuite/ChangeLog

	* gnat.dg/dinst.adb: Adjust for locviews.

From-SVN: r264583
2018-09-25 19:04:44 +00:00
Will Schmidt
43ab423d96 altivec-6.C: Updated vec_splat() calls.
[testsuite]

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

    * g++.dg/ext/altivec-6.C: Updated vec_splat() calls.
    * gcc.target/powerpc/fold-vec-splat-char.c: Remove invalid
    vec_splat calls from recently added tests. Update instruction counts.
    * gcc.target/powerpc/fold-vec-splat-floatdouble.c: Same.
    * gcc.target/powerpc/fold-vec-splat-int.c: Same.
    * gcc.target/powerpc/fold-vec-splat-longlong.c: Same.
    * gcc.target/powerpc/fold-vec-splat-pixel.c: Same.
    * gcc.target/powerpc/fold-vec-splat-short.c: Same.

From-SVN: r264582
2018-09-25 18:34:06 +00:00
Marek Polacek
a5bfbcc85c re PR c++/87425 (ICE with virtual assignment operator)
PR c++/87425
	* g++.dg/cpp2a/constexpr-virtual12.C: New test.

From-SVN: r264581
2018-09-25 18:02:47 +00:00
Jakub Jelinek
69deaf149a re PR c++/87398 (g++ ICE on valid code: tree check: expected record_type or union_type or qual_union_type, have array_type in cxx_eval_constant_expression, at cp/constexpr.c:4820)
PR c++/87398
	* constexpr.c (cxx_eval_constant_expression) <case OBJ_TYPE_REF>: Only
	look through COMPONENT_REFs with DECL_FIELD_IS_BASE FIELD_DECLs.

	* g++.dg/other/pr87398.C: New test.
	* g++.dg/cpp2a/constexpr-virtual10.C: New test.
	* g++.dg/cpp2a/constexpr-virtual11.C: New test.

From-SVN: r264580
2018-09-25 18:40:57 +02:00
Martin Jambor
e8753bb88e [PR 87339] Fix failure of gcc.dg/warn-abs-1.c on some targets
2018-09-25  Martin Jambor  <mjambor@suse.cz>

	PR testsuite/87339
	* gcc.dg/warn-abs-1.c: Do not test _Float128.  Remove dg-skip-if and
	float125 target.
	* gcc.target/i386/warn-abs-3.c: New test.

From-SVN: r264579
2018-09-25 18:28:40 +02:00
Uros Bizjak
84848f5199 * config/i386/i386.md: Move nearbyint patterns closer to rint.
From-SVN: r264578
2018-09-25 18:06:36 +02:00
Paolo Carlini
0ae1678fd9 re PR c++/81246 (ICE on invalid C++ code (with a non-type template parameter having type 'float'): Segmentation fault)
2018-09-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/81246
	* g++.dg/cpp0x/pr81246.C: New.

From-SVN: r264577
2018-09-25 16:05:48 +00:00
Mike Crowe
29b26763f5 Use steady_clock to implement condition_variable::wait_for with predicate
In r263225 (d2e378182a12d68fe5caeffae681252662a2fe7b), I fixed
condition_variable::wait_for to use std::chrono::steady_clock for the wait.
Unfortunately, I failed to spot that the same fix is required for the
wait_for variant that takes a predicate too.

2018-09-25  Mike Crowe  <mac@mcrowe.com>

	* include/std/condition_variable (condition_variable::wait_for): Use
	steady clock in overload that uses a predicate.

From-SVN: r264575
2018-09-25 15:59:27 +01:00
Jonathan Wakely
16d30bbd4d PR libstdc++/87431 optimise valueless_by_exception()
If a std::variant can never get into valueless state then we don't need
to do a runtime check for a valid alternative.

	PR libstdc++/87431
	* include/std/variant (_Variant_storage<true, _Types...>::_M_valid):
	Avoid runtime test when all alternatives are scalars and so cannot
	throw during initialization.

From-SVN: r264574
2018-09-25 15:59:16 +01:00
Richard Biener
4fb792e189 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 (add_AT_external_die_ref): Remove now redundant
	GC-ification.
	(maybe_create_die_with_external_ref): Do not create
	DW_TAG_imported_unit here.
	(add_abstract_origin_attribute): Handle external BLOCK refs.
	(dwarf2out_abstract_function): Simplify LTO case.
	(dwarf2out_early_finish): Create DW_TAG_imported_unit explicitely
	rather than using maybe_create_die_with_external_ref.

From-SVN: r264573
2018-09-25 14:51:39 +00:00
Ian Lance Taylor
f5ec13f15d internal/bytealg, internal/cpu, internal/poll: portability fixes
In internal/bytealg correct a +build tag to never build indexbyte_generic.go
    for the gofrontend, where we always use indexbyte_native.go.
    
    For internal/cpu let the Makefile define CacheLineSize using goarch.sh,
    rather than trying to enumerate all the possibilities in cpu_ARCH.go files.
    
    In internal/poll call the C fcntl function rather than using SYS_FCNTL.
    Change mksysinfo.sh to ensure that F_GETPIPE_SZ is always defined,
    and check that in internal/poll.
    
    Reviewed-on: https://go-review.googlesource.com/137256

From-SVN: r264572
2018-09-25 14:31:57 +00:00
Uros Bizjak
be2df8bc38 i386.md (frndintxf2_mask_pm): Remove.
* config/i386/i386.md (frndintxf2_mask_pm): Remove.
	(frndintxf2_mask_pm_i387): Ditto.
	(nearbyintxf2): Rewrite expander pattern to match rintxf2.
	Enable for !flag_trapping_math.
	(nearbyint<mode>2): Enable x87 modes for !flag_trapping_math.
	Enable SSE modes for TARGET_SSE4_1 and expand them with round insn.
	Change operand 1 predicate to nonimmediate_operand.
	(attr "i387_cw"): Remove mask_pm.
	* config/i386/i386.h (enum ix86_stack_slot): Remove SLOT_CW_MASK_PM.
	(enum ix86_entity): Remove I387_MASK_PM.
	* config/i386/i386.c (ix86_i387_mode_needed): Do not
	handle I387_MASK_PM.
	(ix86_mode_needed): Ditto.
	(ix86_mode_after): Ditto.
	(ix86_mode_entry): Ditto.
	(ix86_mode_exit): Ditto.
	(emit_i387_cw_initialization): Do not handle I387_CW_MASK_PM.

From-SVN: r264571
2018-09-25 16:26:11 +02:00
Ian Lance Taylor
b16084d244 cmd/go: pass down testing gccgo in TestScript
This permits TestScript to work when gccgo is not installed.
    Previous testing was using a previously installed gccgo, not the newly
    built one.
    
    This revealed that the testing of whether an internal package is
    permitted was incorrect for standard library packages, since the
    uninstalled gccgo can see internal packages in the uninstalled libgo.
    Fix the internal package tests.
    
    This permitted removing a couple of gccgo-specific changes in the
    testsuite.
    
    Reviewed-on: https://go-review.googlesource.com/137255

From-SVN: r264570
2018-09-25 14:16:32 +00:00
H.J. Lu
97b8f8679d i386: Compile pr82699-5.c and pr82699-6.c with -fno-pic
Compile pr82699-5.c and pr82699-6.c with -fno-pic to avoid

FAIL: gcc.target/i386/pr82699-5.c (test for excess errors)
Excess errors:
cc1: sorry, unimplemented: -mfentry isn't supported for 32-bit in combination with -fpic
FAIL: gcc.target/i386/pr82699-6.c (test for excess errors)
Excess errors:
cc1: error: -mnop-mcount is not implemented for -fPIC
cc1: sorry, unimplemented: -mfentry isn't supported for 32-bit in combination with -fpic

when running GCC testsuite with --target_board='unix{-fpic\ -m32,-fpic}'.

	PR target/82699
	* gcc.target/i386/pr82699-5.c: Add -fno-pic for ia32.
	* gcc.target/i386/pr82699-6.c: Add -fno-pic.

From-SVN: r264569
2018-09-25 06:51:45 -07:00
Jakub Jelinek
eeefd00d92 coarray_lock_7.f90: Adjust scan-tree-dump-times for ILP32.
* gfortran.dg/coarray_lock_7.f90: Adjust scan-tree-dump-times for
	ILP32.

From-SVN: r264568
2018-09-25 15:21:44 +02:00
Jakub Jelinek
d02c08cb15 vr-values.c (vr_values::vr_values): Initialize to_remove_edges and to_update_switch_stmts to vNULL instead of...
* vr-values.c (vr_values::vr_values): Initialize to_remove_edges and
	to_update_switch_stmts to vNULL instead of calling create on them
	immediately.

From-SVN: r264567
2018-09-25 15:18:06 +02:00
Richard Biener
a0d013bdc2 re PR tree-optimization/87402 (ICE in set_ssa_val_to, at tree-ssa-sccvn.c:3645)
2018-09-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87402
	* tree-ssa-sccvn.c (SSA_VISITED): Remove unused function.
	(visit_phi): Re-instantiate handling of supposed to be VARYING
	but non-VARYING backedge value.

	* gcc.dg/torture/pr87402.c: New testcase.

From-SVN: r264566
2018-09-25 12:51:57 +00:00
H.J. Lu
5d6749d1f2 Check pie_enabled target in PIC tests
We need to check pie_enabled target in PIC tests to support GCC where
PIE is enabled by default when configured with --enable-default-pie.

	PR testsuite/70150
	* gcc.dg/20020312-2.c (dg-additional-options): Set to "-no-pie"
	for pie_enabled target.
	* gcc.dg/uninit-19.c: Check pie_enabled for PIC.
	* gcc.target/i386/pr34256.c: Likewise.

From-SVN: r264565
2018-09-25 05:25:44 -07:00
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