Commit Graph

167332 Commits

Author SHA1 Message Date
Martin Liska
f62d3527db x86: Disable jump tables when retpolines are used (PR target/86952).
2019-03-08  Martin Liska  <mliska@suse.cz>

	PR target/86952
	* config/i386/i386.c (ix86_option_override_internal): Disable
	jump tables when retpolines are used.
2019-03-08  Martin Liska  <mliska@suse.cz>

	PR target/86952
	* gcc.target/i386/pr86952.c: New test.
	* gcc.target/i386/indirect-thunk-7.c: Use jump tables to match
	scanned pattern.
	* gcc.target/i386/indirect-thunk-inline-7.c: Likewise.

From-SVN: r269492
2019-03-08 12:55:40 +00:00
Jan Hubicka
37555926fe Restrict IPA split (PR go/63560).
2019-03-08  Jan Hubicka  <hubicka@ucw.cz>

	PR go/63560
	* ipa-split.c (execute_split_functions): Do not split
	'noinline' or 'section' function.

From-SVN: r269491
2019-03-08 12:37:54 +00:00
Jakub Jelinek
ec07e94bbf re PR target/79846 (s390: untranslatable diagnostic in s390.c)
PR target/79846
	* config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
	HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
	HOST_WIDE_INT_PRINT_DEC.  Formatting fixes.

From-SVN: r269489
2019-03-08 11:53:27 +01:00
Jakub Jelinek
4ee494c053 re PR ipa/80000 (diagnostics: trailing spaces in "one definition rule ")
PR ipa/80000
	* ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
	from diagnostics.  Formatting fixes.

	PR target/85665
	* ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
	warn_odr diagnostics.

From-SVN: r269488
2019-03-08 11:52:38 +01:00
Jakub Jelinek
0d7bac69b7 re PR other/80058 (fix double spaces in string literals everywhere)
PR other/80058
	* lra-constraints.c (process_alt_operands): Avoid one space before
	" at the end of line and another after " on another line in a string
	literal.
	* attribs.c (handle_dll_attribute): Likewise.
	* config/avr/avr-devices.c (avr_texinfo): Likewise.
cp/
	* parser.c (cp_parser_template_declaration_after_parameters): Avoid
	one space before " at the end of line and another after " on another
	line in a string literal.
fortran/
	* arith.c (gfc_complex2complex): Avoid two spaces in the middle of
	diagnostics.
	* resolve.c (resolve_allocate_expr): Likewise.

From-SVN: r269487
2019-03-08 11:51:28 +01:00
Jakub Jelinek
723a52f951 gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap warning_at or inform messages in G_() if there is no ?:.
* gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
	warning_at or inform messages in G_() if there is no ?:.

From-SVN: r269486
2019-03-08 11:50:23 +01:00
Jakub Jelinek
1db01ff96a re PR tree-optimization/89550 (Spurious array-bounds warning when using __PRETTY_FUNCTION__ as a string_view)
PR tree-optimization/89550
	* builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
	returned true.  Formatting fixes.
	(expand_builtin_strnlen): Formatting fixes.
	* tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
	if warning_at returned true.
	* tree-cfg.c (pass_warn_function_return::execute): Likewise.
c-family/
	* c-common.c (c_common_truthvalue_conversion): Only set
	TREE_NO_WARNING if warning_at returned true.
	* c-warn.c (overflow_warning, warn_logical_operator): Likewise.
c/
	* c-decl.c (finish_function): Only set TREE_NO_WARNING if warning_at
	returned true.
	(c_write_global_declarations_1): Only set TREE_NO_WARNING if pedwarn
	or warning returned true.
cp/
	* semantics.c (maybe_convert_cond): Only set TREE_NO_WARNING if
	warning_at returned true.
	* decl2.c (c_parse_final_cleanups): Likewise.
	* typeck.c (convert_for_assignment): Likewise.
	* decl.c (finish_function): Likewise.

From-SVN: r269485
2019-03-08 11:46:39 +01:00
Richard Biener
94ec37a909 re PR target/89578 (5% runtime regression for 481.wrf at -Ofast -flto)
2019-03-08  Richard Biener  <rguenther@suse.de>

	PR middle-end/89578
	* cfgloop.h (struct loop): Add owned_clique field.
	* cfgloopmanip.c (copy_loop_info): Copy it.
	* tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
	cliques.
	* tree-inline.c (copy_loops): Remap owned_clique.
	* lto-streamer-in.c (input_cfg): Stream owned_clique.
	* lto-streamer-out.c (output_cfg): Likewise.

From-SVN: r269484
2019-03-08 10:20:12 +00:00
Jakub Jelinek
5d1504d42a re PR c++/89585 (GCC 8.3: asm volatile no longer accepted at file scope)
PR c++/89585
	* parser.c (cp_parser_asm_definition): Just warn instead of error
	on volatile qualifier outside of function body.

	* g++.dg/asm-qual-3.C: Adjust expected diagnostics for toplevel
	asm volatile.

From-SVN: r269483
2019-03-08 08:45:23 +01:00
Jakub Jelinek
ed3ea9f271 re PR c++/89599 (C-style function-pointer-to-void* cast is handled inconsistently)
PR c++/89599
	* constexpr.c (potential_constant_expression_1): Reject
	REINTERPRET_CAST_P NOP_EXPRs.

	* g++.dg/ubsan/vptr-4.C: Adjust expected diagnostics.
	* g++.dg/parse/array-size2.C: Likewise.
	* g++.dg/cpp0x/constexpr-89599.C: New test.

From-SVN: r269482
2019-03-08 08:43:58 +01:00
Jakub Jelinek
560a46a591 re PR c++/89622 (G++ prints notes, but no warning or error)
PR c++/89622
	* call.c (joust): Call print_z_candidate only if pedwarn returned
	true.

	* g++.dg/warn/pr89622.C: New test.

From-SVN: r269481
2019-03-08 08:42:51 +01:00
Jakub Jelinek
1d28bbdf47 re PR target/80190 (darwin: untranslateable placeholder "non-ASCII character")
PR target/80190
	* config/darwin.c: Include intl.h.
	(darwin_build_constant_cfstring): Improve i18n of diagnostics by not
	composing the message out of two separate parts.

From-SVN: r269480
2019-03-08 08:39:31 +01:00
François Dumont
c0cb38c28e re PR libstdc++/89477 (Incorrect CTAD deduction guides for set and multiset)
2019-03-08  François Dumont  <fdumont@gcc.gnu.org>

	PR libstdc++/89477
	* include/debug/map.h (map): Use _RequireNotAllocator to constrain
	parameters in deduction guides.
	* include/debug/multimap.h (multimap): Likewise.
	* include/debug/set.h (multimap): Likewise.
	* include/debug/multiset.h (multimap): Likewise.
	* include/debug/unordered_map (unordered_map): Likewise.
	(unordered_multimap): Likewise.
	* include/debug/unordered_set (unordered_set): Likewise.
	(unordered_multiset): Likewise.

From-SVN: r269479
2019-03-08 05:53:09 +00:00
François Dumont
20a4550ce0 re PR libstdc++/89608 (Undetected iterator invalidations on unordered containers in debug mode)
2019-03-08  François Dumont  <fdumont@gcc.gnu.org>

	PR libstdc++/89608
	* include/debug/unordered_map (unordered_map<>::_M_check_rehashed):
	Invalidate all iterators in case of rehash.
	(unordered_multimap<>::_M_check_rehashed): Likewise.
	* include/debug/unordered_set
	(unordered_set<>::_M_check_rehashed): Likewise.
	(unordered_multiset<>::_M_check_rehashed): Likewise.
	* testsuite/23_containers/unordered_set/debug/89608_neg.cc: New.

From-SVN: r269478
2019-03-08 05:37:50 +00:00
Jason Merrill
bddee796d0 PR c++/88123 - lambda and using-directive.
For named function calls in a template, the result of unqualified lookup is
safed in CALL_EXPR_FN.  But for operator expressions, no unqualified lookup
is performed until we know whether the operands have class type.  So when we
see in a lambda a use of an operator that might be overloaded, we need to do
that lookup then and save it away somewhere.  One possibility would be in
the expression, but we can't really add extra conditional operands to
standard tree codes.  I mostly implemented another approach using a new
WITH_LOOKUP_EXPR code, but teaching everywhere how to handle a new tree code
is always complicated.  Then it occurred to me that we could associate the
lookups with the function, which is both simpler and smaller.  So this patch
stores any operator bindings needed by a lambda function in an internal
attribute on the lambda call operator.

	* name-lookup.c (op_unqualified_lookup)
	(maybe_save_operator_binding, discard_operator_bindings)
	(push_operator_bindings): New.
	* typeck.c (build_x_binary_op, build_x_unary_op): Call
	maybe_save_operator_binding.
	* decl.c (start_preparsed_function): Call push_operator_bindings.
	* tree.c (cp_free_lang_data): Call discard_operator_bindings.

From-SVN: r269477
2019-03-07 21:54:41 -05:00
GCC Administrator
1ce59b6cad Daily bump.
From-SVN: r269476
2019-03-08 00:16:34 +00:00
Joseph Myers
479d3a6076 * sv.po: Update.
From-SVN: r269473
2019-03-08 00:06:15 +00:00
Andreas Schwab
ec274050c5 RISC-V: Add libstdc++ check-abi support.
Andreas Schwab  <schwab@suse.de>
	* config/abi/post/riscv64-linux-gnu: New directory.
	* config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: New file.

From-SVN: r269472
2019-03-07 15:24:59 -08:00
Jakub Jelinek
74d1f65102 re PR target/80003 (i386.c: %s placeholder is no semantic grammar unit)
PR target/80003
	* config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
	doesn't start with a capital letter and doesn't end with a dot.
	(ix86_function_arg_boundary): Make sure diagnostics doesn't start
	with a capital letter.
	(ix86_mangle_function_version_assembler_name): Likewise.
	(ix86_generate_version_dispatcher_body): Likewise.
	(fold_builtin_cpu): Likewise.
	(get_builtin_code_for_version): Likewise.  Remove extraneous space.
	(ix86_handle_interrupt_attribute): Make the diagnostics easier for
	translators, wrap full type name in %qs.

	* gcc.target/i386/pr68657.c: Adjust expected diagnostics wording.
	* gcc.target/i386/interrupt-6.c: Likewise.
	* g++.target/i386/pr57362.C: Adjust capitalization in dg-prune-output.

From-SVN: r269471
2019-03-07 22:32:21 +01:00
Joseph Myers
c04d666671 * fi.po: Update.
From-SVN: r269470
2019-03-07 20:50:30 +00:00
Paolo Carlini
c7163b643e re PR c++/84518 (ICE with lambda capturing broken variable)
2019-03-07  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84518
	* g++.dg/cpp0x/lambda/lambda-ice30.C: New.
	* g++.dg/cpp0x/lambda/lambda-ice31.C: Likewise.

From-SVN: r269469
2019-03-07 20:49:42 +00:00
Jakub Jelinek
90a0bf4e02 re PR translation/79999 (possible typo in gimplify.c: depend(sink:))
PR translation/79999
	* gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
	depend clause with source (or sink) modifier.
	* omp-expand.c (expand_omp_ordered_sink): Likewise.

	* c-c++-common/gomp/doacross-1.c: Adjust expected diagnostics.
	* c-c++-common/gomp/doacross-3.c: New test.

From-SVN: r269468
2019-03-07 20:46:11 +01:00
Jakub Jelinek
459d21c6cf re PR target/89602 (Missing AVX512 intrinsics)
PR target/89602
	* config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
	*avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
	(avx512f_load<mode>_mask): New define_expand.
	* config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
	__builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
	__builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
	__builtin_ia32_movess_mask): New builtins.
	* config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
	_mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
	_mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
	_mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.

	* gcc.target/i386/avx512f-vmovss-1.c: New test.
	* gcc.target/i386/avx512f-vmovss-2.c: New test.
	* gcc.target/i386/avx512f-vmovss-3.c: New test.
	* gcc.target/i386/avx512f-vmovsd-1.c: New test.
	* gcc.target/i386/avx512f-vmovsd-2.c: New test.
	* gcc.target/i386/avx512f-vmovsd-3.c: New test.

From-SVN: r269467
2019-03-07 20:10:21 +01:00
Iain Buclaw
8f5439bea3 d/dmd: Merge upstream dmd d517c0e6a
Fixes https://gcc.gnu.org/PR89016

Reviewed-on: https://github.com/dlang/dmd/pull/9427

From-SVN: r269465
2019-03-07 16:57:23 +00:00
Martin Jambor
59d9a0aa71 Zero local estimated benefit for cloning extern inline function
2019-03-07  Martin Jambor  <mjambor@suse.cz>

	PR lto/87525
	* ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
	for extern inline functions.

	testsuite/
	* gcc.dg/ipa/ipcp-5.c: New test.

From-SVN: r269464
2019-03-07 17:42:20 +01:00
Jason Merrill
ae9b289201 PR c++/88820 - ICE with CTAD and member template used in DMI.
Here the problem was that in order to form a FUNCTION_DECL for foo<int> in
the uninstantiated template, we were trying to deduce template args for S
from the template parm itself, and failing.

	* pt.c (do_class_deduction): Handle parm used as its own arg.

From-SVN: r269463
2019-03-07 11:15:56 -05:00
Martin Jambor
1738b52201 Relax cgraph_node::clone_of_p to also look through former clones
2019-03-07  Martin Jambor  <mjambor@suse.cz>

	PR ipa/88235
	* cgraph.h (cgraph_node): New inline method former_thunk_p.
	* cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
	(clone_of_p): Treat expanded thunks like thunks, be optimistic if they
	have multiple callees.  At the end check if declarations match as
	opposed to cgraph_nodes.

	testsuite/
	* g++.dg/ipa/pr88235.C: New test.

From-SVN: r269462
2019-03-07 17:03:34 +01:00
Martin Liska
606711a167 Significantly speed up verifiers for a cgraph_node with many clones.
2019-03-07  Martin Liska  <mliska@suse.cz>

	* cgraph.c (cgraph_node::verify_node): Verify with a neighbour
	which is equivalent to searching for this in clones chain.
	* symtab.c (symtab_node::verify_base): Similarly compare ASM
	names with a neighbour and special case first node in a chain.

From-SVN: r269461
2019-03-07 15:33:52 +00:00
Jason Merrill
7c3f98ca65 Fix comment
From-SVN: r269460
2019-03-07 10:16:04 -05:00
Jason Merrill
d4babd373b PR c++/80916 - spurious "static but not defined" warning.
Nothing can refer to an internal decl with no definition, so we shouldn't
treat such a decl as a possible devirtualization target.

	* gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
	for an internal symbol with DECL_EXTERNAL.

From-SVN: r269459
2019-03-07 10:10:22 -05:00
Richard Biener
5161ffa4f5 re PR tree-optimization/89618 (Inner loop won't vectorize unless dummy statement is included)
2019-04-07  Richard Biener  <rguenther@suse.de>

	PR middle-end/89618
	* cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
	* tree-inline.c (copy_loops): Simplify.

	* gcc.target/i386/pr89618.c: New testcase.

From-SVN: r269458
2019-03-07 14:53:37 +00:00
Jonathan Wakely
e0f7051e44 Fix new test to run as well as compile
* testsuite/20_util/function_objects/bind_front/1.cc: Change from
	compile test to run. Fix typo.

From-SVN: r269457
2019-03-07 14:35:22 +00:00
Jonathan Wakely
5178f5c255 Update C++20 status table in libstdc++ manual
* doc/xml/manual/status_cxx2020.xml: Update C++20 status.
	* doc/html/*: Regenerate.

From-SVN: r269456
2019-03-07 14:25:05 +00:00
Jonathan Wakely
9ae2a7c399 P0356R5 Simplified partial function application
* include/std/functional [C++20] (_Bind_front, _Bind_front_t): Define
	helpers for bind_front.
	(bind_front, __cpp_lib_bind_front): Define.
	* testsuite/20_util/function_objects/bind_front/1.cc: New test.

From-SVN: r269455
2019-03-07 14:15:53 +00:00
Martin Liska
20faba6ddf Revert function removal made in r264561.
2019-03-07  Martin Liska  <mliska@suse.cz>

	* dwarf2out.c (add_AT_vms_delta): Revert function removal.

From-SVN: r269454
2019-03-07 13:47:53 +00:00
Richard Biener
1a438d160e re PR tree-optimization/89595 (DOM miscompiles code)
2019-03-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89595
	* tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
	stmt iterator as reference, take boolean output parameter to
	indicate whether the stmt was removed and thus the iterator
	already advanced.
	(dom_opt_dom_walker::before_dom_children): Re-iterate over
	stmts created by folding.

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

From-SVN: r269453
2019-03-07 12:46:44 +00:00
Jakub Jelinek
f879f0e3f2 re PR c++/89585 (GCC 8.3: asm volatile no longer accepted at file scope)
PR c++/89585
	* doc/extend.texi (Basic Asm): Document qualifiers are not allowed
	at toplevel.

	* parser.c (cp_parser_asm_definition): Parse asm qualifiers even
	at toplevel, but diagnose them.

	* g++.dg/asm-qual-3.C: Adjust expected diagnostics.

From-SVN: r269451
2019-03-07 09:18:36 +01:00
Ian Lance Taylor
c0017f91c4 re PR go/89227 (gotools test cmd/go fails with link error "call lacks nop, can't restore toc; recompile with -fPIC")
PR go/89227
	* go-gcc.cc (Gcc_backend::function): Set TREE_PUBLIC for an
	only-inline function.

From-SVN: r269449
2019-03-07 00:53:41 +00:00
GCC Administrator
295bae04b2 Daily bump.
From-SVN: r269448
2019-03-07 00:16:32 +00:00
Harald Anlauf
a28a8193e5 re PR fortran/71203 (ICE in add_init_expr_to_sym, at fortran/decl.c:1512 and :1564)
2019-03-06  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/71203
	* expr.c (simplify_const_ref): Avoid null pointer dereference.

	PR fortran/71203
	* gfortran.dg/substr_8.f90: New test.

From-SVN: r269444
2019-03-06 21:06:35 +00:00
Ian Lance Taylor
1c98301f2b compiler: emit underlying constant in array_type length export
In Array_type::do_export, when emitting a concrete array length,
    evaluate the length expression to an integer constant and emit that
    constant, instead of calling the more general method for emitting
    expressions. This is to avoid the possibility that we will need
    to emit a conversion, which could confuse the gccgoimporter.
    
    Fixes golang/go#30628.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/165741

From-SVN: r269443
2019-03-06 20:40:32 +00:00
Jason Merrill
2de5d0ea90 PR c++/89381 - implicit copy and using-declaration.
Here the used base<int>::operator= gets into the list of foo's bindings for
operator=, but it shouldn't make the copy ctor deleted.

	* class.c (classtype_has_move_assign_or_move_ctor_p): Don't consider
	op= brought in by a using-declaration.

From-SVN: r269442
2019-03-06 15:28:47 -05:00
Jakub Jelinek
71b6cb2bbc re PR c++/87148 (backward compatibility issue to take char [] as incomplete type)
PR c++/87148
	* init.c (build_value_init_noctor): Ignore flexible array members.

	* g++.dg/ext/flexary34.C: New test.

From-SVN: r269434
2019-03-06 19:46:32 +01:00
Jason Merrill
4556c5b315 PR c++/89576 - if constexpr of lambda capture.
Now that we're doing implicit lambda capture in templates, we see x here as
the lambda capture.  maybe_convert_cond was doing nothing in a template, so
we never called mark_rvalue_use on x.  As part of the broad move toward
doing more processing of non-dependent expressions, let's do this
conversion.

	* semantics.c (maybe_convert_cond): Do convert a non-dependent
	condition in a template.
	* typeck.c (condition_conversion): Handle being called in a
	template.

From-SVN: r269433
2019-03-06 13:39:24 -05:00
Uros Bizjak
d135eeb21d encoding.c (DFmode): #undef before #define.
* encoding.c (DFmode): #undef before #define.

From-SVN: r269429
2019-03-06 16:49:13 +01:00
Peter Bergner
2713e5db39 re PR rtl-optimization/88845 (ICE in lra_set_insn_recog_data, at lra.c:1010)
gcc/
	PR rtl-optimization/88845
	* config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
	LRA.
	* lra.c (remove_scratches_1): New function.
	(remove_scratches): Use it.
	(lra_emit_move): Likewise.

gcc/testsuite/
	PR rtl-optimization/88845
	* gcc.target/powerpc/pr88845.c: New test.

From-SVN: r269428
2019-03-06 09:36:43 -06:00
Marek Polacek
ec2de56927 PR c++/87378 - bogus -Wredundant-move warning.
* typeck.c (maybe_warn_pessimizing_move): See if the maybe-rvalue
	overload resolution would actually succeed.

	* g++.dg/cpp0x/Wredundant-move1.C (fn4): Drop dg-warning.
	* g++.dg/cpp0x/Wredundant-move7.C: New test.

From-SVN: r269427
2019-03-06 15:34:50 +00:00
Jonathan Wakely
4661094069 Add feature test macro for bounded array traits
* include/std/type_traits (__cpp_lib_bounded_array_traits): Define.
	* include/std/version (__cpp_lib_bounded_array_traits): Likewise.
	* testsuite/20_util/is_bounded_array/value.cc: Check for macro.
	* testsuite/20_util/is_unbounded_array/value.cc: Likewise.

From-SVN: r269426
2019-03-06 15:31:06 +00:00
Ian Lance Taylor
0e1a6d2700 mksysinfo: actually use modified Statfs_t value
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/165737

From-SVN: r269424
2019-03-06 14:19:56 +00:00
Edward Smith-Rowland
f29a1ef2d8 PR libstdc++/86655 - std::assoc_legendre should not constrain
2019-03-06  Edward Smith-Rowland  <3dw4rd@verizon.net>

	PR libstdc++/86655 - std::assoc_legendre should not constrain
	the value of m (or x).
	* include/tr1/legendre_function.tcc (__assoc_legendre_p,
	__sph_legendre): If degree > order Don't throw, return 0.
	(__legendre_p, __assoc_legendre_p): Don't constrain x either.
	* testsuite/special_functions/02_assoc_legendre/pr86655.cc: New test.
	* testsuite/special_functions/20_sph_legendre/pr86655.cc: New test.
	* testsuite/tr1/5_numerical_facilities/special_functions/
	02_assoc_legendre/pr86655.cc: New test.
	* testsuite/tr1/5_numerical_facilities/special_functions/
	22_sph_legendre/pr86655.cc: New test.

From-SVN: r269423
2019-03-06 13:38:32 +00:00