Commit Graph

168138 Commits

Author SHA1 Message Date
Jakub Jelinek
d7b0896b23 re PR target/89093 (C++ exception handling clobbers d8 VFP register)
PR target/89093
	* config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
	whitespace at the start of target attribute string.

	* gcc.target/aarch64/pr89093.c: New test.
	* gcc.target/aarch64/pr63304_1.c: Remove space from target string.

From-SVN: r270690
2019-04-30 14:07:27 +02:00
Jakub Jelinek
9e3501f765 gnu.ver (GLIBCXX_3.4.26): Change _Lock_policyE2 exports to _Lock_policyE[012].
* config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Change _Lock_policyE2 exports
	to _Lock_policyE[012].
	* config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.

From-SVN: r270687
2019-04-30 13:40:28 +02:00
Ramana Radhakrishnan
abb3c64e76 [Patch AArch64] Add __ARM_FEATURE_ATOMICS
This keeps coming up repeatedly and the ACLE has finally added
__ARM_FEATURE_ATOMICS for the LSE feature in GCC. This is now part of
the latest ACLE release
(https://developer.arm.com/docs/101028/latest/5-feature-test-macros)

I know it's late for GCC-9 but this is a simple macro which need not
wait  for another year.

Ok for trunk and to backport to all release branches ?

Tested with a simple build and a smoke test.

PR target/86538
* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
__ARM_FEATURE_ATOMICS

From-SVN: r270686
2019-04-30 11:22:11 +00:00
Jonathan Wakely
95767c6597 Fix filesystem::path tests
The root_path.cc test had some debugging macros left in accidentally, so
didn't FAIL correctly if an assertion failed.

The string-char8_t.cc tests didn't compile on Windows.

	* testsuite/27_io/filesystem/path/decompose/root_path.cc: Remove
	macros accidentally left in.
	* testsuite/27_io/filesystem/path/native/string-char8_t.cc: Remove
	unnecessary -lstdc++fs option. Fix test for mingw.
	* testsuite/experimental/filesystem/path/native/string-char8_t.cc:
	Fix test for mingw.

From-SVN: r270685
2019-04-30 11:39:59 +01:00
Martin Liska
0d67a51060 Refactor gimple_fold_builtin_memory_op function.
2019-04-30  Martin Liska  <mliska@suse.cz>

	* gimple-fold.c (gimple_fold_builtin_memory_op): Change endp
	into built_in_function enum. Remove code for endp == 2 and
	use BUILT_IN_* constants.
	(gimple_fold_builtin): Call the function with fcode.

From-SVN: r270682
2019-04-30 09:19:41 +00:00
Martin Liska
791536baad Fix -Wenum-compare-switch warning in i386.c.
2019-04-30  Martin Liska  <mliska@suse.cz>

	* config/i386/i386.c (ix86_builtin_reciprocal): Cast
	DECL_FUNCTION_CODE into ix86_builtins enum before
	the switch statement.

From-SVN: r270681
2019-04-30 09:16:36 +00:00
Jakub Jelinek
ae8f39886b re PR tree-optimization/89475 (Teach ccp about __builtin_bswap{16,32,64})
PR tree-optimization/89475
	* tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
	calls.

	* gcc.dg/tree-ssa/pr89475.c: New test.

From-SVN: r270680
2019-04-30 11:07:28 +02:00
Jakub Jelinek
379637d5e2 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
From-SVN: r270678
2019-04-30 10:55:12 +02:00
Martin Liska
3f58b66d6b Wrap a string with _ for translation (PR translation/90274).
2019-04-30  Martin Liska  <mliska@suse.cz>

	PR translation/90274
	* opts.c (print_filtered_help): Wrap string in _(...).

From-SVN: r270675
2019-04-30 08:33:29 +00:00
Bin Cheng
8c3ce59e2b re PR tree-optimization/90240 (ICE in try_improve_iv_set, at tree-ssa-loop-ivopts.c:6694)
PR tree-optimization/90240
	Revert:
	2019-04-23  Bin Cheng  <bin.cheng@linux.alibaba.com>

	PR tree-optimization/90078
	* tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
	checks for infinite_cost overflow.

	* gcc/testsuite/g++.dg/tree-ssa/pr90078.C: New test.

From-SVN: r270673
2019-04-30 03:00:59 +00:00
GCC Administrator
0c0b2104b4 Daily bump.
From-SVN: r270672
2019-04-30 00:16:15 +00:00
Joseph Myers
63b805aba9 * sv.po: Update.
From-SVN: r270667
2019-04-29 23:45:23 +01:00
Joseph Myers
4fb7c86dd0 * gcc.pot: Regenerate.
From-SVN: r270665
2019-04-29 23:27:52 +01:00
Ben L
956bea2cd6 cp-demangle.c (d_expression_1): Don't peek ahead unless the current char is valid.
* cp-demangle.c (d_expression_1): Don't peek ahead unless the current
	char is valid.
	* testsuite/demangle-expected: Add testcase.

From-SVN: r270664
2019-04-29 16:19:01 -06:00
Jeff Law
7fb1d0214e * passes.def: Move -Wrestrict pass after copy propagation.
From-SVN: r270662
2019-04-29 14:21:57 -06:00
Maya Rashish
856f73d137 config.gcc (default_gnu_indirect_function): Default to yes for arm*-*-netbsd*...
* config.gcc (default_gnu_indirect_function): Default to yes
	for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*,
	sparc*-*-netbsd*, x86_64-*-netbsd*

From-SVN: r270661
2019-04-29 13:48:52 -06:00
Vladislav Ivanishin
5c1b3334a2 tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases where cond2 is NE_EXPR.
* tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases
	where cond2 is NE_EXPR.
	(is_value_included_in): Update comment.

        * gcc.dg/uninit-25-gimple.c: New test.
        * gcc.dg/uninit-25.c: New test.
        * gcc.dg/uninit-26.c: New test.
        * gcc.dg/uninit-27-gimple.c: New test.

From-SVN: r270660
2019-04-29 13:47:17 -06:00
Michael K. Darling
95c33590c8 gnatvsn.ads: Bump Library_Version to 10.
2019-04-29  Michael K. Darling  <darlingm@gmail.com>

        * gnatvsn.ads: Bump Library_Version to 10.

From-SVN: r270659
2019-04-29 13:31:24 -06:00
Ian Lance Taylor
65937ccf0b compiler: avoid crash on real declaration of type with existing method
This avoids a compiler crash on invalid code.
    
    Fixes https://gcc.gnu.org/PR90272
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/174377

From-SVN: r270658
2019-04-29 18:56:24 +00:00
Richard Biener
1978e62d47 re PR tree-optimization/90278 (ICE: verify_gimple failed (error: statement marked for throw, but doesn't))
2019-04-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90278
	* tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
	EH on comparison simplification.

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

From-SVN: r270657
2019-04-29 17:53:36 +00:00
Jason Merrill
d407e7f53b PR c++/82081 - tail call optimization breaks noexcept
If a noexcept function calls a function that might throw, doing the tail
call optimization means that an exception thrown in the called function
will propagate out, breaking the noexcept specification.  So we need to
prevent the optimization in that case.

	* tree-tailcall.c (find_tail_calls): Don't turn a call from a
	nothrow function to a might-throw function into a tail call.

From-SVN: r270656
2019-04-29 13:27:13 -04:00
Nathan Sidwell
348dd384c8 [C++ PATCH] some cleanups
https://gcc.gnu.org/ml/gcc-patches/2019-04/msg01174.html
	* decl.c (duplicate_decls): Add whitespace, move comments into
	conditional blocks.
	* method.c (explain_implicit_non_constexpr): Refactor.
	* pt.c (check_explicit_specialization): Fix indentation.
	* semantics.c (process_outer_var_ref): Reformat.
	(finish_id_expression_1): Use STRIP_TEMPLATE.

From-SVN: r270655
2019-04-29 15:22:41 +00:00
Richard Sandiford
074084767c Remove DDR_INNER_LOOP
...since it was only ever zero in practice.  I wondered about making
it a symbolic constant instead, but it didn't seem worth it when
there was only one user (and that user was part of the internal
tree-data-ref.c implementation).

2019-04-29  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	* tree-data-ref.h (data_dependence_relation::inner_loop): Delete.
	(DDR_INNER_LOOP): Likewise.
	* tree-data-ref.c (dump_data_dependence_relation): Update accordingly.
	(initialize_data_dependence_relation): Likewise.
	(insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP.

From-SVN: r270654
2019-04-29 15:17:01 +00:00
Jakub Jelinek
1008df90cc re PR rtl-optimization/90257 (8% degradation on cpu2006 403.gcc starting with r270484)
PR rtl-optimization/90257
	* cfgrtl.c (flow_active_insn_p): Return true for USE of a function
	return value.

	Revert the revert:
	2019-04-21  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/90178
	Revert:
	2018-11-21  Uros Bizjak  <ubizjak@gmail.com>

	Revert the revert:
	2013-10-26  Vladimir Makarov  <vmakarov@redhat.com>

	Revert:
	2013-10-25  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-spills.c (lra_final_code_change): Remove useless move insns.

From-SVN: r270653
2019-04-29 16:18:55 +02:00
Richard Biener
4e29671cb2 tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER} rhs issue a reset.
2019-04-29  Richard Biener  <rguenther@suse.de>

	* tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
	rhs issue a reset.

From-SVN: r270652
2019-04-29 13:54:58 +00:00
Jonathan Wakely
f373ad68cf Adjust doxygen comment for std::generate_n
* include/bits/stl_algo.h (generate_n): Adjust doxygen comment.

From-SVN: r270651
2019-04-29 14:31:50 +01:00
Jonathan Wakely
81912fb385 Use _GLIBCXX_NOEXCEPT_IF for std::swap
* include/bits/move.h (swap(T&, T&), swap(T (&)[N], T (&)[N])): Use
	_GLIBCXX_NOEXCEPT_IF to simplify declarations.

From-SVN: r270650
2019-04-29 14:25:38 +01:00
Jonathan Wakely
7bbdd8d13e PR libstdc++/71312 Increase alignment of pooled mutexes
PR libstdc++/71312
	* src/c++11/shared_ptr.cc (get_mutex): Align pool mutexes to 64 bytes.

From-SVN: r270649
2019-04-29 13:55:29 +01:00
Jonathan Wakely
ad1f468736 Add nodiscard to std::vector<bool>::empty()
We already added it to the std::vector primary template.

	* include/bits/stl_bvector.h (vector<bool>::empty()): Add nodiscard
	attribute.

From-SVN: r270648
2019-04-29 13:35:24 +01:00
Jonathan Wakely
82b6276fb3 Remove unused std::_Iter_base class template
This class template has been unused since __gnu_debug::__base was
removed in r263786.

	* include/bits/stl_iterator_base_types.h (_Iter_base): Remove unused
	class template and partial specialization.

From-SVN: r270647
2019-04-29 13:12:46 +01:00
Jonathan Wakely
846541dd15 PR libstdc++/87982 Fix generate_n and fill_n use of _Size parameter
The standard only requires that _Size can be converted to an integral
type, not that it can be used for arithmetic. Add a new set of
__size_to_integer helper functions to do the conversion (which will be
ambiguous if there is no one conversion that is better than any others).

Also add tests for DR 426 which requires these algorithms and search_n
to handle negative values of n.

	PR libstdc++/87982
	* include/bits/stl_algo.h (generate_n): Convert _Size parameter to
	an integral type.
	* include/bits/stl_algobase.h (__size_to_integer): New overloaded
	functions to convert a value to an integral type.
	(__fill_n_a, __fill_n_a): Assert that __n is already an integral type.
	(fill_n): Convert _Size parameter to an integral type.
	* testsuite/25_algorithms/fill_n/dr426.cc: New test.
	* testsuite/25_algorithms/generate_n/87982.cc: New test.
	* testsuite/25_algorithms/generate_n/dr426.cc: New test.

From-SVN: r270646
2019-04-29 13:12:43 +01:00
Iain Buclaw
ca0ddb398f libphobos: Fix multilib builds for s390x-linux-gnu
Merges upstream druntime aab44549, phobos 3dc363783.

Reviewed-on: https://github.com/dlang/druntime/pull/2590
	     https://github.com/dlang/phobos/pull/6983

libphobos/ChangeLog:

2019-04-28  Iain Buclaw  <ibuclaw@gdcproject.org>

	* libdruntime/gcc/sections/elf_shared.d (IBMZ_Any): Define when
	version S390 or SystemZ.  Use condition instead of SystemZ.
	(getTLSRange): Return null on GNU_EMUTLS targets.

From-SVN: r270639
2019-04-29 05:42:48 +00:00
Iain Buclaw
be79ec008e libphobos: Backport minimal MinGW support patches.
Merges upstream druntime 1ca80e4e, phobos b5e9661a0.

Reviewed-on: https://github.com/dlang/druntime/pull/2587
	     https://github.com/dlang/phobos/pull/6981

From-SVN: r270638
2019-04-29 05:42:36 +00:00
GCC Administrator
7d5010ee7a Daily bump.
From-SVN: r270637
2019-04-29 00:16:17 +00:00
Jonathan Wakely
ecc7ed8aae Fix ChangeLog format
From-SVN: r270633
2019-04-28 22:38:19 +01:00
Nina Dinka Ranns
ec087ba34e Adding noexcept-specification on tuple constructors (LWG 2899)
2019-04-28 Nina Dinka Ranns <dinka.ranns@gmail.com>

* libstdc++-v3/include/std/tuple:
(tuple()): Add noexcept-specification.
(tuple(const _Elements&...)): Likewise
(tuple(_UElements&&...)): Likewise
(tuple(const tuple<_UElements...>&)): Likewise
(tuple(tuple<_UElements...>&&)): Likewise
(tuple(const _T1&, const _T2&)): Likewise
(tuple(_U1&&, _U2&&)): Likewise
(tuple(const tuple<_U1, _U2>&): Likewise
(tuple(tuple<_U1, _U2>&&): Likewise
(tuple(const pair<_U1, _U2>&): Likewise
(tuple(pair<_U1, _U2>&&): Likewise
* libstdc++-v3/testsuite/20_util/tuple/cons/noexcept_specs.cc: New

From-SVN: r270632
2019-04-29 00:17:50 +03:00
GCC Administrator
b9a5a80c53 Daily bump.
From-SVN: r270630
2019-04-28 00:16:20 +00:00
Jakub Jelinek
a5d1cfeaf2 re PR c++/90173 (ICE: Segmentation fault (in strip_declarator_types))
PR c++/90173
	* g++.dg/cpp1z/class-deduction66.C: Use dg-do compile instead of
	dg-do run.

From-SVN: r270626
2019-04-27 23:56:17 +02:00
Iain Buclaw
cf0b6451a9 [netbsd] d: Fix build failures on sparc*-netbsd
gcc/ChangeLog:

2019-04-27  Iain Buclaw  <ibuclaw@gdcproject.org>

	* config/netbsd-d.c: Include memmodel.h.  Remove unused tree.h,
	varasm.h, and netbsd-protos.h.

From-SVN: r270625
2019-04-27 16:52:26 +00:00
Marc Glisse
2b326d53c2 Use __restrict for __relocate_object_a
2019-04-27  Marc Glisse  <marc.glisse@inria.fr>

	PR libstdc++/87106
	* include/bits/stl_uninitialized.h (__relocate_object_a): Mark the
	arguments with __restrict.

From-SVN: r270624
2019-04-27 14:09:20 +00:00
Uros Bizjak
f8b906a2de re PR target/89261 (ix86_data_alignment has wrong argument type)
PR target/89261
	* config/i386/i386-protos.h (ix86_data_alignment): Change
	the second argument type to unsigned int.
	* config/i386/i386.c (ix86_data_alignment): Change "align"
	argument type to unsigned int.

testsuite/ChangeLog:

	PR target/89261
	* gcc.target/i386/pr89261.c: New test.

From-SVN: r270623
2019-04-27 15:38:19 +02:00
Martin Liska
23ab635042 Add missing target options (PR middle-end/90258).
2019-04-27  Martin Liska  <mliska@suse.cz>

	PR middle-end/90258
	* opt-suggestions.c (option_proposer::build_option_suggestions):
	When get_valid_option_values returns empty values, add the
	misspelling candidate.
2019-04-27  Martin Liska  <mliska@suse.cz>

	PR middle-end/90258
	* gcc.dg/completion-5.c: New test.
	* gcc.target/i386/spellcheck-options-5.c: New test.

From-SVN: r270622
2019-04-27 06:33:29 +00:00
Jim Wilson
5117550700 RISC-V: Promode modes of constant loads for store insns.
This improves optimization of code storing constants to memory.  Given this
testcase:
    void sub1 (int *a, long long *b) { *a = 1; *b = 1; }
an unpatched rv64 compiler emits two li instructions, one for an SImode pseudo
and one for a DImode pseudo.  With the patch, we get a single DImode li insn.

	gcc/
	* config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
	parameter.
	* config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
	Pass orig_mode to riscv_build_integer.
	(riscv_split_integer): Pass mode to riscv_move_integer.
	(riscv_legitimize_const_move): Likewise.
	(riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
	promoted_mode.  Replace force_reg call with code to load constant into
	promoted reg and then subreg it for the store.
	* config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
	riscv_move_integer.

	gcc/testsuite/
	* gcc.target/riscv/load-immediate.c: New.

From-SVN: r270621
2019-04-26 17:46:20 -07:00
GCC Administrator
0d056d03a6 Daily bump.
From-SVN: r270620
2019-04-27 00:16:32 +00:00
Ian Lance Taylor
8d266165b9 runtime: fix TestPhysPageSize on AIX
AIX doesn't allow to mmap an address range which is already mmap.
    Therefore, once the region has been allocated, it must munmap before
    being able to play with it.
    The corresponding Go Toolchain patch is CL 174059.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/174138

From-SVN: r270615
2019-04-26 17:20:55 +00:00
H.J. Lu
ca2efef75d x32: Update baseline_symbols.txt
* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.

From-SVN: r270613
2019-04-26 09:53:54 -07:00
Jonathan Wakely
57e617640d PR c++/90243 - orphaned note in uninstantiated constexpr function
gcc/cp:

	PR c++/90243 - orphaned note in uninstantiated constexpr function
	* decl.c (check_for_uninitialized_const_var): Suppress notes if no
	error was shown.

gcc/testsuite:

	PR c++/90243
	* g++.dg/diagnostic/pr90243.C: New test.

From-SVN: r270610
2019-04-26 17:33:02 +01:00
Jonathan Wakely
700e6332a7 Remove redundant step in experimental::filesystem::path construction
* include/experimental/bits/fs_path.h
	(path::_S_convert_loc<_InputIterator>): Create const std::string to
	avoid redundant call to _S_convert_loc with non-const pointers.

From-SVN: r270608
2019-04-26 16:58:47 +01:00
Eugene Sharygin
224d9de0e8 gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with corrupt codes.
* gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
	corrupt codes.

From-SVN: r270607
2019-04-26 09:48:43 -06:00
Jakub Jelinek
f179b64e3a re PR debug/90197 (Cannot step through simple loop at -O -g)
PR debug/90197
	* c-tree.h (c_finish_loop): Add 2 further location_t arguments.
	* c-parser.c (c_parser_while_statement): Adjust c_finish_loop caller.
	(c_parser_do_statement): Likewise.
	(c_parser_for_statement): Likewise.  Formatting fixes.
	* c-typeck.c (c_finish_loop): Add COND_LOCUS and INCR_LOCUS arguments,
	emit DEBUG_BEGIN_STMTs if needed.

From-SVN: r270606
2019-04-26 17:38:33 +02:00