Commit Graph

139335 Commits

Author SHA1 Message Date
Tom de Vries
8a36714a1b Add parloops-exit-first-loop-alt-{5,6,7}.c
2015-06-30  Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/parloops-exit-first-loop-alt-5.c: New test.
	* gcc.dg/parloops-exit-first-loop-alt-6.c: New test.
	* gcc.dg/parloops-exit-first-loop-alt-7.c: New test.
	* gcc.dg/parloops-exit-first-loop-alt.c: Update comment.

	* testsuite/libgomp.c/parloops-exit-first-loop-alt-5.c: New test.
	* testsuite/libgomp.c/parloops-exit-first-loop-alt-6.c: New test.
	* testsuite/libgomp.c/parloops-exit-first-loop-alt-7.c: New test.
	* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Update comment.

From-SVN: r225172
2015-06-30 11:00:32 +00:00
Marek Polacek
a4398a300e fold-const.c (fold_binary_loc): Move ~X | X folding ...
* fold-const.c (fold_binary_loc): Move ~X | X folding ...
	* match.pd: ... here.

	* gcc.dg/fold-ior-2.c: New test.

From-SVN: r225164
2015-06-30 09:02:00 +00:00
Richard Biener
582554e3bc target-insns.def (canonicalize_funcptr_for_compare): Add.
2015-06-30  Richard Biener  <rguenther@suse.de>

	* target-insns.def (canonicalize_funcptr_for_compare): Add.
	* fold-const.c (build_range_check): Replace uses of
	HAVE_canonicalize_funcptr_for_compare.
	(fold_widened_comparison): Likewise.
	(fold_sign_changed_comparison): Likewise.
	* dojump.c: Include "target.h".
	(do_compare_and_jump): Replace uses of
	HAVE_canonicalize_funcptr_for_compare and
	gen_canonicalize_funcptr_for_compare.
	* expr.c (do_store_flag): Likewise.

From-SVN: r225163
2015-06-30 08:52:48 +00:00
Tom de Vries
4f75d60893 Use max_loop_iterations in transform_to_exit_first_loop_alt
2015-06-30  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/66652
	* tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
	max_loop_iterations to determine if nit + 1 overflows.

	* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (f): Rewrite
	using restrict pointers.
	(main): Add arguments to calls to f.
	* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.

	* gcc.dg/parloops-exit-first-loop-alt-pr66652.c: New test.
	* gcc.dg/parloops-exit-first-loop-alt-3.c (f):  Rewrite using restrict
	pointers.
	* gcc.dg/parloops-exit-first-loop-alt.c: Same.

From-SVN: r225162
2015-06-30 08:35:57 +00:00
Richard Biener
4fe6517247 tree-vrp.c (register_edge_assert_for_2): Also register asserts for dominating conversion results.
2015-06-30  Richard Biener  <rguenther@suse.de>

	* tree-vrp.c (register_edge_assert_for_2): Also register
	asserts for dominating conversion results.

From-SVN: r225161
2015-06-30 08:35:30 +00:00
Uros Bizjak
dc6bcf52eb lex.c (search_line_sse42): New main loop using asm flag outputs.
* lex.c (search_line_sse42) [__GCC_ASM_FLAG_OUTPUTS__]: New main
	loop using asm flag outputs.

From-SVN: r225160
2015-06-30 10:26:57 +02:00
Bin Cheng
7e6a6f0d6e tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name field in struct iv.
* tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
	field in struct iv.

From-SVN: r225159
2015-06-30 02:39:54 +00:00
Jack Howarth
005f915e16 re PR target/66509 (the new clang-based assembler in Xcode 7 on 10.11 fails on the libjava/java/lang/reflect/natArray.cc file from FSF gcc 5.1 at -m32)
PR target/66509
	* configure.ac: Fix filds and fildq test for 64-bit.
	* configure: Regenerated.

From-SVN: r225158
2015-06-30 02:10:43 +00:00
GCC Administrator
b54a218913 Daily bump.
From-SVN: r225157
2015-06-30 00:16:13 +00:00
Nathan Sidwell
517665b38b nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
* config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
	(nvptx_reorg): Here.  Keep the non-subreg pieces.

From-SVN: r225154
2015-06-29 23:23:10 +00:00
Paolo Carlini
71506d4107 re PR c++/65977 (Constexpr should be allowed in declaration of friend template specialization)
/cp
2015-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/65977
	* decl.c (grokfndecl): Allow constexpr declarations of friend
	template specializations.

/testsuite
2015-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/65977
	* g++.dg/cpp0x/constexpr-friend-3.C: New.
	* g++.dg/cpp0x/constexpr-friend-2.C: Adjust.

From-SVN: r225148
2015-06-29 22:02:08 +00:00
H.J. Lu
9b552079a1 Use PIE_SPEC/NO_PIE_SPEC for crtend.o/crtendS.o
We need to link with crtend.o and crtendS.o properly for GCC configured
to generate PIE by default.

	* config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
	PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.

From-SVN: r225144
2015-06-29 13:50:57 -07:00
François Dumont
24167c42e6 stl_iterator_base_types.h (_Iter_base): Limit definition to pre-C++11 mode.
2015-06-29  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/stl_iterator_base_types.h (_Iter_base): Limit definition
	to pre-C++11 mode.
	* include/debug/functions.h
	(__gnu_debug::__valid_range, __gnu_debug::__base): Move...
	* include/debug/safe_iterator.h
	(__gnu_debug::_Sequence_traits): New.
	(__gnu_debug::__get_distance_from_begin): New.
	(__gnu_debug::__get_distance_to_end): New.
	(__gnu_debug::_Safe_iterator<>::_M_valid_range): Expose iterator range
	distance information. Add optional check_dereferenceable parameter,
	default true.
	(__gnu_debug::_Distance_precision, __gnu_debug::__get_distance): Move
	default definition...
	(__gnu_debug::__get_distance): New overload for _Safe_iterator.
	(__gnu_debug::__unsafe): Likewise.
	* include/debug/helper_functions.h: ...here. New.
	(__gnu_debug::__unsafe): New helper function to remove safe iterator
	layer.
	* include/debug/stl_iterator.h: New. Include latter.
	* include/bits/stl_iterator.h: Include latter in debug mode.
	* include/debug/stl_iterator.tcc: Adapt.
	* include/debug/safe_local_iterator.h (__gnu_debug::__get_distance): Add
	overload for _Safe_local_iterator.
	(__gnu_debug::__unsafe): Likewise.
	* include/debug/safe_local_iterator.tcc: Adapt.
	* include/debug/macros.h (__glibcxx_check_valid_range2): New.
	(__glibcxx_check_insert_range): Add _Dist parameter.
	(__glibcxx_check_insert_range_after): Likewise.
	(__glibcxx_check_string, __glibcxx_check_string_len): Implement using
	_GLIBCXX_DEBUG_PEDASSERT.
	* include/debug/deque (deque<>::assign): Remove iterator debug layer
	when possible.
	(deque<>::insert): Likewise.
	* include/debug/forward_list (__glibcxx_check_valid_fl_range): New.
	(forward_list<>::splice_after): Use latter.
	(forward_list<>::assign): Remove iterator debug layer when possible.
	(forward_list<>::insert_after): Likewise.
	(__gnu_debug::_Sequence_traits<>): Partial specialization.
	* include/debug/list (list<>::assign): Remove iterator debug layer when
	possible.
	(list<>::insert): Likewise.
	[__gnu_debug::_Sequence_traits<>]: Partial specialization pre C++11 ABI.
	* include/debug/map.h (map<>::insert): Remove iterator debug layer when
	possible.
	* include/debug/multimap.h (multimap<>::insert): Likewise.
	* include/debug/set.h (set<>::insert): Likewise.
	* include/debug/multiset.h (multiset<>::insert): Likewise.
	* include/debug/string (basic_string<>::append, basic_string<>::assign,
	basic_string<>::insert, basic_string<>::replace): Likewise.
	* include/debug/unordered_map
	(unordered_map<>::insert, unordered_multimap<>::insert): Likewise.
	* include/debug/unordered_set
	(unordered_set<>::insert, unordered_multiset<>insert): Likewise.
	* include/debug/vector
	(vector<>::assign, vector<>::insert): Likewise.
	* include/Makefile.am: Add new debug headers.
	* include/Makefile.in: Regenerate.

From-SVN: r225143
2015-06-29 20:17:56 +00:00
Eric Botcazou
755c71faf3 re PR ada/63310 (Ada bootstrap error with -fcompare-debug)
PR ada/63310
	* gcc-interface/utils.c (gnat_write_global_declarations): Always
	build the dummy global variable if code was generated.

From-SVN: r225139
2015-06-29 17:45:34 +00:00
Uros Bizjak
94f11af109 i386.md (*jcc_1): Use %!
* config/i386/i386.md (*jcc_1): Use %! in asm template.
	Set attribute "length_nobnd" instead of "length".
	(*jcc_2): Ditto.
	(jump): Ditto.
	(*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.

From-SVN: r225138
2015-06-29 19:18:17 +02:00
Sandra Loosemore
030b9d9059 nios2.c (nios2_delegitimize_address): Make assert less restrictive.
2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/nios2/nios2.c (nios2_delegitimize_address): Make
	assert less restrictive.

From-SVN: r225137
2015-06-29 13:01:52 -04:00
Manuel López-Ibáñez
da2e71c999 Wunused-parameter warnings are given from cgraph::finalize_function,
which is the middle-end. This is an oddity compared to other
-Wunused-* warnings. Moreover, Fortran has its own definition of
-Wunused-parameter that conflicts with the middle-end definition.

This patch moves the middle-end part of Wunused-parameter to the C/C++
FEs. I'm not sure if other FEs expected this warning to work. If so,
they do not seem to test for it. Ada, for example, explicitly disables
it.

gcc/ChangeLog:

2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/66605
	* cgraphunit.c (cgraph_node::finalize_function): Do not call
	do_warn_unused_parameter.
	* function.c (do_warn_unused_parameter): Move from here.
	* function.h (do_warn_unused_parameter): Do not declare.

gcc/c-family/ChangeLog:

2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/66605
	* c-common.c (do_warn_unused_parameter): Move here.
	* c-common.h (do_warn_unused_parameter): Declare.

gcc/ada/ChangeLog:

2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/66605
	* gcc-interface/misc.c (gnat_post_options): No need to disable
	warn_unused_parameter anymore.

gcc/cp/ChangeLog:

2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/66605
	* decl.c (finish_function): Call do_warn_unused_parameter.

gcc/testsuite/ChangeLog:

2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/66605
	* gfortran.dg/wunused-parameter.f90: New test.

gcc/c/ChangeLog:

2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/66605
	* c-decl.c (finish_function): Call do_warn_unused_parameter.

From-SVN: r225135
2015-06-29 16:25:26 +00:00
Matthew Wahab
77f3f9bf9e re PR target/65697 (__atomic memory barriers not strong enough for __sync builtins)
2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/65697
	* gcc.target/arm/armv-sync-comp-swap.c: New.
	* gcc.target/arm/armv-sync-op-acquire.c: New.
	* gcc.target/arm/armv-sync-op-full.c: New.
	* gcc.target/arm/armv-sync-op-release.c: New.

From-SVN: r225134
2015-06-29 16:12:12 +00:00
Matthew Wahab
a96297a280 re PR target/65697 (__atomic memory barriers not strong enough for __sync builtins)
2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/65697
	* config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
	initial acquire barrier with final barrier.

From-SVN: r225133
2015-06-29 16:09:10 +00:00
Matthew Wahab
6b3a1ce9f4 re PR target/65697 (__atomic memory barriers not strong enough for __sync builtins)
2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/65697
	* config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
	initial acquire barrier with final barrier.

From-SVN: r225132
2015-06-29 16:03:34 +00:00
Joseph Myers
e85f8bb8b3 * sv.po: Update.
From-SVN: r225130
2015-06-29 16:58:13 +01:00
Richard Henderson
f767f58360 i386: Implement asm flag outputs
* config/i386/constraints.md (Bf): New constraint.
        * config/i386/i386-c.c (ix86_target_macros): Define
        __GCC_ASM_FLAG_OUTPUTS__.
        * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
        as flags outputs.
        * doc/extend.texi (FlagOutputOperands): Document them.
testsuite/
        * gcc.target/i386/asm-flag-1.c: New.
        * gcc.target/i386/asm-flag-2.c: New.
        * gcc.target/i386/asm-flag-3.c: New.
        * gcc.target/i386/asm-flag-4.c: New.
        * gcc.target/i386/asm-flag-5.c: New.

From-SVN: r225122
2015-06-29 07:35:19 -07:00
Jiong Wang
8fd17b982d [AArch64] Generalize TLSLE macro and pattern names
2015-06-29  Jiong Wang  <jiong.wang@arm.com>

	* config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
	* config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
	unspec name.
	(tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
	* config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
	SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
	(aarch64_symbol_context): Ditto.
	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
	and use new pattern name.
	(aarch64_expand_mov_immediate): Ditto.
	(aarch64_print_operand): Ditto.
	(aarch64_classify_tls_symbol): Ditto.

From-SVN: r225121
2015-06-29 14:20:50 +00:00
Marek Polacek
f461569a23 fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
* fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
	* match.pd: ... pattern here.

Co-Authored-By: Marc Glisse <marc.glisse@inria.fr>

From-SVN: r225120
2015-06-29 14:17:13 +00:00
Tom de Vries
fd7b3ef52a Simplify structure try_transform_to_exit_first_loop_alt
2015-06-29  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
	function structure.

From-SVN: r225119
2015-06-29 13:53:32 +00:00
Matthew Wahab
1f8c015bb4 invoke.texi (Aarch64 Options, -march): Split out arch and feature description...
2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>

	* doc/invoke.texi (Aarch64 Options, -march): Split out arch and
	feature description, split out the native option, add a link to
	the feature documentation, rearrange and slightly rewrite text.
	(Aarch64 options, -mcpu): Likewise.
	(Aarch64 options, Feature Modifiers): Add an anchor.  Mention
	+rdma implies Adv. SIMD.

From-SVN: r225118
2015-06-29 13:50:42 +00:00
Marek Polacek
b155cfd928 re PR c/66322 (Linus Torvalds: -Wswitch-bool produces dubious warnings, fails to notice really bad things)
PR c/66322
	* c-common.c (check_case_bounds): Add bool * parameter.  Set
	OUTSIDE_RANGE_P.
	(c_add_case_label): Add bool * parameter.  Pass it down to
	check_case_bounds.
	(c_do_switch_warnings): Add bool parameters.  Implement -Wswitch-bool
	warning here.
	* c-common.h (c_add_case_label, c_do_switch_warnings): Update
	declarations.

	* c-typeck.c (struct c_switch): Add BOOL_COND_P and OUTSIDE_RANGE_P.
	(c_start_case): Set BOOL_COND_P and OUTSIDE_RANGE_P.  Don't warn
	about -Wswitch-bool here.
	(do_case): Update c_add_case_label call.
	(c_finish_case): Update c_do_switch_warnings call.

	* decl.c (struct cp_switch): Add OUTSIDE_RANGE_P.
	(push_switch): Set OUTSIDE_RANGE_P.
	(pop_switch): Update c_do_switch_warnings call.
	(finish_case_label): Update c_add_case_label call.
	* semantics.c (finish_switch_cond): Don't warn about -Wswitch-bool
	here.

	* function.c (stack_protect_epilogue): Remove a cast to int.
	* doc/invoke.texi: Update -Wswitch-bool description.

	* c-c++-common/pr60439.c: Add dg-prune-output and add switch cases.
	* c-c++-common/pr66322.c: New test.
	* g++.dg/eh/scope1.C: Remove dg-warning.

From-SVN: r225116
2015-06-29 13:12:44 +00:00
Richard Biener
99e943a2be genmatch.c (add_operator): Treat ADDR_EXPR as atom.
2015-06-29  Richard Biener  <rguenther@suse.de>

	* genmatch.c (add_operator): Treat ADDR_EXPR as atom.
	* fold-const.c (fold_binary_loc): Move &A - &B simplification
	via ptr_difference_const ...
	* match.pd: ... here.
	When matching (X ^ Y) == Y also match with swapped operands.

From-SVN: r225115
2015-06-29 11:28:17 +00:00
Richard Biener
2dcaddb8d7 lto-streamer.h (LTO_major_version): Bump to 5.
2015-06-29  Richard Biener  <rguenther@suse.de>

	* lto-streamer.h (LTO_major_version): Bump to 5.

From-SVN: r225113
2015-06-29 08:44:56 +00:00
Richard Biener
d90f84404c re PR tree-optimization/66677 (ICE: in vect_transform_stmt, at tree-vect-stmts.c:7626)
2015-06-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66677
	* tree-vect-stmts.c (vect_transform_stmt): Make assert about
	STMT_VINFO_VEC_STMT clobbering less strict.

	* gcc.dg/vect/pr66677.c: New testcase.

From-SVN: r225112
2015-06-29 07:30:47 +00:00
GCC Administrator
04ab3d3aeb Daily bump.
From-SVN: r225111
2015-06-29 00:16:12 +00:00
Kugan Vivekanandarajah
c44b2a4fb3 re PR tree-optimization/64130 (vrp: handle non zero constant divided by range cannot be zero.)
gcc/ChangeLog:

2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR middle-end/64130
	* tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
	division, compute max and min when value ranges for dividend and
	divisor are available.


gcc/testsuite/ChangeLog:

2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR middle-end/64130
	* gcc.dg/tree-ssa/pr64130.c: New test.

From-SVN: r225108
2015-06-29 00:15:41 +00:00
Uros Bizjak
1d1fe91a75 * Add forgotten ChangeLog entry.
From-SVN: r225107
2015-06-28 23:28:07 +02:00
Chung-Lin Tang
17369fbf51 regrename.h (regrename_do_replace): Change to return bool.
2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
	    Sandra Loosemore <sandra@codesourcery.com>

	gcc/
	* regrename.h (regrename_do_replace): Change to return bool.
	* regrename.c (rename_chains): Check return value of
	regname_do_replace.
	(regrename_do_replace): Re-validate the modified insns and
	return bool status.
	* config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
	Update to match rename_chains changes.
	* config/c6x/c6x.c (try_rename_operands): Assert that
	regrename_do_replace returns true.

Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>

From-SVN: r225106
2015-06-28 16:46:01 -04:00
Uros Bizjak
2aee355b5a i386.md (<mode>_ldx): Do not zero-extend non-Pmode operand 2 here.
* config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
	operand 2 here.  Use copy_addr_to_reg to copy non-index
	register operand 2 to a temporary.
	(<mode>_stx): Ditto for operand 1.
	(*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
	* config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
	(ix86_store_bounds): Ditto.

From-SVN: r225105
2015-06-28 21:38:56 +02:00
GCC Administrator
cb78dd578a Daily bump.
From-SVN: r225103
2015-06-28 00:16:12 +00:00
Patrick Palka
e8bfc7f817 Make debug_tree() print the length of a TREE_VEC
gcc/ChangeLog:

	* print-tree.c (print_node) [TREE_VEC]: Print its length.

From-SVN: r225100
2015-06-27 18:43:11 +00:00
Marek Polacek
b55b02ead4 call.c: Use VECTOR_TYPE_P.
* call.c: Use VECTOR_TYPE_P.
	* constexpr.c: Likewise.
	* cvt.c: Likewise.
	* decl.c: Likewise.
	* decl2.c: Likewise.
	* init.c: Likewise.
	* semantics.c: Likewise.
	* tree.c: Likewise.
	* typeck.c: Likewise.
	* typeck2.c: Likewise.

From-SVN: r225099
2015-06-27 10:40:21 +00:00
Marek Polacek
56a6f1d33f call.c (set_up_extended_ref_temp): Use VAR_P.
* call.c (set_up_extended_ref_temp): Use VAR_P.
	* class.c: Use VAR_P throughout.
	* constexpr.c (cxx_eval_constant_expression): Use VAR_P.
	* cp-array-notation.c (make_triplet_val_inv): Likewise.
	* decl.c: Use VAR_OR_FUNCTION_DECL_P or VAR_P
	throughout.
	* decl2.c: Likewise.
	* error.c (dump_decl): Use VAR_P.
	* mangle.c (decl_implicit_alias_p): Likewise.
	* parser.c: Use VAR_P throughout.
	* pt.c: Likewise.
	* semantics.c: Likewise.
	* vtable-class-hierarchy.c: Likewise.
	* tree.c (handle_abi_tag_attribute): Use VAR_OR_FUNCTION_DECL_P.

From-SVN: r225098
2015-06-27 10:39:31 +00:00
Andreas Schwab
e1cc235523 * pt.c (check_unstripped_args): Mark parameter as unused.
From-SVN: r225095
2015-06-27 08:40:34 +00:00
GCC Administrator
96aac251ab Daily bump.
From-SVN: r225093
2015-06-27 00:16:11 +00:00
Andrew MacLeod
5fa9163d3f gimple.c (gimple_call_set_fndecl): Remove.
2015-06-26  Andrew MacLeod  <amacleod@redhat.com>

	* gimple.c (gimple_call_set_fndecl): Remove.
	* gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
	build1_loc directly instead of build_fold_addr_expr_loc.

From-SVN: r225090
2015-06-26 23:30:37 +00:00
Marek Polacek
315219515d c-common.c (check_main_parameter_types): Use VECTOR_TYPE_P or VECTOR_INTEGER_TYPE_P throughout.
* c-common.c (check_main_parameter_types): Use VECTOR_TYPE_P
	or VECTOR_INTEGER_TYPE_P throughout.
	* c-gimplify.c: Likewise.

	* c-typeck.c: Use VECTOR_TYPE_P throughout.

From-SVN: r225089
2015-06-26 22:35:29 +00:00
Jason Merrill
e0ff153d39 re PR c++/66216 (Defaulted Operators and constructors not working with aligned attribute)
PR c++/66216
	* class.c (finish_struct): Call fixup_attribute_variants.

From-SVN: r225087
2015-06-26 17:31:13 -04:00
Jason Merrill
9579e906e2 re PR c++/66684 (ICE in merge_exception_specifiers, at cp/typeck2.c:2114)
PR c++/66684
	* typeck2.c (merge_exception_specifiers): Allow different
	noexcept-specifiers if we've had errors.

From-SVN: r225086
2015-06-26 17:31:08 -04:00
Jason Merrill
7498239e97 re PR c++/66255 (ice in retrieve_specialization)
PR c++/66255
	* pt.c (check_unstripped_args): Split out from...
	(retrieve_specialization): ...here.  Allow typedefs in the type of
	a non-type argument.

From-SVN: r225084
2015-06-26 16:33:46 -04:00
Jason Merrill
d15364ce85 re PR c++/66067 (tree check ICE: accessed elt 1 of tree_vec with 0 elts in write_template_args, at cp/mangle.c:2574)
PR c++/66067
	* mangle.c (write_nested_name): Limit TYPENAME_TYPE handling to
	TYPE_DECLs.
	* mangle.c (write_template_args): Handle 0 length TREE_VEC.

From-SVN: r225083
2015-06-26 16:33:41 -04:00
Jason Merrill
7457279bae re PR c++/66654 (ice in digest_init_r, at cp/typeck2.c:1103)
PR c++/66654
	* typeck2.c (digest_init_r): Only expect reshaping if the class is
	aggregate.

From-SVN: r225082
2015-06-26 16:33:35 -04:00
Jonathan Wakely
a2b5fdcbdb Implement N4258 (Cleaning-up noexcept in the Library rev 3)
* doc/xml/manual/intro.xml: Document LWG 2108 status.
	* include/bits/alloc_traits.h (allocator_traits::is_always_equal):
	Define.
	* include/bits/allocator.h (allocator::is_always_equal): Likewise.
	* include/bits/forward_list.h
	(forward_list::operator=(forward_list&&)): Use __bool_constant.
	(forward_list::swap(forward_list&)): Add noexcept.
	* include/bits/hashtable.h (_Hashtable::operator=(_Hashtable&&)):
	Likewise.
	(_Hashtable::swap(_Hashtable&)): Likewise.
	* include/bits/stl_deque.h (_Deque_base::_Deque_base(_Deque_base&&)):
	Use _Alloc_traits::is_always_equal.
	(deque::operator=(deque&&)): Likewise.
	(deque::_M_move_assign1(deque&&, false_type)): Add comment and use
	__bool_constant.
	(swap(deque&, deque&)): Add noexcept.
	* include/bits/stl_list.h (list::operator=(list&&)): Use
	__bool_constant.
	(swap(list&, list&)): Add noexcept.
	* include/bits/stl_map.h (map::swap(map&)): Include _Compare in
	noexcept.
	(swap(map&, map&)): Add noexcept.
	* include/bits/stl_multimap.h (multimap::swap(multimap&)): Include
	_Compare in noexcept.
	(swap(multimap&, multimap&)): Add noexcept.
	* include/bits/stl_multiset.h (multiset::swap(multiset&)): Include
	_Compare in noexcept.
	(swap(multiset&, multiset&)): Add noexcept.
	* include/bits/stl_set.h (set::swap(set&)): Include _Compare in
	noexcept.
	(swap(set&, set&)): Add noexcept.
	* include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Include
	_Compare in noexcept.
	(_Rb_tree::_Rb_tree(_Rb_tree&&, _Node_alloc_type&&)): Use
	is_always_equal.
	* include/bits/stl_vector.h (vector::operator=(vector&&)): Use
	__bool_constant.
	(swap(vector&, vector&)): Add noexcept.
	* include/bits/unordered_map.h (swap(unordered_map&, unordered_map&),
	swap(unordered_multimap& unordered_multimap&)): Add noexcept.
	* include/bits/unordered_set.h (swap(unordered_set&, unordered_set&),
	swap(unordered_multiset& unordered_multiset&)): Add noexcept.
	* include/ext/alloc_traits.h (__allocator_always_compares_equal):
	Remove.
	(__alloc_traits::_S_always_equal()): Use is_always_equal instead of
	__allocator_always_compares_equal.
	* include/ext/array_allocator.h (array_allocator::is_always_equal):
	Define.
	* include/std/scoped_allocator (__any_of, __propagate_on_copy,
	__propagate_on_move, __propagate_on_swap): Remove.
	(scoped_allocator_adaptor::propagate_on_container_copy_assignment,
	scoped_allocator_adaptor::propagate_on_container_move_assignment,
	scoped_allocator_adaptor::propagate_on_container_swap): Define with
	__and_ instead of __any_of.
	(scoped_allocator_adaptor::is_always_equal): Define.
	* testsuite/20_util/allocator_traits/members/is_always_equal.cc: New.
	* testsuite/20_util/scoped_allocator/propagation.cc: Make traits
	derive from true_type or false_type.
	* testsuite/23_containers/deque/allocator/move_assign-2.cc: Add
	is_always_equal member and remove the trait specialization.
	* testsuite/23_containers/vector/52591.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
	Likewise.

From-SVN: r225081
2015-06-26 21:10:24 +01:00
Marek Polacek
22d035258b array-notation-common.c (find_rank): Use INDIRECT_REF_P.
* array-notation-common.c (find_rank): Use INDIRECT_REF_P.
	* c-common.c (c_fully_fold_internal): Likewise.
	(c_alignof_expr): Likewise.
	* c-pretty-print.c (c_pretty_printer::postfix_expression): Likewise.
	* c-ubsan.c (ubsan_instrument_bounds): Likewise.
	* cilk.c (create_parm_list): Likewise. 

	* c-array-notation.c (fix_builtin_array_notation_fn): Use
	INDIRECT_REF_P.
	* c-typeck.c (array_to_pointer_conversion): Likewise.
	(build_unary_op): Likewise.
	(c_finish_return): Likewise.

From-SVN: r225080
2015-06-26 19:55:12 +00:00