Commit Graph

147645 Commits

Author SHA1 Message Date
Wilco Dijkstra 71bfb77a02 This patch optimizes the prolog and epilog code to reduce the number of instructions and avoid multiple writes to SP.
This patch optimizes the prolog and epilog code to reduce the number of
instructions and avoid multiple writes to SP.  The key idea is that epilogs
are almost exact reverses of prologs, and thus all the decisions only need
to be taken once.  The frame layout is decided in aarch64_layout_frame()
and decisions recorded in the new aarch64_frame fields initial_adjust,
callee_adjust, callee_offset and final_adjust.

A generic frame setup consists of 5 basic steps:

1. sub sp, sp, initial_adjust
2. stp reg1, reg2, [sp, -callee_adjust]!      (push if callee_adjust != 0)
3. add fp, sp, callee_offset                  (if frame_pointer_needed)
4. stp reg3, reg4, [sp, callee_offset + N*16] (store remaining callee-saves)
5. sub sp, sp, final_adjust

The epilog reverses this, and may omit step 3 if alloca wasn't used.

    gcc/
	* config/aarch64/aarch64.h (aarch64_frame):
	Remove padding0 and hardfp_offset.  Add locals_offset,
	initial_adjust, callee_adjust, callee_offset and final_adjust.
	* config/aarch64/aarch64.c (aarch64_layout_frame):
	Remove unused padding0 and hardfp_offset initializations.
	Choose frame layout and set frame variables accordingly.
	Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
	(aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
	(aarch64_pop_regs): Likewise.
	(aarch64_expand_prologue): Remove all decision code, just emit
	prolog according to frame variables.
	(aarch64_expand_epilogue): Remove all decision code, just emit
	epilog according to frame variables.
	(aarch64_initial_elimination_offset): Use offset to local/arg area.

    testsuite/
	* gcc.target/aarch64/test_frame_10.c: Fix test to check for a
	single stack adjustment, no writeback.	
	* gcc.target/aarch64/test_frame_12.c: Likewise.
	* gcc.target/aarch64/test_frame_13.c: Likewise.
	* gcc.target/aarch64/test_frame_15.c: Likewise.
	* gcc.target/aarch64/test_frame_6.c: Likewise.
	* gcc.target/aarch64/test_frame_7.c: Likewise.
	* gcc.target/aarch64/test_frame_8.c: Likewise.
	* gcc.target/aarch64/test_frame_16.c: New test.

From-SVN: r238960
2016-08-01 16:37:24 +00:00
Jonathan Wakely 0f86525ae0 Disable std::string and std::wstring extern templates for C++17
* include/bits/basic_string.tcc: Disable explicit instantiation
	declarations for C++17.

From-SVN: r238959
2016-08-01 17:06:03 +01:00
Jason Merrill 1108a48582 PR c++/72766 - ICE with VLA
* constexpr.c (cxx_eval_pointer_plus_expression): Check constancy
	of nelts.
	* cp-gimplify.c (cp_fully_fold): Only maybe_constant_value in
	C++11 and up.

From-SVN: r238957
2016-08-01 11:01:03 -04:00
H.J. Lu 37bce35a7e Convert V1TImode register to TImode in debug insn
TImode register referenced in debug insn can be converted to V1TImode by
scalar to vector optimization.  When converting a TImode store to V1TImode,
we need to check all debug insns on its use chain to convert the V1TImode
register to SUBREG TImode if source register is undefined.

gcc/

	PR target/72748
	* config/i386/i386.c (timode_scalar_chain::convert_insn): Call
	fix_debug_reg_uses after changing source register mode to
	V1TImode if source register is undefined.

gcc/testsuite/

	PR target/72748
	* gcc.target/i386/pr72748.c: New test.

From-SVN: r238956
2016-08-01 07:46:01 -07:00
Alan Hayward 2a93954eab re PR tree-optimization/71818 (ICE in as_a, at is-a.h:192 w/ -O2 -ftree-vectorize)
2016-08-01  Alan Hayward  <alan.hayward@arm.com>

gcc/
	PR tree-optimization/71818
	* tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
	with non invariant evolutions

testsuite/
	PR tree-optimization/71818
	* gcc.dg/vect/pr71818.c: New

From-SVN: r238955
2016-08-01 14:33:23 +00:00
Jonathan Wakely 9839ff60d0 Remove ignored "xfail" from dg-do compile directives
* testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
	ignored "xfail" from { dg-do compile { xfail selector } } directive.
	* testsuite/23_containers/unordered_multimap/requirements/53339.cc:
	Likewise.
	* testsuite/26_numerics/headers/cmath/
	c99_classification_macros_c++11.cc: Likewise.
	* testsuite/26_numerics/headers/cmath/
	c99_classification_macros_c++98.cc: Likewise.
	* testsuite/26_numerics/headers/cmath/
	c99_classification_macros_c.cc: Likewise.

From-SVN: r238954
2016-08-01 15:13:06 +01:00
Martin Liska bf60c53168 Change dump expectation in PR71857
PR tree-optimization/71857
	* gcc.dg/tree-ssa/ivopt_mult_4.c: Change expectation.

From-SVN: r238953
2016-08-01 13:31:24 +00:00
Jonathan Wakely cbcc9fe8b8 Fix __gnu_cxx::hash_set test to pass in C++98 mode
* testsuite/backward/hash_set/check_construct_destroy.cc: Account
	for different construct/destroy counts in C++98 mode.

From-SVN: r238952
2016-08-01 13:45:47 +01:00
Andreas Schwab 8204be6c83 * include/cpplib.h: Fix comment typo.
From-SVN: r238951
2016-08-01 12:45:32 +00:00
Georg-Johann Lay 90c959fd0c re PR target/72767 ([avr] Some branches report too small insn length)
PR target/72767
	* config/avr/avr.md (length) [branch]: Correct insn length
	attribute for forward branches.

From-SVN: r238948
2016-08-01 12:36:11 +00:00
Georg-Johann Lay ee52b11b30 extend.texi (AVR Built-in Functions): Document __builtin_avr_nops.
* doc/extend.texi (AVR Built-in Functions): Document
	__builtin_avr_nops.
	* config/avr/builtins.def (NOPS): New.
	* config/avr/avr.c (avr_expand_nops): New static function.
	(avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.

From-SVN: r238947
2016-08-01 12:23:17 +00:00
Jonathan Wakely 7481147265 Remove "-x c" from dg-options in libstdc++ C++ test
* testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.

From-SVN: r238946
2016-08-01 13:18:23 +01:00
Jonathan Wakely a02a61eeaa Limit std::tuple tests to run for C++11 and later
* testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
	later.
	* testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
	Likewise.

From-SVN: r238945
2016-08-01 13:18:18 +01:00
Jonathan Wakely 98b5fb3cbc Make libstdc++ debug mode test valid for C++98
* testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
	C++98-compatible initialization for array.

From-SVN: r238944
2016-08-01 13:18:13 +01:00
Jonathan Wakely 6f3b889189 Remove unused headers and variables from libstdc++ tests
* testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
	unused header and variable from compile-only test.
	* testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
	* testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
	* testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
	Likewise.

From-SVN: r238943
2016-08-01 13:18:08 +01:00
Jonathan Wakely 2ab794ebf5 Remove duplicate dg-options directive in string_view test
* testsuite/experimental/string_view/operations/rfind/char/2.cc:
	Remove duplicate dg-options directive.

From-SVN: r238942
2016-08-01 13:17:59 +01:00
Jonathan Wakely 4d16871b22 Use -std=gnu++98 instead of -std=gnu++03 in test
* testsuite/20_util/specialized_algorithms/uninitialized_copy/
	808590.cc: Use -std=gnu++98 instead of -std=gnu++03.

From-SVN: r238941
2016-08-01 13:17:54 +01:00
Jonathan Wakely e350983522 Remove linker options from compile-only tests
* testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
	linker options from compile-only tests.
	* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
	Likewise.

From-SVN: r238940
2016-08-01 13:17:49 +01:00
Jonathan Wakely 9b46e4d6dd Run std::ios_base enum tests for C++11 and up
* testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
	supported for C++11 and later.
	* testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
	* testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.

From-SVN: r238939
2016-08-01 13:17:43 +01:00
Kyrylo Tkachov 8ed49fab92 [AArch64] Allow multiple-of-8 immediate offsets for TImode LDP/STP
* config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
        performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
        addresses.

        * gcc.target/aarch64/ldp_stp_unaligned_1.c: New test.

From-SVN: r238938
2016-08-01 10:20:03 +00:00
Virendra Pathak b91cd96b29 aarch64.c (vulcan_tunings): Update vulcan L1 cache_line_size.
2016-08-01  Virendra Pathak  <virendra.pathak@broadcom.com>

	* config/aarch64/aarch64.c (vulcan_tunings): Update
	vulcan L1 cache_line_size.

From-SVN: r238937
2016-08-01 10:17:08 +00:00
Jan Beulich 76e2c821a4 extend shift count warnings to vector types
gcc/c/
2016-08-01  Jan Beulich  <jbeulich@suse.com>

	* c-fold.c (c_fully_fold_internal): Also emit shift count
	warnings for vector types.
	* c-typeck.c (build_binary_op): Likewise.

gcc/testsuite/
2016-08-01  Jan Beulich  <jbeulich@suse.com>

	* gcc.dg/vshift-6.c, gcc.dg/vshift-7.c: New.

From-SVN: r238936
2016-08-01 09:39:52 +00:00
Uros Bizjak 77c3c27ecc baseline_symbols.txt: Update.
* config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.

From-SVN: r238934
2016-08-01 09:35:22 +02:00
GCC Administrator 1ca417f38c Daily bump.
From-SVN: r238933
2016-08-01 00:16:15 +00:00
Jonathan Wakely c4da1da21e Change std::conditional test to compile-only
* testsuite/20_util/conditional/requirements/typedefs.cc: Change to
	compile-only test.

From-SVN: r238930
2016-07-31 20:37:14 +01:00
Jonathan Wakely 9d5b70b036 Ensure std::atomic test is compiled with optimization
* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
	Ensure test is compiled with optimization.

From-SVN: r238929
2016-07-31 20:30:16 +01:00
Jonathan Wakely ee62805728 Fix DR 438 std::list test to pass in C++98 mode
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
	Adjust dg-prune-output pattern for error in C++98 mode.

From-SVN: r238928
2016-07-31 20:21:59 +01:00
Jonathan Wakely d23d1bee8c Enable std::regex test for C++11 or later
* testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Only
	run for C++11 or later.

From-SVN: r238927
2016-07-31 19:54:31 +01:00
Jonathan Wakely f2738d6cf2 Fix non-portable std::regex test and test more cases
* testsuite/28_regex/basic_regex/ctors/basic/raw_string.cc: Fix
	test to not rely on GNU extension (escaped normal characters in POSIX
	BRE). Enable tests for other strings which are now supported.

From-SVN: r238926
2016-07-31 19:46:30 +01:00
Jonathan Wakely 77f3d97909 Allow std::pair test to run in C++11 mode too
* testsuite/20_util/pair/astuple/get_neg.cc: Use effective-target
	c++11 instead of setting -std=gnu++14.

From-SVN: r238925
2016-07-31 19:12:28 +01:00
Jonathan Wakely 3c040fa4a2 libstdc++/72745 add static assertion for invalid tuple access
PR libstdc++/72745
	* include/std/array (get): Use positive message for static assertions.
	* include/std/functional (_Safe_tuple_element_t): Fix indentation.
	* include/std/tuple (tuple_element<I, tuple<>>): Add partial
	specialization for invalid indices, with static assertion.
	* testsuite/20_util/tuple/element_access/get_neg.cc: New test.

From-SVN: r238924
2016-07-31 18:08:52 +01:00
Jonathan Wakely f245e3a0ee Move dg-error directives to relevant lines
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
	dg-error to relevant line.
	* testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
	Likewise.
	* testsuite/23_containers/forward_list/requirements/dr438/
	assign_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/forward_list/requirements/dr438/
	insert_neg.cc: Likewise.
	* testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
	Likewise.
	* testsuite/26_numerics/random/linear_congruential_engine/
	requirements/non_uint_neg.cc: Likewise.
	* testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
	Likewise. Also test for std::atomic_address.

From-SVN: r238923
2016-07-31 17:51:08 +01:00
William Schmidt 3502959726 Oops, ChangeLog didn't commit
From-SVN: r238922
2016-07-31 15:15:28 +00:00
Ville Voutilainen 8c9142276b Add missing variable traits, fix testsuite failures.
* include/bits/uses_allocator.h (uses_allocator_v): New.
	* include/std/functional (is_bind_expression_v, is_placeholder_v):
	Likewise.
	* testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust.
	* testsuite/20_util/duration/literals/range.cc: Likewise.
	* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
	* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
	* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
	* testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
	New.

From-SVN: r238921
2016-07-31 17:52:53 +03:00
William Schmidt 589584612f divkc3-1.c: Require POWER8 hardware.
2016-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/divkc3-1.c: Require POWER8 hardware.
	* gcc.target/powerpc/mulkc3-1.c: Likewise.

From-SVN: r238919
2016-07-31 14:27:32 +00:00
Jonathan Wakely 2f2971492b Check __STRICT_ANSI__ for 128-bit arithmetic types
* testsuite/18_support/numeric_limits/40856.cc [__STRICT_ANSI__]: Do
	not test 128-bit types.
	* testsuite/20_util/is_floating_point/value.cc: Likewise.
	* testsuite/20_util/is_integral/value.cc: Likewise.
	* testsuite/20_util/is_signed/value.cc: Likewise.
	* testsuite/20_util/is_unsigned/value.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs-1.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs-1.cc:
	Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
	Likewise.

From-SVN: r238918
2016-07-31 14:06:38 +01:00
Jonathan Wakely 7523c5eb1a Fix file extension of libstdc++ test
* testsuite/26_numerics/headers/cstdlib/54686.c: Rename to 54686.cc.

From-SVN: r238917
2016-07-31 14:03:46 +01:00
Jonathan Wakely 3aa4b66ad9 Make check_effective_target_c++ work for libstdc++
* lib/target-supports.exp (check_effective_target_c): Fix indentation.
	(check_effective_target_c++): Likewise. Also match for libstdc++.

From-SVN: r238916
2016-07-31 14:02:17 +01:00
Steven G. Kargl 93cb9a5aa1 re PR fortran/41922 (Diagnostic: No location shown for overlappingly initialized EQUIVALENCEd character vars)
2016-07-30  Steven G. Kargl <kargl@gcc.gnu.org>

	PR fortran/41922
	* target-memory.c (expr_to_char): Pass in locus and use it in error
	messages.
	(gfc_merge_initializers): Ditto.
	* target-memory.h: Update prototype for gfc_merge_initializers ().
	* trans-common.c (get_init_field): Use the correct locus.

2016-07-30  Steven G. Kargl <kargl@gcc.gnu.org>

	PR fortran/41922
	* gfortran.dg/equiv_constraint_5.f90: Adjust the error message.
	* gfortran.dg/equiv_constraint_7.f90: Ditto.
	* gfortran.dg/pr41922.f90: New test.

From-SVN: r238915
2016-07-31 01:51:37 +00:00
GCC Administrator 01afb976de Daily bump.
From-SVN: r238914
2016-07-31 00:16:16 +00:00
Steven G. Kargl 9fcb28197f re PR fortran/68566 (ICE on using unusable array in reshape (double free or corruption))
2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/68566
	* check.c (gfc_check_reshape): Check for constant expression.

2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/68566
	* gfortran.dg/pr68566.f90: new test.

From-SVN: r238911
2016-07-30 23:01:06 +00:00
Martin Sebor 8bada5cd4e PR c++/60760 - arithmetic on null pointers should not be allowed in constant
PR c++/60760 - arithmetic on null pointers should not be allowed in constant
PR c++/71091 - constexpr reference bound to a null pointer dereference

gcc/cp/ChangeLog:

	PR c++/60760
	PR c++/71091
        * constexpr.c (cxx_eval_binary_expression): Reject invalid expressions
        involving null pointers.
        (cxx_eval_component_reference): Reject null pointer dereferences.
        (cxx_eval_indirect_ref): Reject indirecting through null pointers.
        (cxx_eval_constant_expression): Reject invalid expressions involving
        null pointers.

gcc/testsuite/ChangeLog:

	PR c++/60760
	PR c++/71091
	* g++.dg/cpp0x/constexpr-cast.C: New test.
        * g++.dg/cpp0x/constexpr-nullptr-2.C: New test.
        * g++.dg/cpp1y/constexpr-sfinae.C: Correct.
        * g++.dg/ubsan/pr63956.C: Correct.

From-SVN: r238909
2016-07-30 16:36:56 -06:00
Michael Meissner d0047a2538 rs6000-protos.h (rs6000_adjust_vec_address): New function that takes a vector memory address...
[gcc]
2016-07-30  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
	function that takes a vector memory address, a hard register, an
	element number and a temporary base register, and recreates an
	address that points to the appropriate element within the vector.
	* config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
	(rs6000_split_vec_extract_var): Add support for the target of a
	vec_extract with variable element number being a scalar memory
	location.
	(rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
	swappable.
	* config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
	vsx_extract_<mode>_load insn with a new insn that optimizes
	storing either element to a memory location, using scratch
	registers to pick apart the vector and reconstruct the address.
	(vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
	(vsx_extract_<mode>_store): Rework alternatives to more correctly
	support Altivec registers.  Add support for ISA 3.0 Altivec d-form
	store instruction.
	(vsx_extract_<mode>_var): Add support for extracting a variable
	element number from memory.

[gcc/testsuite]
2016-07-30  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/vec-extract-2.c: New tests for vec_extract of
	vector double or vector long where the vector is in memory.
	* gcc.target/powerpc/vec-extract-3.c: Likewise.
	* gcc.target/powerpc/vec-extract-4.c: Likewise.

From-SVN: r238908
2016-07-30 22:31:16 +00:00
Steven G. Kargl e4f7a5dffe re PR fortran/69867 (ICE on initializing character in type with array of incompatible data)
2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/69867
	* decl.c (build_struct): Ensure that pointers point to something.

2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/69867
	* gfortran.dg/pr69867.f90: New test.

From-SVN: r238907
2016-07-30 20:05:10 +00:00
Steven G. Kargl b441ae1d89 re PR fortran/69962 (ICE on missing parameter attribute, in gfc_set_constant_character_len)
2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/69962
	* decl.c (gfc_set_constant_character_len):  if expr is not
	constant issue an error instead of an ICE.


2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/69962
	* gfortran.dg/pr69962.f90: New test.

From-SVN: r238906
2016-07-30 19:24:49 +00:00
Steven G. Kargl 712dff3172 re PR fortran/70006 (Duplicate errors "label not defined")
2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/70006
	* io.c (gfc_resolve_dt): Use correct locus.
	* resolve.c (resolve_branch): Ditto.

2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/70006
	* gfortran.dg/pr70006.f90: New test.

From-SVN: r238905
2016-07-30 18:18:49 +00:00
Steven G. Kargl fb42421ef0 re PR fortran/71730 (ICE when character length specification uses an undefined variable)
2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/71730
	* decl.c (char_len_param_value): Check return value of
	gfc_reduce_init_expr().

2016-07-30  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/71730
	* gfortran.dg/pr71730.f90: New test.
	* gfortran.dg/bounds_check_strlen_2.f90: Fix invalid code.
	* gfortran.dg/array_constructor_27.f03: Update dg-error message.
	* gfortran.dg/array_constructor_26.f03: Ditto.

From-SVN: r238904
2016-07-30 16:19:14 +00:00
GCC Administrator 12f549f4a4 Daily bump.
From-SVN: r238902
2016-07-30 00:16:14 +00:00
Bill Schmidt d6e69705e2 _divkc3.c: Add copyright/license boilerplate.
2016-07-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/_divkc3.c: Add copyright/license boilerplate.
	* config/rs6000/_mulkc3.c: Likewise.

From-SVN: r238894
2016-07-29 20:15:54 +00:00
Ville Voutilainen 137422c80c Implement C++17 variable templates for type traits.
* include/std/chrono (treat_as_floating_point_v): New.
	* include/std/ratio (ratio_equal_v, ratio_not_equal_v)
	(ratio_less_v, ratio_less_equal_v, ratio_greater_v)
	(ratio_greater_equal_v): Likewise.
	* include/std/system_error (is_error_code_enum_v)
	(is_error_condition_enum_v): Likewise.
	* include/std/tuple (tuple_size_v): Likewise.
	* type_traits (conjunction_v, disjunction_v, negation_v)
	(is_void_v, is_null_pointer_v, is_integral_v, is_floating_point_v)
	(is_array_v, is_pointer_v, is_lvalue_reference_v)
	(is_rvalue_reference_v, is_member_object_pointer_v)
	(is_member_function_pointer_v, is_enum_v, is_union_v)
	(is_class_v, is_function_v, is_reference_v, is_arithmetic_v)
	(is_fundamental_v, is_object_v, is_scalar_v, is_compound_v)
	(is_member_pointer_v, is_const_v, is_volatile_v, is_trivial_v)
	(is_trivially_copyable_v, is_standard_layout_v)
	(is_pod_v, is_literal_type_v, is_empty_v, is_polymorphic_v)
	(is_abstract_v, is_final_v, is_signed_v, is_unsigned_v)
	(is_constructible_v, is_default_constructible_v)
	(is_copy_constructible_v, is_move_constructible_v)
	(is_assignable_v, is_copy_assignable_v, is_move_assignable_v)
	(is_destructible_v, is_trivially_constructible_v)
	(is_trivially_default_constructible_v)
 	(is_trivially_copy_constructible_v, is_trivially_move_constructible_v)
	(is_trivially_assignable_v, is_trivially_copy_assignable_v)
	(is_trivially_move_assignable_v, is_trivially_destructible_v)
	(is_nothrow_constructible_v, is_nothrow_default_constructible_v)
	(is_nothrow_copy_constructible_v, is_nothrow_move_constructible_v)
	(is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
	(is_nothrow_move_assignable_v, is_nothrow_destructible_v)
	(has_virtual_destructor_v, alignment_of_v, rank_v, extent_v)
	(is_same_v, is_base_of_v, is_convertible_v): Likewise.
	* testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise.
	* testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
	Likewise.
	* testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
	* testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
	* testsuite/20_util/variable_templates_for_traits.cc: Likewise.

From-SVN: r238892
2016-07-29 22:01:39 +03:00