Commit Graph

140274 Commits

Author SHA1 Message Date
Iain Buclaw fd91ffb805 Fix test failure on Solaris 9 where strtod() does not accept hexadecimals
2015-08-11  Iain Buclaw  <ibuclaw@gdcproject.org>

libiberty/

	* d-demangle.c (dlang_parse_real): Remove call to strtod.
	(strtod): Remove declaration.
	* testsuite/d-demangle-expected: Update float and complex literal
	tests to check correct hexadecimal demangling.

From-SVN: r226774
2015-08-11 07:12:19 +00:00
GCC Administrator 9f46780965 Daily bump.
From-SVN: r226773
2015-08-11 00:16:16 +00:00
Steven G. Kargl 50060d9a03 re PR libfortran/67140 (undefined reference to _gfortran_mvbits_i16)
2015-08-10  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR libfortran/67140
	* intrinsics/mvbits.c: Fix build for paltforms without c_int128_t.

From-SVN: r226769
2015-08-10 21:45:01 +00:00
H.J. Lu 736e56dac0 Treat model == 0x4f as Broadwell
gcc/testsuite/

	* gcc.target/i386/builtin_target.c (check_intel_cpu_model):
	Treat model == 0x4f as Broadwell.

libgcc/

	* config/i386/cpuinfo.c (get_intel_cpu): Treat model == 0x4f as
	Broadwell.

From-SVN: r226766
2015-08-10 12:19:05 -07:00
H.J. Lu 52ec072692 Update -mtune=knl for Knights Landing
From:

https://software.intel.com/sites/default/files/managed/e9/b5/Knights-Corner-is-your-path-to-Knights-Landing.pdf

Knights Landing is “Based on Intel Atom core (based on Silvermont
microarchitecture) with many HPC enhancements.”

This patch replaces CPU_KNL with CPU_SLM to tune for Knights Landing.

	* config/i386/i386.c (processor_alias_table): Replace CPU_KNL
	with CPU_SLM.
	* config/i386/i386.md (cpu): Remove knl.

From-SVN: r226765
2015-08-10 11:59:35 -07:00
Steven G. Kargl 0238e1e98a [multiple changes]
2015-08-10  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR libfortran/67140
	* gfortran.map: Add _gfortran_mvbits_i16.
	* intrinsics/mvbits.c: Generate mvbits for c_int128_t.

2015-08-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR libfortran/67140
	* gfortran.dg/pr67140.f90: New test.

From-SVN: r226764
2015-08-10 17:42:00 +00:00
Thomas Schwinge b97e78b712 [PR libgomp/65742, PR middle-end/66332] libgomp: Remove plugin for non-shared memory host execution
gcc/
	* builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
	open-coded sequence.
	* omp-low.c (oacc_process_reduction_data): Remove handline of
	GOMP_DEVICE_HOST_NONSHM.
	gcc/testsuite/
	* c-c++-common/goacc/acc_on_device-2.c: Remove XFAIL for C.
	include/
	* gomp-constants.c (GOMP_DEVICE_HOST_NONSHM): Remove.
	libgomp/
	* libgomp-plugin.h (enum offload_target_type): Remove
	OFFLOAD_TARGET_TYPE_HOST_NONSHM.
	* openacc.f90 (openacc_kinds): Remove acc_device_host_nonshm.
	* openacc.h (enum acc_device_t): Likewise.
	* openacc_lib.h: Likewise.
	* oacc-init.c (name_of_acc_device_t): Don't handle it.
	(acc_on_device): Just use __builtin_acc_on_device.
	* testsuite/libgomp.oacc-c-c++-common/if-1.c: Don't forbid usage
	of acc_on_device builtin.
	* plugin/plugin-host.h: Remove file.
	* plugin/plugin-host.c: Likewise, but salvage some content into...
	* oacc-host.c: ... this file.
	* plugin/Makefrag.am: Don't build libgomp-plugin-host_nonshm.la.
	* plugin/configfrag.ac (offload_targets): Don't add host_nonshm.
	* Makefile.in: Regenerate.
	* configure: Likewise.
	* testsuite/lib/libgomp.exp
	(check_effective_target_openacc_host_nonshm_selected): Remove.
	* testsuite/libgomp.oacc-c++/c++.exp: Don't handle
	ACC_DEVICE_TYPE=host_nonshm.
	* testsuite/libgomp.oacc-c/c.exp: Likewise.
	* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
	* testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
	* testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
	* testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.

From-SVN: r226763
2015-08-10 18:48:26 +02:00
Thomas Schwinge 44a7d18d95 Empty libgomp for nvptx
* configure.ac (noconfigdirs): Don't add "target-libgomp" for target
	nvptx*-*-*.
	* configure: Regenerate.
	libgomp/
	* config/nvptx/affinity.c: New file.
	* config/nvptx/alloc.c: Likewise.
	* config/nvptx/bar.c: Likewise.
	* config/nvptx/barrier.c: Likewise.
	* config/nvptx/critical.c: Likewise.
	* config/nvptx/env.c: Likewise.
	* config/nvptx/error.c: Likewise.
	* config/nvptx/fortran.c: Likewise.
	* config/nvptx/iter.c: Likewise.
	* config/nvptx/iter_ull.c: Likewise.
	* config/nvptx/libgomp-plugin.c: Likewise.
	* config/nvptx/lock.c: Likewise.
	* config/nvptx/loop.c: Likewise.
	* config/nvptx/loop_ull.c: Likewise.
	* config/nvptx/mutex.c: Likewise.
	* config/nvptx/oacc-async.c: Likewise.
	* config/nvptx/oacc-cuda.c: Likewise.
	* config/nvptx/oacc-host.c: Likewise.
	* config/nvptx/oacc-init.c: Likewise.
	* config/nvptx/oacc-mem.c: Likewise.
	* config/nvptx/oacc-parallel.c: Likewise.
	* config/nvptx/oacc-plugin.c: Likewise.
	* config/nvptx/omp-lock.h: Likewise.
	* config/nvptx/ordered.c: Likewise.
	* config/nvptx/parallel.c: Likewise.
	* config/nvptx/proc.c: Likewise.
	* config/nvptx/ptrlock.c: Likewise.
	* config/nvptx/sections.c: Likewise.
	* config/nvptx/sem.c: Likewise.
	* config/nvptx/single.c: Likewise.
	* config/nvptx/splay-tree.c: Likewise.
	* config/nvptx/target.c: Likewise.
	* config/nvptx/task.c: Likewise.
	* config/nvptx/team.c: Likewise.
	* config/nvptx/time.c: Likewise.
	* config/nvptx/work.c: Likewise.
	* configure.ac: Don't probe pthreads support for host nvptx*-*-*.
	* configure: Regenerate.
	* configure.tgt (config_path): Set to "nvptx" for target
	nvptx*-*-*.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r226760
2015-08-10 17:53:33 +02:00
Thomas Schwinge 96a2d174cc Fix offloading machine mode stream reading
... in context of the GET_MODE_INNER changes applied in r226328.

	gcc/
	* lto-streamer-in.c (lto_input_mode_table): Adjust to
	GET_MODE_INNER changes.
	libgomp/
	* testsuite/libgomp.oacc-c-c++-common/vector-type-1.c: New file.

From-SVN: r226759
2015-08-10 17:22:30 +02:00
Thomas Schwinge 78647e656d Correctly advance iterator in offloading machine mode stream reading
gcc/
	* lto-streamer-in.c (lto_input_mode_table): Correctly advance
	iterator.

Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>

From-SVN: r226758
2015-08-10 17:22:24 +02:00
Ramana Radhakrishnan 43e06d03ef [AArch64] Recommit correct version for improving TLS descriptor pattern
2015-08-06    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	      Jiong Wang  <jiong.wang@arm.com>

gcc/
  * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
  * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
  (REG_CLASS_NAMES): Likewise.
  (REG_CLASS_CONTENTS): Likewise.
  * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
  (aarch64_register_move_cost): Likewise.
  (aarch64_load_symref_appropriately): Invoke the new added pattern if
  possible.
  * config/aarch64/constraints.md (Uc0): New constraint.

gcc/testsuite/
  * gcc.target/aarch64/tlsdesc_hoist.c: New testcase.

From-SVN: r226757
2015-08-10 10:06:28 +00:00
Jiong Wang 7fd8646421 [AArch64] Revert wrong commit of "Improve TLS Descriptor pattern to release RTL loop IV opt"
Revert the wrong commit of

  2015-08-06    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	      Jiong Wang  <jiong.wang@arm.com>

	* config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
	* config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	* config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
	(aarch64_register_move_cost): Likewise.
	(aarch64_load_symref_appropriately): Invoke the new added pattern if
	possible.
	* config/aarch64/constraints.md (Uc0): New constraint.

From-SVN: r226756
2015-08-10 10:00:56 +00:00
Uros Bizjak 9ca287086f re PR fortran/64022 ([F2003][IEEE] ieee_support_flag does not handle kind=10 and kind=16 REAL variables)
PR fortran/64022
	* gfortran.dg/ieee/large_4.f90: New test.

From-SVN: r226755
2015-08-10 07:13:01 +02:00
GCC Administrator f48dc6463d Daily bump.
From-SVN: r226754
2015-08-10 00:16:12 +00:00
Manuel López-Ibáñez c2d8909517 options.texi (EnabledBy): Document that the argument must be a Common option.
gcc/ChangeLog:

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

	* doc/options.texi (EnabledBy): Document that the argument must be
	a Common option.
	* doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
	Not enabled by -Wall.
	* optc-gen.awk: Give nicer error messages. Detect if the argument
	of EnabledBy is not a Common option.
	* common.opt (Wnull-dereference): Not enabled by -Wall.
	* opt-functions.awk (lang_enabled_by): Nicer error messages.

gcc/c-family/ChangeLog:

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

	* c.opt (Wchkp): Use LangEnabledBy instead of EnabledBy.

From-SVN: r226751
2015-08-09 19:30:17 +00:00
Francois-Xavier Coudert 18a2180daa re PR libfortran/66936 (io/unix.c gratuitously uses S_IRWXG and S_IRWXO on the basis that umask() is available)
PR libfortran/66936
	* io/unix.c (__MINGW32__): Undefine HAVE_UMASK.

From-SVN: r226750
2015-08-09 16:43:42 +00:00
H.J. Lu dc04bc8431 Treat model == 0x4f as Broadwell
From Intel SDM Vol 3:

Table 35-29 lists MSRs that are common to processors based on the
Broadwell microarchitectures (including CPUID signatures 06_3DH,
06_47H, 06_4FH, and 06_56H).

	* config/i386/driver-i386.c (host_detect_local_cpu): Treat
	model == 0x4f as Broadwell.

From-SVN: r226749
2015-08-09 06:59:08 -07:00
Francois-Xavier Coudert 03c02a42c5 Makefile.am (libquadmath_la_SOURCES): Add math/logbq.c.
* Makefile.am (libquadmath_la_SOURCES): Add math/logbq.c.
	* Makefile.in: Regenerate.
	* libquadmath.texi: Document logbq.
	* quadmath.h: Add logbq prototype.
	* quadmath.map: Add logbq.
	* quadmath_weak.h: Add logbq prototype.
	* math/logbq.c: New file

From-SVN: r226748
2015-08-09 08:46:52 +00:00
GCC Administrator e7b724da79 Daily bump.
From-SVN: r226746
2015-08-09 00:16:13 +00:00
Ville Voutilainen b95170d380 Implement N4279, Improved insertion interface for unique-key maps.
2015-08-09  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement N4279, Improved insertion interface for unique-key maps.
	* include/bits/stl_map.h (try_emplace, insert_or_assign): New.
	* include/bits/stl_tree.h (_M_get_insert_unique_pos,
	_M_get_insert_equal_pos, _M_get_insert_hint_unique_pos,
	_M_get_insert_hint_equal_pos): Make public.
	* include/bits/unordered_map.h (try_emplace, insert_or_assign): New.
	* testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
	Likewise.
	* testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
	* testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
	Likewise.
	* testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
	Likewise.

From-SVN: r226743
2015-08-09 01:57:13 +03:00
Jason Merrill d0920fa2df re PR c++/67144 ([C++1z] ICE; in get_constraints, at cp/pt.c:23346)
PR c++/67144
	* call.c (joust): Only call more_constrained on decls.

From-SVN: r226740
2015-08-08 18:04:34 -04:00
Jason Merrill 7beb0c35aa re PR c++/67152 ([concepts] bogus "partial specialization of ‘foo<T>’ after instantiation" error)
PR c++/67152
	* pt.c (process_partial_specialization): Call
	associate_classtype_constraints.

From-SVN: r226739
2015-08-08 18:01:39 -04:00
Jason Merrill 4e7739b25a re PR c++/67159 ([c++concepts] Segfault while diagnosing constraint violation)
PR c++/67159
	* constraint.cc (finish_template_introduction):
	SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT.

From-SVN: r226738
2015-08-08 18:01:29 -04:00
Jason Merrill d6729a4291 re PR c++/67142 ([C++1z] ICE: tree check: expected template_decl, have field_decl in equal, at cp/pt.c:1665)
PR c++/67142
	* pt.c (equal): Make sure tmpl is actually a template.

From-SVN: r226737
2015-08-08 18:01:21 -04:00
Jason Merrill a2dfb56374 re PR libstdc++/67114 ([MinGW64] build failure with POSIX threads enabled)
PR c++/67114
	* call.c (joust): Only call more_constrained on decls.

From-SVN: r226736
2015-08-08 18:01:12 -04:00
Francois-Xavier Coudert aab2b07154 re PR fortran/67059 (gfortran --version output is inconsistent with the rest of GCC)
PR fortran/67059
	* gfortranspec.c (lang_specific_driver): Adjust --version output.

From-SVN: r226734
2015-08-08 19:59:16 +00:00
Ville Voutilainen f334456903 Implement N4089 Safe conversions in unique_ptr<T[]> (LWG 2118) and N4366 LWG 2228...
2015-08-08  Ville Voutilainen  <ville.voutilainen@gmail.com>

	Implement N4089 Safe conversions in unique_ptr<T[]> (LWG 2118)
	and N4366 LWG 2228: Missing SFINAE rule in unique_ptr
	templated assignment
	* include/bits/unique_ptr.h
	(__remove_cv, __is_derived_Tp): Remove.
	(default_delete::default_delete(const default_delete<_Up[]>)):
	Constrain with array convertibility.
	(default_delete::operator(_Up*)): Turn into a template,
	constrain with array convertibility.
	(__safe_conversion_up): New, single object version.
	(unique_ptr(unique_ptr<_Up, _Ep>&&)): Constrain with deleter
	convertibility.
	(unique_ptr::operator=(unique_ptr<_Up, _Ep>&&)): Likewise, and add
	is_assignable as a constraint.
	(__safe_conversion_up): Array version, renamed from __safe_conversion,
	updated to implement N4089.
	(__safe_conversion_raw): New.
	(unique_ptr(_Up)): Turn into a template, constrain with array
	convertibility.
	(unique_ptr(_Up,
        typename conditional<is_reference<deleter_type>::value,
        deleter_type, const deleter_type&>::type)): Likewise.
	(unique_ptr(_Up, typename
 	remove_reference<deleter_type>::type&&)): Likewise.
	(unique_ptr(unique_ptr<_Up, _Ep>&&)): Likewise.
	(operator=(unique_ptr<_Up, _Ep>&&)): Likewise, and add
	is_assignable as a constraint (array version).
	(reset(_Up)): Turn into a template, constrain with array
	convertibility.
	(reset(nullptr_t)): New.
	* testsuite/20_util/default_delete/48631_neg.cc: Adjust.
	* testsuite/20_util/unique_ptr/assign/48635.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Likewise.
	* testsuite/20_util/unique_ptr/assign/cv_qual.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/cv_qual.cc: Likewise.
	* testsuite/20_util/unique_ptr/dr2228.cc: New.
	* testsuite/20_util/unique_ptr/modifiers/cv_qual.cc: Adjust.

From-SVN: r226733
2015-08-08 14:07:34 +03:00
Bud Davis 0d251765be When undoing symbols, also restore common block lists
gcc/fortran/
2015-08-08  Bud Davis  <jmdavis@link.com>
	    Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/59746
	* symbol.c (gfc_restore_last_undo_checkpoint): Delete a common block
	symbol if it was put in the list.

gcc/testsuite/
2015-08-08  Bud Davis  <jmdavis@link.com>

	PR fortran/59746
	* gfortran.dg/common_22.f90: New.


Co-Authored-By: Mikael Morin <mikael@gcc.gnu.org>

From-SVN: r226732
2015-08-08 10:40:06 +00:00
Segher Boessenkool 1aeec6dc1f re PR rtl-optimization/67028 (combine bug. Different assumptions about subreg in different places.)
PR rtl-optimization/67028
	* combine.c (simplify_comparison): Fix comment.  Rearrange code.
	Add test to see if a const_int fits in the new mode.

gcc/testsuite/
	PR rtl-optimization/67028
	* gcc.dg/pr67028.c: New testcase.

From-SVN: r226731
2015-08-08 03:51:27 +02:00
DJ Delorie 0fa95f4ead * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
From-SVN: r226730
2015-08-07 21:09:20 -04:00
GCC Administrator 645ea9e86d Daily bump.
From-SVN: r226729
2015-08-08 00:16:11 +00:00
Francois-Xavier Coudert c2cc83bc88 re PR libfortran/66458 (Loading libgfortran.so changes the FPU exception flags)
PR libfortran/66458
	* runtime/main.c (init): Only call set_fpu() if requested by user.

From-SVN: r226725
2015-08-07 16:23:53 +00:00
H.J. Lu 8f3f5ac089 Add alternative_mask to ira_implicitly_set_insn_hard_regs
Since ira_implicitly_set_insn_hard_regs may be called outside of
ira-lives.c, it can't use the local variable, preferred_alternatives.
This patch adds an alternative_mask argument to
ira_implicitly_set_insn_hard_regs.

gcc/

	PR rtl-optimization/67029
	* ira-color.c: Include "recog.h" before including "ira-int.h".
	* target-globals.c: Likewise.
	* ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
	adds an alternative_mask argument and use it instead of
	preferred_alternatives.
	* ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
	* ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
	* sched-deps.c: Include "ira-int.h" after including "ira.h".
	(sched_analyze_insn): Update call to
	ira_implicitly_set_insn_hard_regs.
	* sel-sched.c: Include "ira-int.h" after including "ira.h".
	(implicit_clobber_conflict_p): Update call to
	ira_implicitly_set_insn_hard_regs.

gcc/testsuite/

	PR rtl-optimization/67029
	* gcc.dg/pr67029.c: New test.

From-SVN: r226724
2015-08-07 09:18:09 -07:00
Francois-Xavier Coudert 0e360db970 re PR fortran/64104 ([F2003][IEEE] Allow IEEE functions in specification expressions)
PR fortran/64104

	* expr.c (gfc_check_init_expr): Allow some IEEE functions in
	constant expressions.
	(external_spec_function): Allow some IEEE functions in specification
	expressions.
	* simplify.c (gfc_simplify_ieee_selected_real_kind): Remove.
	(simplify_ieee_selected_real_kind, simplify_ieee_support,
	matches_ieee_function_name, gfc_simplify_ieee_functions): New
	functions.
	* gfortran.h (gfc_simplify_ieee_selected_real_kind): Remove
	prototype.
	(gfc_simplify_ieee_functions): Add prototype.

	* gfortran.dg/ieee/ieee_8.f90: New test.

From-SVN: r226723
2015-08-07 15:02:15 +00:00
Jiong Wang a044d2b1b6 [AArch64] Check branch types for noplt testcases
2015-08-07  Jiong Wang  <jiong.wang@arm.com>

gcc/testsuite/
  * gcc.target/aarch64/noplt_1.c: Check branch type instead of relocation
  modifers.
  * gcc.target/aarch64/noplt_2.c: Likewise.
  * gcc.target/aarch64/noplt_3.c: Likewise.

From-SVN: r226721
2015-08-07 13:26:23 +00:00
Uros Bizjak 27f40df410 Makefile.in (.INTERMEDIATE): Add gpl.pod.
* Makefile.in (.INTERMEDIATE): Add gpl.pod.

From-SVN: r226720
2015-08-07 14:12:41 +02:00
Ian Lance Taylor d0ceffe507 libgo/testsuite: don't call kill without args
If the timeout subshell has no child processes,
    the "xargs | kill" will fail. Ensure there is
    some input for kill before calling it.
    
    Reviewed-on: https://go-review.googlesource.com/13295

From-SVN: r226719
2015-08-07 10:10:00 +00:00
Jason Merrill 82b110199a ville
From-SVN: r226716
2015-08-07 04:41:33 -04:00
Kaz Kojima fa0a20e309 sh.c (sh_recog_treg_set_expr): Return false during expand phase to avoid codegen differences with -g.
* config/sh/sh.c (sh_recog_treg_set_expr): Return false during
expand phase to avoid codegen differences with -g.

From-SVN: r226715
2015-08-07 08:11:45 +00:00
Uros Bizjak 41b122f335 texi2pod.pl: Escape braces in regexp involving @strong{...}.
* doc/texi2pod.pl: Escape braces in regexp involving @strong{...}.

From-SVN: r226714
2015-08-07 08:38:07 +02:00
Andrew Sutton 971e17ff87 Add C++ Concepts TS support.
gcc/c-family/
	* c-common.c (c_common_reswords): Add __is_same_as, concept, requires.
	* c-common.h (enum rid): Add RID_IS_SAME_AS, RID_CONCEPT, RID_REQUIRES.
	(D_CXX_CONCEPTS, D_CXX_CONCEPTS_FLAGS): New.
	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_concepts.
	* c-opts.c (set_std_cxx1z): Set flag_concepts.
	* c.opt (fconcepts): New.
gcc/cp/
	* constraint.cc, logic.cc: New files.
	* Make-lang.in (CXX_AND_OBJCXX_OBJS): Add constraint.o and logic.o.
	(c++.tags): Also process .cc files.
	* call.c (enum rejection_reason_code): Add rr_constraint_failure.
	(print_z_candidate): Handle it.
	(constraint_failure): New.
	(add_function_candidate): Check constraints.
	(build_new_function_call): Handle evaluating concepts.
	(joust): Check more_constrained.
	* class.c (add_method): Check equivalently_constrained.
	(build_clone): Copy constraints.
	(currently_open_class): Return tree.
	(resolve_address_of_overloaded_function): Check constraints.
	* constexpr.c (cxx_eval_constant_expression): Handle REQUIRES_EXPR.
	(potential_constant_expression_1): Likewise.
	* cp-objcp-common.c (cp_tree_size): Handle CONSTRAINT_INFO.
	(cp_common_init_ts): Handle WILDCARD_DECL and REQUIRES_EXPR.
	* cp-tree.def: Add CONSTRAINT_INFO, WILDCARD_DECL, REQUIRES_EXPR,
	SIMPLE_REQ, TYPE_REQ, COMPOUND_REQ, NESTED_REQ, PRED_CONSTR,
	EXPR_CONSTR, TYPE_CONSTR, ICONV_CONSTR, DEDUCT_CONSTR,
	EXCEPT_CONSTR, PARM_CONSTR, CONJ_CONSTR, DISJ_CONSTR.
	* cp-tree.h (struct tree_constraint_info, check_nonnull)
	(check_constraint_info, CI_TEMPLATE_REQS, CI_DECLARATOR_REQS)
	(CI_ASSOCIATED_CONSTRAINTS, CI_NORMALIZED_CONSTRAINTS)
	(CI_ASSUMPTIONS, TEMPLATE_PARMS_CONSTRAINTS)
	(TEMPLATE_PARM_CONSTRAINTS, COMPOUND_REQ_NOEXCEPT_P)
	(PLACEHOLDER_TYPE_CONSTRAINTS, PRED_CONSTR_EXPR, EXPR_CONSTR_EXPR)
	(TYPE_CONSTR_TYPE, ICONV_CONSTR_EXPR, ICONV_CONSTR_TYPE)
	(DEDUCT_CONSTR_EXPR, DEDUCT_CONSTR_PATTERN)
	(DEDUCT_CONSTR_PLACEHOLDER, EXCEPT_CONSTR_EXPR, PARM_CONSTR_PARMS)
	(PARM_CONSTR_OPERAND, CONSTRAINT_VAR_P, CONSTRAINED_PARM_CONCEPT)
	(CONSTRAINED_PARM_EXTRA_ARGS, CONSTRAINED_PARM_PROTOTYPE)
	(DECL_DECLARED_CONCEPT_P, WILDCARD_PACK_P, struct cp_unevaluated)
	(struct local_specialization_stack, enum auto_deduction_context)
	(variable_concept_p, concept_template_p)
	(struct deferring_access_check_sentinel): New.
	(enum cp_tree_node_structure_enum): Add TS_CP_CONSTRAINT_INFO.
	(union lang_tree_node): Add constraint_info field.
	(struct lang_decl_base): Add concept_p flag.
	(enum cp_decl_spec): Add ds_concept.
	(struct cp_declarator): Add requires_clause.
	* cxx-pretty-print.c (cxx_pretty_printer::primary_expression)
	(cxx_pretty_printer::expression): Handle REQUIRES_EXPR,
	TRAIT_EXPR, *_CONSTR.
	(pp_cxx_parameter_declaration_clause): Accept a chain of
	PARM_DECLs.
	(cxx_pretty_printer::declarator): Print requires-clause.
	(pp_cxx_template_declaration): Likewise.
	(pp_cxx_trait_expression): Handle CPTK_IS_SAME_AS.
	(pp_cxx_requires_clause, pp_cxx_requirement)
	(pp_cxx_requirement_list, pp_cxx_requirement_body)
	(pp_cxx_requires_expr, pp_cxx_simple_requirement)
	(pp_cxx_type_requirement, pp_cxx_compound_requirement)
	(pp_cxx_nested_requirement, pp_cxx_predicate_constraint)
	(pp_cxx_expression_constraint, pp_cxx_type_constraint)
	(pp_cxx_implicit_conversion_constraint)
	(pp_cxx_argument_deduction_constraint)
	(pp_cxx_exception_constraint, pp_cxx_parameterized_constraint)
	(pp_cxx_conjunction, pp_cxx_disjunction, pp_cxx_constraint): New.
	* cxx-pretty-print.h: Declare them.
	* decl.c (decls_match): Compare constraints.
	(duplicate_decls): Likewise.  Remove constraints before freeing.
	(cxx_init_decl_processing): Call init_constraint_processing.
	(cp_finish_decl): Diagnose concept without initializer.
	(grokfndecl, grokvardecl): Handle concepts and constraints.
	(grokdeclarator): Handle concept, requires-clause.
	(grokparms): No longer static.
	(xref_tag_1): Check constraints.
	(finish_function): Call check_function_concept.
	(cp_tree_node_structure): Handle CONSTRAINT_INFO.
	(check_concept_refinement, is_concept_var, check_concept_fn): New.
	* decl2.c (check_classfn): Compare constraints.
	(mark_used): Don't instantiate concepts.
	* error.c (dump_template_decl): Print constraints.
	(dump_function_decl): Likewise.
	(dump_expr): Handle REQUIRES_EXPR, *_REQ, *_CONSTR.
	* lex.c (init_reswords): Set D_CXX_CONCEPTS.
	* method.c (implicitly_declare_fn): Copy constraints from
	inherited ctor.
	* parser.h (struct cp_parser): Add in_result_type_constraint_p and
	prevent_constrained_type_specifiers fields.
	* parser.c (make_call_declarator): Add requires_clause parm.
	(cp_parser_new): Clear prevent_constrained_type_specifiers.
	(cp_parser_primary_expression): Handle RID_IS_SAME_AS, RID_REQUIRES.
	(cp_parser_postfix_expression): Set prevent_constrained_type_specifiers.
	(cp_parser_trait_expr): Handle RID_IS_SAME_AS.
	(cp_parser_declaration): Handle concept introduction.
	(cp_parser_member_declaration): Likewise.
	(cp_parser_template_parameter): Handle constrained parameter.
	(cp_parser_type_parameter): Handle constraints.
	(cp_parser_decl_specifier_seq): Handle RID_CONCEPT.
	(cp_parser_template_id): Handle partial concept id.
	(cp_parser_type_name): Add overload that takes typename_keyword_p.
	Handle constrained parameter.
	(cp_parser_nonclass_name): Handle concept names.
	(cp_parser_alias_declaration): Handle constraints.
	(cp_parser_late_return_type_opt): Also handle requires-clause.
	(cp_parser_type_id_1): Handle deduction constraint.
	(cp_parser_parameter_declaration): Handle constrained parameters.
	(cp_parser_class_specifier_1): Handle constraints.
	(cp_parser_template_declaration_after_parameters): Split out from
	cp_parser_template_declaration_after_export.
	(cp_parser_single_declaration): Handle constraints.
	(synthesize_implicit_template_parm): Handle constraints.
	(cp_parser_maybe_concept_name, cp_parser_maybe_partial_concept_id)
	(cp_parser_introduction_list, get_id_declarator)
	(get_unqualified_id, is_constrained_parameter)
	(cp_parser_check_constrained_type_parm)
	(cp_parser_constrained_type_template_parm)
	(cp_parser_constrained_template_template_parm)
	(constrained_non_type_template_parm, finish_constrained_parameter)
	(declares_constrained_type_template_parameter)
	(declares_constrained_template_template_parameter)
	(check_type_concept, cp_parser_maybe_constrained_type_specifier)
	(cp_parser_maybe_concept_name, cp_parser_maybe_partial_concept_id)
	(cp_parser_requires_clause, cp_parser_requires_clause_opt)
	(cp_parser_requires_expression)
	(cp_parser_requirement_parameter_list, cp_parser_requirement_body)
	(cp_parser_requirement_list, cp_parser_requirement)
	(cp_parser_simple_requirement, cp_parser_type_requirement)
	(cp_parser_compound_requirement, cp_parser_nested_requirement)
	(cp_parser_template_introduction)
	(cp_parser_explicit_template_declaration)
	(get_concept_from_constraint): New.
	* pt.c (local_specialization_stack): Implement.
	(maybe_new_partial_specialization): New.
	(maybe_process_partial_specialization): Use it.
	(retrieve_local_specialization, register_local_specialization)
	(template_parm_to_arg, build_template_decl, extract_fnparm_pack)
	(tsubst_expr): No longer static.
	(spec_hasher::equal): Compare constraints.
	(determine_specialization): Handle constraints.
	(check_explicit_specialization): Handle concepts.
	(process_template_parm): Handle constraints.
	(end_template_parm_list): Add overload taking no arguments.
	(process_partial_specialization): Handle concepts and constraints.
	Register partial specializations of variable templates.
	(redeclare_class_template): Handle constraints.
	(convert_template_argument): Handle WILDCARD_DECL.  Check
	is_compatible_template_arg.
	(coerce_template_parameter_pack): Handle wildcard packs.
	(coerce_template_parms): DR 1430 also applies to concepts.  Add
	overloads taking fewer parameters.
	(lookup_template_class_1): Handle constraints.
	(lookup_template_variable): Concepts are always bool.
	(finish_template_variable): Handle concepts and constraints.
	(tsubst_friend_class): Handle constraints.
	(gen_elem_of_pack_expansion_instantiation): Handle constraints.
	(tsubst_pack_expansion): Handle local parameters.
	(tsubst_decl) [FUNCTION_DECL]: Handle constraints.
	(tsubst) [TEMPLATE_TYPE_PARM]: Handle deduction constraints.
	(tsubst_copy_and_build): Handle REQUIRES_EXPR.
	(more_specialized_fn, more_specialized_partial_spec): Check constraints.
	(more_specialized_inst): Split out from most_specialized_instantiation.
	(most_specialized_partial_spec): Check constraints.
	(instantiate_decl): Never instantiate a concept.
	(value_dependent_expression_p): Handle REQUIRES_EXPR, TYPE_REQ,
	variable concepts.
	(type_dependent_expression_p): Handle WILDCARD_DECL, REQUIRES_EXPR.
	(instantiation_dependent_r): Handle REQUIRES_EXPR and concepts.
	(do_auto_deduction): Add overload taking tsubst flags and context enum.
	Handle constraints.
	(get_template_for_ordering, most_constrained_function)
	(is_compatible_template_arg, convert_wildcard_argument)
	(struct	constr_entry, struct constr_hasher, decl_constraints)
	(valid_constraints_p, get_constraints, set_constraints)
	(remove_constraints, init_constraint_processing): New.
	* ptree.c (cxx_print_xnode): Handle CONSTRAINT_INFO.
	* search.c (lookup_member): Do lookup in the open partial
	instantiation.
	* semantics.c (finish_template_template_parm): Handle constraints.
	(fixup_template_type): New.
	(finish_template_type): Call it.
	(trait_expr_value, finish_trait_expr): Handle CPTK_IS_SAME_AS.
	* tree.c (cp_tree_equal): Handle local parameters, CONSTRAINT_INFO.
	(cp_walk_subtrees): Handle REQUIRES_EXPR.
	* typeck.c (cp_build_function_call_vec): Check constraints.

Co-Authored-By: Braden Obrzut <admin@maniacsvault.net>
Co-Authored-By: Jason Merrill <jason@redhat.com>

From-SVN: r226713
2015-08-07 01:44:49 -04:00
Yaakov Selkowitz bf5372e7f0 Makefile.def (libiconv): Define bootstrap=true.
2015-08-06  Yaakov Selkowitz  <yselkowi@redhat.com>

	* Makefile.def (libiconv): Define bootstrap=true.
	Mark pdf/html/info as missing.
	(configure-gcc): Depend on all-libiconv.
	(all-gcc): Ditto.
	(configure-libcpp): Ditto.
	(all-libcpp): Ditto.
	(configure-intl): Ditto.
	(all-intl): Ditto.
	* Makefile.in: Regenerate.

intl/
	* configure: Reflects renaming of configure.in to configure.ac

libcpp/
	* configure: Regenerate.

gcc/
	* configure.ac: Define LIBICONV_DEP with in-tree libiconv.
	* configure: Regenerate.

From-SVN: r226712
2015-08-07 01:13:52 -04:00
GCC Administrator 8c49d0c419 Daily bump.
From-SVN: r226705
2015-08-07 00:16:11 +00:00
Mikael Morin ed673c00bf Move one condition out of gfc_trans_scalar_assign
* trans.h (gfc_trans_scalar_assign): Remove fourth argument.
	* trans-expr.c (gfc_trans_scalar_assign): Merge fourth into sixth
	argument.
	(gfc_conv_subref_array_arg, gfc_trans_subarray_assign,
	 gfc_trans_subcomponent_assign, gfc_trans_assignment_1): Update callers.
	* trans-array.c (gfc_conv_expr_descriptor): Ditto.
	* trans-stmt.c (forall_make_variable_temp,
	generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
	gfc_trans_where_assign, gfc_trans_where_3): Ditto.

From-SVN: r226700
2015-08-06 20:47:36 +00:00
David Malcolm 0eb6f71c48 jit.dg/test-benchmark.c: add a summary of timings
gcc/testsuite/ChangeLog:
	* jit.dg/test-benchmark.c (main): Record all elapsed times at each
	optimization level, and print a summary at the end.

From-SVN: r226697
2015-08-06 19:05:52 +00:00
Francois-Xavier Coudert 00ebbcbc59 * runtime/compile_options.c (set_options): Fix typos.
From-SVN: r226686
2015-08-06 17:42:19 +00:00
Jason Merrill 1bcc5f29a7 re PR c++/66533 ([C++14] ICE: in dependent_type_p, at cp/pt.c:21073)
PR c++/66533
	* parser.c (cp_parser_primary_expression): Don't skip to the end
	of the statement if we're parsing tentatively.

From-SVN: r226684
2015-08-06 12:33:14 -04:00
Jiong Wang b207454235 [AArch64] Improve TLS Descriptor pattern to release RTL loop IV opt
The instruction sequences for preparing argument for TLS descriptor
runtime resolver and the later function call to resolver can actually be
hoisted out of the loop.

Currently we can't because we have exposed the hard register X0 as
destination of "set".  While GCC's RTL data flow infrastructure will
skip or do very conservative assumption when hard register involved in
and thus some loop IV opportunities are missed.

This patch add another "tlsdesc_small_pseudo_<mode>" pattern, and avoid
expose x0 to gcc generic code.

Generally, we define a new register class FIXED_R0 which only contains register
0, so the instruction sequences generated from the new add pattern is the same
as tlsdesc_small_<mode>, while the operand 0 is wrapped as pseudo register that
RTL IV opt can handle it.

Ideally, we should allow operand 0 to be any pseudo register, but then
we can't model the override of x0 caused by the function call which is
hidded by the UNSPEC.

So here, we restricting operand 0 to be x0, the override of x0 can be
reflected to the gcc.

2015-08-06    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	      Jiong Wang  <jiong.wang@arm.com>
gcc/
  * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
  * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
  (REG_CLASS_NAMES): Likewise.
  (REG_CLASS_CONTENTS): Likewise.
  * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
  (aarch64_register_move_cost): Likewise.
  (aarch64_load_symref_appropriately): Invoke the new added pattern if
  possible.
  * config/aarch64/constraints.md (Uc0): New constraint.

gcc/testsuite/
  * gcc.target/aarch64/tlsdesc_hoist.c: New testcase.

From-SVN: r226683
2015-08-06 16:08:39 +00:00
Jiong Wang 201fa0b3a0 [AArch64] Tighten direct call pattern for sibcall to repair -fno-plt
2015-08-06  Jiong Wang  <jiong.wang@arm.com>

gcc/
  * config/aarch64/constraints.md (Usf): Add the test of
  aarch64_is_noplt_call_p.

gcc/testsuite/
  * gcc.target/aarch64/noplt_3.c: New testcase.

From-SVN: r226682
2015-08-06 16:02:16 +00:00
Jiong Wang b60d63cbae [AArch64] Tighten direct call pattern to repair -fno-plt
2015-08-06  Jiong Wang  <jiong.wang@arm.com>

gcc/
  * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New declaration.
  * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
  * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
  (call_symbol): Likewise.

gcc/testsuite/
  * gcc.target/aarch64/noplt_1.c: New testcase.
  * gcc.target/aarch64/noplt_2.c: Likewise.

From-SVN: r226681
2015-08-06 15:57:36 +00:00