141870 Commits

Author SHA1 Message Date
Jason Merrill
34148d68c7 * libsupc++/new: Declare sized deletes.
From-SVN: r229713
2015-11-03 11:43:54 -05:00
Richard Biener
428db0baaa tree-vect-data-refs.c (vect_analyze_data_refs): Do not collect data references here.
2015-11-03  Richard Biener  <rguenther@suse.de>

	* tree-vect-data-refs.c (vect_analyze_data_refs): Do not collect
	data references here.
	* tree-vect-loop.c: Include cgraph.h.
	(vect_analyze_loop_2): Collect data references here.
	* tree-vect-slp.c (find_bb_location): Inline ...
	(vect_slp_bb): ... here.  Renamed from vect_slp_analyze_bb.
	Factor in vect_slp_transform_bb.
	(vect_slp_transform_bb): Removed.
	(vect_slp_analyze_bb_1): Collect data references here.
	* tree-vectorizer.c (pass_slp_vectorize::execute): Call
	vect_slp_bb.
	* tree-vectorizer.h (vect_slp_bb): Declare.
	(vect_slp_analyze_bb): Remove.
	(vect_slp_transform_bb): Remove.
	(find_bb_location): Remove.
	(vect_analyze_data_refs): Remove stmt count reference parameter.

From-SVN: r229712
2015-11-03 15:59:17 +00:00
Ian Lance Taylor
7372dfe4bb mksysinfo.sh: Make sure that CLONE_NEWUSER is defined.
Reviewed-on: https://go-review.googlesource.com/16588

From-SVN: r229711
2015-11-03 15:07:47 +00:00
Paolo Carlini
32fec2c8a2 2015-11-03 Paolo Carlini <paolo.carlini@oracle.com>
* Wrap ChangeLog entries to 80 columns.

From-SVN: r229707
2015-11-03 13:41:23 +00:00
Evgeny Stupachenko
f947799989 multiple_target.c (create_dispatcher_calls): Add target check on ifunc.
2015-11-03  Evgeny Stupachenko  <evstupac@gmail.com>

gcc/
	* multiple_target.c (create_dispatcher_calls): Add target check
	on ifunc.
	(create_target_clone): Change assembler name for versioned declarations.
gcc/testsuite/
	* g++.dg/ext/mvc4.C: Add dg-require-ifunc condition.
	* gcc.target/i386/mvc5.c: Ditto.
	* gcc.target/i386/mvc7.c: Add dg-require-ifunc condition and checks on
	resolver.

From-SVN: r229706
2015-11-03 12:02:53 +00:00
Thomas Schwinge
4bf9e5a8a2 OpenACC atomic directive
gcc/c-family/
	* c-pragma.c (oacc_pragmas): Add "atomic".
	* c-pragma.h (pragma_kind): Add PRAGMA_OACC_ATOMIC.
	gcc/c/
	* c-parser.c (c_parser_omp_construct): Handle PRAGMA_OACC_ATOMIC.
	gcc/cp/
	* parser.c (cp_parser_omp_construct, cp_parser_pragma): Handle
	PRAGMA_OACC_ATOMIC.
	gcc/fortran/
	* gfortran.h (gfc_statement): Add ST_OACC_ATOMIC,
	ST_OACC_END_ATOMIC.
	(gfc_exec_op): Add EXEC_OACC_ATOMIC.
	* match.h (gfc_match_oacc_atomic): New prototype.
	* openmp.c (gfc_match_omp_atomic, gfc_match_oacc_atomic): New
	wrapper functions around...
	(gfc_match_omp_oacc_atomic): ... this new function.
	(oacc_code_to_statement, gfc_resolve_oacc_directive): Handle
	EXEC_OACC_ATOMIC.
	* parse.c (decode_oacc_directive): Handle "atomic", "end atomic".
	(case_exec_markers): Add ST_OACC_ATOMIC.
	(gfc_ascii_statement): Handle ST_OACC_ATOMIC, ST_OACC_END_ATOMIC.
	(parse_omp_atomic): Rename to...
	(parse_omp_oacc_atomic): ... this new function.  Add omp_p formal
	parameter.  Adjust all users.
	(parse_executable): Handle ST_OACC_ATOMIC.
	(is_oacc): Handle EXEC_OACC_ATOMIC.
	* resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
	EXEC_OACC_ATOMIC.
	* st.c (gfc_free_statement): Handle EXEC_OACC_ATOMIC.
	* trans-openmp.c (gfc_trans_oacc_directive): Handle
	EXEC_OACC_ATOMIC.
	* trans.c (trans_code): Handle EXEC_OACC_ATOMIC.
	gcc/
	* builtins.def (DEF_GOMP_BUILTIN): Enable for flag_openacc.
	* omp-low.c (check_omp_nesting_restrictions): Allow
	GIMPLE_OMP_ATOMIC_LOAD, GIMPLE_OMP_ATOMIC_STORE inside OpenACC
	contexts.
	gcc/testsuite/
	* c-c++-common/goacc-gomp/nesting-fail-1.c: Move "atomic" tests
	from here to...
	* c-c++-common/goacc-gomp/nesting-1.c: ... here, and expect them
	to succeed.
	libgomp/
	* testsuite/libgomp.oacc-c-c++-common/atomic_capture-1.c: New
	file.
	* testsuite/libgomp.oacc-c-c++-common/atomic_capture-2.c:
	Likewise.
	* testsuite/libgomp.oacc-c-c++-common/atomic_rw-1.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/atomic_update-1.c: Likewise.
	* testsuite/libgomp.oacc-fortran/atomic_capture-1.f90: Likewise.
	* testsuite/libgomp.oacc-fortran/atomic_rw-1.f90: New file.
	* testsuite/libgomp.oacc-fortran/atomic_update-1.f90: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/par-reduction-1.c: New file.
	* testsuite/libgomp.oacc-c-c++-common/par-reduction-2.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/worker-single-1a.c:
	Likewise.
	* testsuite/libgomp.oacc-c-c++-common/worker-single-4.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/worker-single-6.c: Likewise.

From-SVN: r229703
2015-11-03 12:28:22 +01:00
Bilyan Borisov
496ea87db6 [AARCH64][PATCH 1/3] Implementing the variants of the vmulx_ NEON intrinsic
gcc/

	* config/aarch64/aarch64-simd-builtins.def (fmulx): New.
	* config/aarch64/aarch64-simd.md (aarch64_fmulx<mode>): New.
	* config/aarch64/arm_neon.h (vmulx_f32): Rewrite to call fmulx
	builtin.
	(vmulxq_f32): Likewise.
	(vmulx_f64): New.
	(vmulxq_f64): Rewrite to call fmulx builtin.
	(vmulxs_f32): Likewise.
	(vmulxd_f64): Likewise.
	(vmulx_lane_f32): Remove.
	* config/aarch64/iterators.md (UNSPEC): Add fmulx.

gcc/testsuite/

	* gcc/testsuite/gcc.target/aarch64/simd/vmulx_f32_1.c: New.
	* gcc/testsuite/gcc.target/aarch64/simd/vmulx_f64_1.c: New.
	* gcc/testsuite/gcc.target/aarch64/simd/vmulxq_f32_1.c: New.
	* gcc/testsuite/gcc.target/aarch64/simd/vmulxq_f64_1.c: New.
	* gcc/testsuite/gcc.target/aarch64/simd/vmulxs_f32_1.c: New.
	* gcc/testsuite/gcc.target/aarch64/simd/vmulxd_f64_1.c: New.

From-SVN: r229702
2015-11-03 10:58:27 +00:00
Alan Lawrence
04f725b907 [AArch64] Fix ICE on (const_double:HF 0.0)
gcc/:

	* config/aarch64/aarch64.md (*movhf_aarch64): Use
	aarch64_reg_or_fp_zero for second operand.

gcc/testsuite/:

	* gcc.target/aarch64/fp16/set_zero_1.c: New.

From-SVN: r229701
2015-11-03 10:35:31 +00:00
Uros Bizjak
c7cf4ff97e ChangeLog: Fix whitespace.
* ChangeLog: Fix whitespace.
	* testsuite/ChangeLog: Ditto.

From-SVN: r229700
2015-11-03 09:45:55 +01:00
Ville Voutilainen
f763219373 Make the default constructors of tuple and pair conditionally explicit.
2015-11-03  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Make the default constructors of tuple and pair conditionally explicit.
	* include/std/type_traits (is_unsigned, __is_array_unknown_bounds,
	__is_default_constructible_atom, __is_default_constructible_safe,
	__is_direct_constructible_new_safe, __is_direct_constructible_ref_cast,
	__is_nt_default_constructible_impl, is_nothrow_default_constructible,
	is_nothrow_constructible, is_nothrow_assignable,
	is_trivially_constructible, is_trivially_copy_constructible,
	is_trivially_move_constructible, is_trivially_assignable,
	is_trivially_copy_assignable, is_trivially_move_assignable,
	is_trivially_destructible): Simplify.
	* include/std/type_traits (
	__do_is_implicitly_default_constructible_impl,
	__is_implicitly_default_constructible_impl,
	__is_implicitly_default_constructible_safe,
	__is_implicitly_default_constructible): New.
	* include/bits/stl_pair.h (pair::pair()): Use it.
	* include/std/tuple (tuple<_T1, _T2>::tuple): Use it.
	* include/std/tuple (_ImplicitlyDefaultConstructibleTuple): New.
	* include/std/tuple (tuple<_Types...>::tuple()): Use it.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
	* testsuite/20_util/is_implicitly_default_constructible/requirements/explicit_instantiation.cc: New.
	* testsuite/20_util/is_implicitly_default_constructible/requirements/typedefs.cc: Likewise.
	* testsuite/20_util/is_implicitly_default_constructible/value.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise.
	* testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
	* testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.

From-SVN: r229699
2015-11-03 10:41:40 +02:00
Uros Bizjak
bbe741d0e2 mvc1.c: Move to ...
* gcc.dg/mvc1.c: Move to ...
	* gcc.target/i386/mvc1.c: ... here.  Require ifunc.
	* gcc.dg/mvc2.c: Move to ...
	* gcc.target/i386/mvc2.c: ... here.
	* gcc.dg/mvc3.c: Move to ...
	* gcc.target/i386/mvc3.c: ... here.
	* gcc.dg/mvc4.c: Move to ...
	* gcc.target/i386/mvc4.c: ... here.  Require ifunc.
	* gcc.dg/mvc5.c: Move to ...
	* gcc.target/i386/mvc5.c: ... here.
	* gcc.dg/mvc6.c: Move to ...
	* gcc.target/i386/mvc6.c: ... here.
	* gcc.dg/mvc7.c: Move to ...
	* gcc.target/i386/mvc7.c: ... here.

	* g++.dg/ext/mvc1.C: Require ifunc.

From-SVN: r229697
2015-11-03 09:34:42 +01:00
Alexandre Oliva
1b223a9f34 defer mark_addressable calls during expand till the end of expand
for  gcc/ChangeLog

	* gimple-expr.c: Include hash-set.h and rtl.h.
	(mark_addressable_queue): New var.
	(mark_addressable): Factor actual marking into...
	(mark_addressable_1): ... this.  Queue it up during expand.
	(mark_addressable_2): New.
	(flush_mark_addressable_queue): New.
	* gimple-expr.h (flush_mark_addressable_queue): Declare.
	* cfgexpand.c: Include gimple-expr.h.
	(pass_expand::execute): Flush mark_addressable queue.

From-SVN: r229696
2015-11-03 03:57:07 +00:00
Alexandre Oliva
ec95cd4792 Remove ChangeLog entry unintentionally duplicated in the top level
From-SVN: r229695
2015-11-03 03:52:56 +00:00
Alexandre Oliva
067339d220 ifcombine: factor out inner block viability test
Bail out early if the inner block has side effects or is otherwise not
eligible for ifcombine.

for  gcc/ChangeLog

	* tree-ssa-ifcombine.c (tree_ssa_ifcombine_bb_1): Factor out
	bb_no_side_effects_p tests...
	(tree_ssa_ifcombine_bb): ... here.

From-SVN: r229691
2015-11-03 00:31:18 +00:00
Alexandre Oliva
828ca3d835 [PR68083] don't introduce undefined behavior in ifcombine
The ifcombine pass may move a conditional access to an uninitialized
value before the condition that ensures it is always well-defined,
thus introducing undefined behavior.  Stop it from doing so.

for  gcc/ChangeLog

	PR tree-optimization/68083
	* tree-ssa-ifcombine.c: Include tree-ssa.h.
	(bb_no_side_effects_p): Test for undefined uses too.
	* tree-ssa.c (gimple_uses_undefined_value_p): New.
	* tree-ssa.h (gimple_uses_undefined_value_p): Declare.

for  gcc/testsuite/ChangeLog

	PR tree-optimization/68083
	* gcc.dg/torture/pr68083.c: New.  From Zhendong Su.

From-SVN: r229690
2015-11-03 00:30:07 +00:00
GCC Administrator
dac7e9b819 Daily bump.
From-SVN: r229689
2015-11-03 00:16:12 +00:00
Ian Lance Taylor
09df499401 libgo: Bump version number.
Reviewed-on: https://go-review.googlesource.com/16583

From-SVN: r229686
2015-11-02 23:30:21 +00:00
Jeff Law
b89410efd1 [PATCH] Avoid more irreducible loops in FSM threader
* tree-ssa-threadupdate.c (valid_jump_thread_path): Also detect
	cases where the loop latch edge is in the middle of an FSM
	path.

	* gcc.dg/tree-ssa/ssa-thread-11.c: Verify that we do not have
	irreducible loops in the CFG.

From-SVN: r229685
2015-11-02 16:25:06 -07:00
Tom de Vries
58b2d87ea1 Rename make_restrict_var_constraints to make_param_constraints
2015-11-03  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (make_restrict_var_constraints): Rename to ...
	(make_param_constraints): ... this.  Add and handle restrict_name
	parameter.  Handle is_full_var case.
	(intra_create_variable_infos): Use make_param_constraints.

From-SVN: r229684
2015-11-02 23:23:28 +00:00
Tom de Vries
b9ae50844f Replace make_copy_constraint with make_constraint_from in make_restrict_var_constraints
2015-11-03  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (make_restrict_var_constraints): Replace
	make_copy_constraint call with make_constraint_from call.

From-SVN: r229683
2015-11-02 23:23:19 +00:00
Andreas Tobler
3b963b33ca freebsd64.h (ASM_SPEC32): Adust spec to handle PIE executables.
2015-11-02  Andreas Tobler  <andreast@gcc.gnu.org>

    * config/rs6000/freebsd64.h (ASM_SPEC32): Adust spec to handle
    PIE executables.

From-SVN: r229680
2015-11-02 22:51:25 +01:00
Ian Lance Taylor
c5f6dbf60d mksysinfo.sh: Handle TIOCGPGRP if too complex for -dump-go-spec.
Reviewed-on: https://go-review.googlesource.com/16580

From-SVN: r229676
2015-11-02 20:23:09 +00:00
Ian Lance Taylor
ec3838a735 syscall: Change raw_ioctl cmd type to uintptr.
Attempt to fix a build bug report:
    
    ../../../../libgo/go/syscall/exec_linux.go:185:37: error: integer constant overflow
       _, err1 = raw_ioctl_ptr(sys.Ctty, TIOCSPGRP, unsafe.Pointer(&pgrp))
    
    Reviewed-on: https://go-review.googlesource.com/16539

From-SVN: r229674
2015-11-02 19:58:15 +00:00
David Malcolm
525ce91010 libcpp: Improvements to description of source_location in line-map.h
libcpp/ChangeLog:
	* include/line-map.h (source_location): In the table in the
	descriptive comment, show UNKNOWN_LOCATION, BUILTINS_LOCATION,
	LINE_MAP_MAX_LOCATION_WITH_COLS, LINE_MAP_MAX_SOURCE_LOCATION.
	Add notes about ad-hoc values.

From-SVN: r229673
2015-11-02 19:47:03 +00:00
Richard Sandiford
5c1a2e639a Move constant folds for maths functions to new file
The new routines operate on the built-in enum rather than on tree decls.
The idea is to extend this to handle internal functions too, with a
combined enum for both.

The patch also moves fold_fma too, with the same prototype.  The long-term
plan is to replace FMA_EXPR with an internal function, for consistency
with the way that things like SQRT will be handled.

Tested on x86_64-linux-gnu, arm-linux-gnueabi and aarch64-linux-gnu.

gcc/
	* builtins.h (fold_fma): Move to fold-const-call.h.
	* builtins.c: Include fold-const-call.h.
	(mathfn_built_in_2): New function, split out from...
	(mathfn_built_in_1): ...here.
	(do_real_to_int_conversion, fold_const_builtin_pow)
	(fold_const_builtin_logb, fold_const_builtin_significand)
	(fold_const_builtin_load_exponent, do_mpfr_arg1, do_mpfr_arg2)
	(do_mpfr_arg3, do_mpfr_sincos, do_mpfr_bessel_n, do_mpc_arg1): Delete.
	(fold_builtin_sincos): Use fold_const_call to handle constants.
	(fold_builtin_1, fold_builtin_2, fold_builtin_3): Add explicit
	checks for ERROR_MARK.  Use fold_const_call to handle constant
	folds for math functions.
	(fold_fma): Move to fold-const-call.c.
	* fold-const.c: Include fold-const-call.h.
	* Makefile.in (OBJS): Add fold-const-call.o.
	(PLUGIN_HEADERS): Add fold-const-call.h.
	* realmpfr.h (real_from_mpfr): Allow the format to be specified
	directly.
	* realmpfr.c (real_from_mpfr): Likewise.
	* fold-const-call.h, fold-const-call.c: New files.

From-SVN: r229669
2015-11-02 16:34:16 +00:00
Julian Brown
6aadd15a41 [ARM] neon-testgen.ml typo
* config/arm/neon-testgen.ml (emit_epilogue): Remove extraneous
	brackets and semicolon.

From-SVN: r229662
2015-11-02 12:43:14 +00:00
Alan Lawrence
35e2be9fc9 Revert: tree-scalar-evolution.c: Handle LSHIFT by constant
gcc/:

		tree-scalar-evolution.c (interpret_rhs_expr): Handle some
		LSHIFT_EXPRs as equivalent MULT_EXPRs.

	gcc/testsuite/:

		gcc.dg/vect/vect-strided-shift.c: New.

From-SVN: r229660
2015-11-02 12:39:31 +00:00
Kyrylo Tkachov
f4155d214e Move gcc.target/arm/pr67929_1.c test to execute.exp
PR target/67929
	* gcc.target/arm/pr67929_1.c: Move to...
	* gcc.c-torture/execute/pr67929_1.c: ... Here.
	Remove arm-specific directives.  Add noclone, noinline
	attributes.

From-SVN: r229657
2015-11-02 12:23:36 +00:00
Thomas Schwinge
f5ce5ca118 [PR middle-end/68166] Restore build with fold checking enabled
gcc/
	PR middle-end/68166
	* fold-const.c: Include "md5.h".

From-SVN: r229652
2015-11-02 08:42:04 +01:00
Jeff Law
f0e5161244 [PATCH] Avoid ssa-thread-11.c on various targets
* gcc.dg/tree-ssa/ssa-thread-11.c: Update target selector.

From-SVN: r229651
2015-11-01 22:59:19 -07:00
Jeff Law
4815336c9a [PATCH] Fix vms targets
* vmsdbgout.c: Revert unused header file reduction patch.

From-SVN: r229650
2015-11-01 22:27:14 -07:00
Jeff Law
0f8012fbdd * config/mcore/mcore.c: Include regs.h.
From-SVN: r229649
2015-11-01 22:23:52 -07:00
GCC Administrator
4f1617db75 Daily bump.
From-SVN: r229648
2015-11-02 00:16:12 +00:00
Ian Lance Taylor
1c47a3bfa3 mksysinfo.sh: Handle TIOCSPGRP if too complex for -fdump-go-spec.
Reviewed-on: https://go-review.googlesource.com/16534

From-SVN: r229645
2015-11-01 20:51:23 +00:00
Ian Lance Taylor
2e4e655cf3 re PR go/67968 (go1: internal compiler error: in write_specific_type_functions, at go/gofrontend/types.cc:1812)
PR go/67968
    compiler: Traverse types of call expressions.
    
    https://gcc.gnu.org/PR67968 provides a test case that causes a gccgo
    crash on valid code.  The compiler failed to build the hash and equality
    functions required for a type descriptor.  The descriptor is for an
    unnamed type that is being returned by a function imported from a
    different package.  The unnamed type is being implicitly converted to an
    interface type by a return statement.  The fix is to ensure that the
    type of a call expression is always traversed.
    
    Test case sent out for the master testsuite as
    https://golang.org/cl/16532 .

From-SVN: r229642
2015-11-01 20:46:04 +00:00
Uros Bizjak
2bbee501a3 pr67609-2.c: Include sse2-check.h.
* gcc.target/i386/pr67609-2.c: Include sse2-check.h.
	(sse2_test): Rename from main.  Do not return 0.

From-SVN: r229641
2015-11-01 21:22:14 +01:00
David Edelsohn
0cf9ec059e pr46756.f: Remove XFAIL for AIX.
* gfortran.dg/debug/pr46756.f: Remove XFAIL for AIX.
        * gfortran.dg/proc_ptr_39.f90: Require visibility.
        * gfortran.dg/read_dir.f90: XFAIL AIX.

From-SVN: r229640
2015-11-01 14:36:59 -05:00
GCC Administrator
34b4939d35 Daily bump.
From-SVN: r229639
2015-11-01 00:16:16 +00:00
Ian Lance Taylor
2b193803d7 runtime: If no split stacks, allocate stacks using mmap on 64-bit systems.
When not using split stacks, libgo allocate large stacks for each
    goroutine.  On a 64-bit system, libgo allocates a maximum of 128G for
    the Go heap, and allocates 4M for each stack.  When the stacks are
    allocated from the Go heap, the result is that a program can only create
    32K goroutines, which is not enough for an active Go server.  This patch
    changes libgo to allocate the stacks using mmap directly, rather than
    allocating them out of the Go heap.  This change is only done for 64-bit
    systems when not using split stacks.  When using split stacks, the
    stacks are allocated using mmap directly anyhow.  On a 32-bit system,
    there is no maximum size for the Go heap, or, rather, the maximum size
    is the available address space anyhow.
    
    Reviewed-on: https://go-review.googlesource.com/16531

From-SVN: r229636
2015-10-31 23:48:19 +00:00
Ian Lance Taylor
da235df878 Makefile.am (go_cmd_go_files): Update to Go 1.5.1 library by adding alldocs.go, doc.go, note.go.
* Makefile.am (go_cmd_go_files): Update to Go 1.5.1 library by
	adding alldocs.go, doc.go, note.go.
	* Makefile.in: Rebuild.

From-SVN: r229635
2015-10-31 21:29:38 +00:00
Segher Boessenkool
ee5c0d8af9 rs6000: Rewrite rs6000_reg_live_or_pic_offset_p
This function is quite a puzzle; untangle it.  No functional change.


2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Rewrite.

From-SVN: r229634
2015-10-31 20:50:09 +01:00
Segher Boessenkool
f44c1eb7e1 rs6000: Another PIC LRA fix
This one for TARGET_TOC && TARGET_MINIMAL_TOC.  Without it, r30 is not
saved in the prologue for functions that do not use r30, but the register
is set later in the prologue anyhow.  This made all java tests fail.


2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Use the
	same condition for testing whether RS6000_PIC_OFFSET_TABLE_REGNUM is
	live as for using it elsewhere, for TARGET_MINIMAL_TOC.

From-SVN: r229633
2015-10-31 20:48:19 +01:00
Ville Voutilainen
ffea5536df Remove support for N3994, terse range-for, which was not adopted.
/cp
2015-10-31  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Remove the implementation of N3994, terse range-for loops.
	* parser.c (cp_parser_for_init_statement): Remove the parsing
	of a terse range-for.

/testsuite
2015-10-31  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Remove the implementation of N3994, terse range-for loops.
	* g++.dg/cpp1z/range-for1.C: Remove.

From-SVN: r229632
2015-10-31 21:42:01 +02:00
Cesar Philippidis
d057afcdca re PR bootstrap/68168 (r229609 breaks bootstrap)
PR Bootstrap/68168

	gcc/fortran/
	* openmp.c (resolve_omp_clauses): Pass &n->where when calling
	gfc_error.

From-SVN: r229631
2015-10-31 10:55:03 -07:00
Eric Botcazou
64c7c0953f * gnat.dg/discr45.adb: New test.
From-SVN: r229630
2015-10-31 17:13:32 +00:00
Jason Merrill
4fea442db7 Implement multiple 'auto' feature from Concepts TS.
* parser.c (cp_parser_type_id_1): Allow 'auto' if -fconcepts.
	(cp_parser_template_type_arg): Likewise.
	(get_concept_from_constraint): Split out most logic to...
	* constraint.cc (placeholder_extract_concept_and_args): ...here.
	(equivalent_placeholder_constraints, hash_placeholder_constraint): New.
	* cxx-pretty-print.c (pp_cxx_constrained_type_spec): New.
	* cxx-pretty-print.h: Declare it.
	* error.c (dump_type) [TEMPLATE_TYPE_PARM]: Call it.
	* pt.c (is_auto_r, extract_autos_r, extract_autos, auto_hash): New.
	(type_uses_auto): Use is_auto_r.
	(do_auto_deduction): Handle multiple 'auto's if -fconcepts.
	* typeck.c (structural_comptypes) [TEMPLATE_TYPE_PARM]: Compare
	constraints.

From-SVN: r229629
2015-10-31 12:20:05 -04:00
Jason Merrill
a459b07fa4 Streamline for_each_template_parm.
* pt.c (for_each_template_parm_r): Use WALK_SUBTREE.
	Return a meaningful value rather than error_mark_node.
	(for_each_template_parm): Return a tree.
	(uses_template_parms_level): Return bool.
	* cp-tree.h: Adjust.

From-SVN: r229628
2015-10-31 12:19:55 -04:00
Jason Merrill
09833a1db1 Improve deduction failure diagnostics.
* pt.c (unify): Don't diagnose no common base if we already have
	the same template.
	(do_auto_deduction): Explain deduction failure.

From-SVN: r229627
2015-10-31 12:19:50 -04:00
Jason Merrill
79d9b2dea2 pt.c (hash_tmpl_and_args): Use iterative_hash_object on template uid.
* pt.c (hash_tmpl_and_args): Use iterative_hash_object on template
	uid.

From-SVN: r229626
2015-10-31 12:19:44 -04:00
Jason Merrill
dfded2f6b4 Make some functions static.
* parser.c (synthesize_implicit_template_parm)
	(finish_fully_implicit_template): Make static.

From-SVN: r229625
2015-10-31 12:19:38 -04:00