Commit Graph

161312 Commits

Author SHA1 Message Date
Allan Sandfeld Jensen
5a599c460e re PR tree-optimization/85692 (Two source permute not used for vector initialization)
PR tree-optimization/85692
	* tree-ssa-forwprop.c (simplify_vector_constructor): Try two
	source permute as well.

	* gcc.target/i386/pr85692.c: New test.

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

From-SVN: r260155
2018-05-11 09:38:49 +02:00
Martin Liska
19916065b7 Support LLVM style of no_sanitize attribute (PR sanitizer/85556).
2018-05-11  Martin Liska  <mliska@suse.cz>

        PR sanitizer/85556
	* doc/extend.texi: Document LLVM style format for no_sanitize
	attribute.
2018-05-11  Martin Liska  <mliska@suse.cz>

        PR sanitizer/85556
	* c-attribs.c (handle_no_sanitize_attribute): Iterate all
	TREE_LIST values.
2018-05-11  Martin Liska  <mliska@suse.cz>

        PR sanitizer/85556
	* c-c++-common/ubsan/attrib-6.c: New test.

From-SVN: r260154
2018-05-11 07:37:35 +00:00
Jason Merrill
683be2f77b decl.c (cp_finish_decl): Don't instantiate auto variable.
* decl.c (cp_finish_decl): Don't instantiate auto variable.

	(check_static_variable_definition): Allow auto.
	* constexpr.c (ensure_literal_type_for_constexpr_object): Likewise.

From-SVN: r260150
2018-05-10 22:54:52 -04:00
Edward Smith-Rowland
3a2e98ce72 correct changelog!
2018-05-10  Edward Smith-Rowland  <3dw4rd@verizon.net>

	PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
	* include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
	argument defaulted to +1.  Doxy comments on same.
	* testsuite/special_functions/02_assoc_legendre/
	check_value.cc: Regen.
	* testsuite/tr1/5_numerical_facilities/special_functions/
	02_assoc_legendre/check_value.cc: Regen.

From-SVN: r260149
2018-05-11 01:44:05 +00:00
GCC Administrator
af2d2ed17d Daily bump.
From-SVN: r260147
2018-05-11 00:16:34 +00:00
Steven G. Kargl
9724eac36a re PR fortran/85687 (ICE in gfc_sym_identifier, at fortran/trans-decl.c:351)
2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/85687
	* check.c (gfc_check_rank): Check that the argument is a data object.

2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/85687
	* gfortran.dg/pr85687.f90: new test.

From-SVN: r260141
2018-05-10 22:49:44 +00:00
Michael Meissner
aa90c676b3 rs6000.c (mode_supports_dq_form): Rename mode_supports_vsx_dform_quad to mode_supports_dq_form.
2018-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (mode_supports_dq_form): Rename
	mode_supports_vsx_dform_quad to mode_supports_dq_form.
	(mode_supports_vsx_dform_quad): Likewise.
	(mode_supports_vmx_dform): Move these functions to be next to the
	other mode_supports functions.
	(mode_supports_dq_form): Likewise.
	(quad_address_p): Change calls of mode_supports_vsx_dform_quad to
	mode_supports_dq_form.
	(reg_offset_addressing_ok_p): Likewise.
	(offsettable_ok_by_alignment): Likewise.
	(rs6000_legitimate_offset_address_p): Likewise.
	(legitimate_lo_sum_address_p): Likewise.
	(rs6000_legitimize_address): Likewise.
	(rs6000_legitimize_reload_address): Likewise.
	(rs6000_secondary_reload_inner): Likewise.
	(rs6000_preferred_reload_class): Likewise.
	(rs6000_output_move_128bit): Likewise.

From-SVN: r260140
2018-05-10 22:46:21 +00:00
Steven G. Kargl
14ee7de064 re PR fortran/85521 (ICE in gfc_resolve_character_array_constructor, at fortran/array.c:2049)
2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/85521
	* array.c (gfc_resolve_character_array_constructor): Substrings
	with upper bound smaller than lower bound are zero length strings.

2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/85521
	* gfortran.dg/pr85521_1.f90: New test.
	* gfortran.dg/pr85521_2.f90: New test.

From-SVN: r260139
2018-05-10 22:45:38 +00:00
Steven G. Kargl
7b24db31a4 re PR fortran/70870 (Segmentation violation in gfc_assign_data_value)
2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/70870
	* data.c (gfc_assign_data_value): Check that a data object does
	not also have default initialization.

2018-05-10  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/70870
	* gfortran.dg/pr70870_1.f90: New test.

From-SVN: r260138
2018-05-10 22:43:00 +00:00
Uros Bizjak
b0aed64bde * gcc.target/i386/xgetsetbv.c: Fix whitespace.
From-SVN: r260137
2018-05-10 23:19:59 +02:00
Uros Bizjak
1c3c479a04 i386.c (ix86_expand_builtin): Generate SImode target register for null target.
* config/i386/i386.c (ix86_expand_builtin) <case IX86_BUILTIN_RDPID>:
	Generate SImode target register for null target.
	<case IX86_BUILTIN_XGETBV>: Ditto.
	<case IX86_BUILTIN_XSETBV>: Optimize LSHIFTRT generation.
	* config/i386/xsaveintrin.h (_xgetbv): Add missing return.

testsuite/ChangeLog:

	* gcc.target/i386/xgetsetbv.c: Check also variable arguments.

From-SVN: r260135
2018-05-10 22:59:18 +02:00
Carl Love
267eee04fe rs6000.md (prefetch): Generate ISA 2.06 instructions dcbtt and dcbtstt if operands[2] is 0.
gcc/ChangeLog:

2018-05-10  Carl Love  <cel@us.ibm.com>

	* config/rs6000/rs6000.md (prefetch): Generate ISA 2.06 instructions
	dcbtt and dcbtstt if operands[2] is 0.

From-SVN: r260134
2018-05-10 20:22:22 +00:00
Jason Merrill
b947b54c3d cp-tree.h (DECL_CONSTRUCTOR_P): Use DECL_CXX_CONSTRUCTOR_P.
* cp-tree.h (DECL_CONSTRUCTOR_P): Use DECL_CXX_CONSTRUCTOR_P.

	(DECL_DESTRUCTOR_P): Use DECL_CXX_DESTRUCTOR_P.

From-SVN: r260133
2018-05-10 15:33:25 -04:00
Jonathan Wakely
0f8a1c150e Document Dual ABI for std::ios_base::failure
* doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer.
	* doc/xml/manual/debug_mode.xml: Add array and forward_list to list
	of C++11 containers with Debug Mode support.
	* doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure.
	* doc/html/*: Regenerate.

From-SVN: r260129
2018-05-10 20:13:42 +01:00
Jason Merrill
a6e1cfddc4 regex_compiler.h (_S_cache_size): Change from function to variable.
* include/bits/regex_compiler.h (_S_cache_size): Change from
	function to variable.

From-SVN: r260128
2018-05-10 15:12:23 -04:00
Jason Merrill
f8e94a0156 Core issue 2310 - conversion to base of incomplete type.
* class.c (build_base_path): Check COMPLETE_TYPE_P for source type.

From-SVN: r260127
2018-05-10 14:57:55 -04:00
Jason Merrill
d86d6e27db CWG 2267 - list-initialization of reference temporary
* call.c (reference_binding): List-initializing a reference
	temporary is copy-list-initialization.

From-SVN: r260126
2018-05-10 14:57:50 -04:00
Jason Merrill
2c9c6adac9 * parser.c (cp_parser_class_head): Use num_template_headers_for_class.
From-SVN: r260125
2018-05-10 14:41:00 -04:00
Jason Merrill
5d7b4c6fe9 Make sure we aren't trying to do a nested instantiation in template context.
* pt.c (instantiate_decl): Make sure we aren't trying to do a nested
	instantiation in template context.

From-SVN: r260124
2018-05-10 14:40:55 -04:00
Jason Merrill
1e6da0c983 * class.c (vbase_has_user_provided_move_assign): Use user_provided_p.
From-SVN: r260123
2018-05-10 14:40:48 -04:00
Jason Merrill
86cf10840b * lambda.c (lambda_expr_this_capture): Improve logic.
From-SVN: r260122
2018-05-10 14:40:43 -04:00
Jason Merrill
fa141e9b3c decl.c (make_typename_type): s/parameters/arguments/.
* decl.c (make_typename_type): s/parameters/arguments/.

	* parser.c (cp_parser_nested_name_specifier_opt): Likewise.
	* pt.c (make_pack_expansion): Correct error message.

From-SVN: r260121
2018-05-10 14:39:19 -04:00
Marek Polacek
4c35d09956 re PR fortran/85735 (f951 crashes on empty input)
PR fortran/85735
	* options.c (gfc_post_options): Set main_input_filename.

From-SVN: r260120
2018-05-10 18:33:22 +00:00
Jakub Jelinek
79e7b1fe32 re PR c++/85662 ("error: non-constant condition for static assertion" from __builtin_offsetof in C++)
PR c++/85662
	* c-common.h (fold_offsetof_1): Removed.
	(fold_offsetof): Add TYPE argument defaulted to size_type_node and
	CTX argument defaulted to ERROR_MARK.
	* c-common.c (fold_offsetof_1): Renamed to ...
	(fold_offsetof): ... this.  Remove wrapper function.  Add TYPE
	argument, convert the pointer constant to TYPE and use size_binop
	with PLUS_EXPR instead of fold_build_pointer_plus if type is not
	a pointer type.  Adjust recursive calls.

	* c-fold.c (c_fully_fold_internal): Use fold_offsetof rather than
	fold_offsetof_1, pass TREE_TYPE (expr) as TYPE to it and drop the
	fold_convert_loc.
	* c-typeck.c (build_unary_op): Use fold_offsetof rather than
	fold_offsetof_1, pass argtype as TYPE to it and drop the
	fold_convert_loc.

	* cp-gimplify.c (cp_fold): Use fold_offsetof rather than
	fold_offsetof_1, pass TREE_TYPE (x) as TYPE to it and drop the
	fold_convert.

	* g++.dg/ext/offsetof2.C: New test.

From-SVN: r260119
2018-05-10 19:40:28 +02:00
Uros Bizjak
c7b7749d9f re PR tree-optimization/85693 (Generation of SAD (Sum of Absolute Difference) instruction)
PR target/85693
	* config/i386/sse.md (usadv64qi): New expander.

From-SVN: r260117
2018-05-10 16:50:59 +02:00
Thomas Koenig
6c4578da00 re PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with KIND=/BACK=)
2018-05-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/54613
	* intrinsic.texi: Document BACK for MINLOC and MAXLOC.

From-SVN: r260116
2018-05-10 14:31:54 +00:00
Edward Smith-Rowland
88bf4c34e3 PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
2018-05-10  Edward Smith-Rowland  <3dw4rd@verizon.net>

	PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
	* include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
	argument defaulted to +1.  Doxy comments on same.
	* testsuite/special_functions/02_assoc_legendre/
	check_assoc_legendre.cc: Regen.
	* testsuite/tr1/5_numerical_facilities/special_functions/
	02_assoc_legendre/check_tr1_assoc_legendre.cc: Regen.

From-SVN: r260115
2018-05-10 13:59:52 +00:00
Jonathan Wakely
daf6948991 PR libstdc++/85729 add linkage specifications to headers
PR libstdc++/85729
	* include/bits/c++config.h (__replacement_assert): Add linkage
	specification.
	* include/bits/std_abs.h: Add comment to closing brace of block.
	* include/c_global/cstddef: Add linkage specification.
	* include/c_global/cstring: Likewise.
	* include/c_global/cwchar: Likewise.

From-SVN: r260114
2018-05-10 13:35:45 +01:00
Paul Thomas
9caa7e073b re PR fortran/68846 (Pointer function as LValue doesn't work when the assignment regards a dummy argument.)
2018-05-10  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/68846
	PR fortran/70864
	* resolve.c (get_temp_from_expr): The temporary must not have
	dummy or intent attributes.

2018-05-10  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/68846
	* gfortran.dg/temporary_3.f90 : New test.

	PR fortran/70864
	* gfortran.dg/temporary_2.f90 : New test.

From-SVN: r260113
2018-05-10 10:48:50 +00:00
Martin Liska
84ec5aea48 Improve boostrap-ubsan config (PR bootstrap/64914).
2018-05-10  Martin Liska  <mliska@suse.cz>

	PR bootstrap/64914
	* bootstrap-ubsan.mk: Define UBSAN_BOOTSTRAP.
2018-05-10  Martin Liska  <mliska@suse.cz>

	PR bootstrap/64914
	* md5.c: Use strict alignment with UBSAN_BOOTSTRAP.

From-SVN: r260112
2018-05-10 10:15:42 +00:00
Segher Boessenkool
427a7384b9 rs6000: Remove -maltivec={be,le}
This removes the -maltivec=be and -maltivec=le options.  Those were
deprecated in GCC 8.

Altivec will keep working on both BE and LE; it is just the BE-vectors-
on-LE that is removed (the other way around was never supported).

The main change is replacing VECTOR_ELT_ORDER_BIG by BYTES_BIG_ENDIAN
(and then simplifying).


	* config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh,
	altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw): Remove
	-maltivec=be support.
	(vec_widen_umult_even_v16qi, vec_widen_smult_even_v16qi,
	vec_widen_umult_even_v8hi, vec_widen_smult_even_v8hi,
	vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
	vec_widen_umult_odd_v16qi, vec_widen_smult_odd_v16qi,
	vec_widen_umult_odd_v8hi, vec_widen_smult_odd_v8hi,
	vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si, altivec_vpkpx,
	altivec_vpks<VI_char>ss, altivec_vpks<VI_char>us,
	altivec_vpku<VI_char>us, altivec_vpku<VI_char>um, altivec_vsum2sws,
	altivec_vsumsws): Adjust.
	(altivec_vspltb *altivec_vspltb_internal, altivec_vsplth,
	*altivec_vsplth_internal, altivec_vspltw, *altivec_vspltw_internal,
	altivec_vspltsf, *altivec_vspltsf_internal): Remove -maltivec=be
	support.
	(altivec_vperm_<mode>, altivec_vperm_<mode>_uns,
	altivec_vupkhs<VU_char>, altivec_vupkls<VU_char>, altivec_vupkhpx,
	altivec_vupklpx, altivec_lvsl, altivec_lvsr): Adjust.
	(altivec_lve<VI_char>x): Delete expand.
	(*altivec_lve<VI_char>x_internal): Rename to...
	(altivec_lve<VI_char>x): ... this.
	(altivec_lvxl_<mode>): Delete expand.
	(*altivec_lvxl_<mode>_internal): Rename to ...
	(altivec_lvxl_<mode>): ... this.
	(altivec_stvxl_<mode>): Delete expand.
	(*altivec_stvxl_<mode>_internal): Rename to ...
	(altivec_stvxl_<mode>): ... this.
	(altivec_stve<VI_char>x): Delete expand.
	(*altivec_stve<VI_char>x_internal): Rename to ...
	(altivec_stve<VI_char>x): ... this.
	(doublee<mode>2, unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2,
	doubleh<mode>2, unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2,
	reduc_plus_scal_<mode>): Adjust.
	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust
	comment.
	(rs6000_cpu_cpp_builtins): Adjust.
	(altivec_resolve_overloaded_builtin): Remove -maltivec=be support.
	* config/rs6000/rs6000-protos.h (altivec_expand_lvx_be,
	altivec_expand_stvx_be, altivec_expand_stvex_be): Delete.
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
	-maltivec=be support.
	(rs6000_split_vec_extract_var): Adjust.
	(rs6000_split_v4si_init): Adjust.
	(swap_selector_for_mode): Delete.
	(altivec_expand_lvx_be, altivec_expand_stvx_be,
	altivec_expand_stvex_be): Delete.
	(altivec_expand_lv_builtin, altivec_expand_stv_builtin): Remove
	-maltivec=be support.
	(rs6000_gimple_fold_builtin): Ditto.
	(rs6000_generate_float2_double_code, rs6000_generate_float2_code):
	Adjust.
	* config/rs6000/rs6000.h (VECTOR_ELT_ORDER_BIG): Delete.
	(TARGET_DIRECT_MOVE_64BIT): Adjust.
	* config/rs6000/rs6000.md (split for extendsidi2 for vectors): Adjust.
	* config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Delete.
	* config/rs6000/vsx.md (floate<mode>, unsfloatev2di, floato<mode>,
	unsfloatov2di, vsignedo_v2df, vsignede_v2df, vunsignedo_v2df,
	vunsignede_v2df, vsx_extract_<mode>_p9, *vsx_extract_si,
	*vsx_extract_<mode>_p8, *vsx_extract_si_<uns>float_df,
	*vsx_extract_si_<uns>float_<mode>, vsx_set_<mode>_p9, vsx_set_v4sf_p9,
	*vsx_insert_extract_v4sf_p9, *vsx_insert_extract_v4sf_p9_2, and an
	anonymous split): Adjust.
	(vsx_mergel_<mode>, vsx_mergeh_<mode>): Remove -maltivec=be support.
	(vsx_xxspltd_<mode>, extract4b, insert4b): Adjust.

gcc/testsuite/
	* gcc.dg/vmx/extract-be-order.c: Delete testcase.
	* gcc.dg/vmx/extract-vsx-be-order.c: Delete testcase.
	* gcc.dg/vmx/insert-be-order.c: Delete testcase.
	* gcc.dg/vmx/insert-vsx-be-order.c: Delete testcase.
	* gcc.dg/vmx/ld-be-order.c: Delete testcase.
	* gcc.dg/vmx/ld-vsx-be-order.c: Delete testcase.
	* gcc.dg/vmx/lde-be-order.c: Delete testcase.
	* gcc.dg/vmx/ldl-be-order.c: Delete testcase.
	* gcc.dg/vmx/ldl-vsx-be-order.c: Delete testcase.
	* gcc.dg/vmx/merge-be-order.c: Delete testcase.
	* gcc.dg/vmx/merge-vsx-be-order.c: Delete testcase.
	* gcc.dg/vmx/mult-even-odd-be-order.c: Delete testcase.
	* gcc.dg/vmx/pack-be-order.c: Delete testcase.
	* gcc.dg/vmx/perm-be-order.c: Delete testcase.
	* gcc.dg/vmx/splat-be-order.c: Delete testcase.
	* gcc.dg/vmx/splat-vsx-be-order.c: Delete testcase.
	* gcc.dg/vmx/st-be-order.c: Delete testcase.
	* gcc.dg/vmx/st-vsx-be-order.c: Delete testcase.
	* gcc.dg/vmx/ste-be-order.c: Delete testcase.
	* gcc.dg/vmx/stl-be-order.c: Delete testcase.
	* gcc.dg/vmx/stl-vsx-be-order.c: Delete testcase.
	* gcc.dg/vmx/sum2s-be-order.c: Delete testcase.
	* gcc.dg/vmx/unpack-be-order.c: Delete testcase.
	* gcc.dg/vmx/vsums-be-order.c: Delete testcase.
	* gcc.target/powerpc/vec-setup-be-double.c: Delete testcase.
	* gcc.target/powerpc/vec-setup-be-long.c: Delete testcase.
	* gcc.target/powerpc/vec-setup.h: Remove -maltivec=be support.

From-SVN: r260109
2018-05-10 12:06:00 +02:00
Eric Botcazou
b4d3485e4f configure.ac (gcc_gxx_include_dir_add_sysroot): Set it to 1 only when --with-gxx-include-dir is also specified.
* configure.ac (gcc_gxx_include_dir_add_sysroot): Set it to 1 only
	when --with-gxx-include-dir is also specified.
	* configure: Regenerate.

From-SVN: r260108
2018-05-10 09:39:00 +00:00
Jakub Jelinek
573d8a243d re PR tree-optimization/85699 (gcc.dg/nextafter-2.c fail)
PR tree-optimization/85699
	* gcc.dg/nextafter-1.c (NO_LONG_DOUBLE): Define if not defined.  Use
	!NO_LONG_DOUBLE instead of __LDBL_MANT_DIG__ != 106.
	* gcc.dg/nextafter-2.c: Include stdlib.h.  For glibc < 2.24 define
	NO_LONG_DOUBLE to 1 before including nextafter-1.c.

From-SVN: r260107
2018-05-10 09:38:24 +02:00
Eric Botcazou
86c12f7629 re PR c++/85400 (invalid Local Dynamic TLS relaxation for symbol defined in method)
PR c++/85400
cp/
	* decl2.c (adjust_var_decl_tls_model): New static function.
	(comdat_linkage): Call it on a variable.
	(maybe_make_one_only): Likewise.
c-family/
	* c-attribs.c (handle_visibility_attribute): Do not set no_add_attrs.

From-SVN: r260106
2018-05-10 07:36:38 +00:00
GCC Administrator
09dd57a3a4 Daily bump.
From-SVN: r260104
2018-05-10 00:16:21 +00:00
Ian Lance Taylor
2f55f4aa6c go/build, cmd/go: update to match recent changes to gc
Several recent changes to the gc version of cmd/go improve the
    gofrontend support. These changes are partially copies of existing
    gofrontend differences, and partially new code. This CL makes the
    gofrontend match the upstream code.
    
    The changes included here come from:
        https://golang.org/cl/111575
        https://golang.org/cl/111595
        https://golang.org/cl/111635
        https://golang.org/cl/111636
    
    For the record, the following recent gc changes are based on code
    already present in the gofrontend repo:
        https://golang.org/cl/110915
        https://golang.org/cl/111615
    
    For the record, a gc change, partially based on earlier gofrontend
    work, also with new gc code, was already copied to gofrontend repo in
    CL 111099:
        https://golang.org/cl/111097
    
    This moves the generated list of standard library packages from
    cmd/go/internal/load to go/build.
    
    Reviewed-on: https://go-review.googlesource.com/112475

gotools/:
	* Makefile.am (check-go-tool): Don't copy zstdpkglist.go.
	* Makefile.in: Rebuild.

From-SVN: r260097
2018-05-09 21:49:47 +00:00
Jim Wilson
f2410266a0 RISC-V: Add with-multilib-list support.
gcc/
	PR target/84797
	* config.gcc (riscv*-*-*): Handle --with-multilib-list.
	* config/riscv/t-withmultilib: New.
	* config/riscv/withmultilib.h: New.
	* doc/install.texi: Document RISC-V --with-multilib-list support.

From-SVN: r260096
2018-05-09 14:17:14 -07:00
François Dumont
6c882d0fdc safe_iterator.h (_Safe_iterator<>::_M_constant()): Rename in...
2018-05-09  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()):
	Rename in...
	(_Safe_iterator<>::_S_constant()): ...that.
	* include/debug/safe_local_iterator.h
	(_Safe_local_iterator<>::_M_constant()): Rename in...
	(_Safe_local_iterator<>::_S_constant()): ...that.
	* include/debug/formatter.h: Remove bits/cpp_type_traits.h include.
	(_Iterator_state::__rbegin): New.
	(_Iterator_state::__rmiddle): New.
	(_Iterator_state::__rend): New.
	(_Parameter::_Parameter(const _Safe_iterator<>&, const char*,
	_Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying
	iterator type.
	(_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*,
	_Is_iterator)): Likewise.
	(_Parameter::_S_reverse_state(_Iterator_state)): New.
        (_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*,
	_Is_iterator)): New.
	(_Parameter(std::reverse_iterator<> const&, const char*,
	_Is_iterator)): New.
	(_Parameter(std::reverse_iterator<_Safe_iterator<>> const&,
	const char*, _Is_iterator)): New.
	(_Parameter(std::move_iterator<> const&, const char*, _Is_iterator):
	New.
	(_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*,
	_Is_iterator)): New.
	* testsuite/24_iterators/move_iterator/debug_neg.cc: New.
	* testsuite/24_iterators/normal_iterator/debug_neg.cc: New.
	* testsuite/24_iterators/reverse_iterator/debug_neg.cc: New.

From-SVN: r260093
2018-05-09 20:04:46 +00:00
Paolo Carlini
bb6cb6e3e2 re PR c++/85713 (ICE in dependent_type_p, at cp/pt.c:24582 on valid code)
2018-05-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85713
	* g++.dg/cpp1y/lambda-generic-85713.C: New.

From-SVN: r260092
2018-05-09 19:46:47 +00:00
Carl Love
eb1d9e8e6f builtins-8-runnable.c: New builtin test file.
gcc/testsuite/ChangeLog:

2018-05-09 Carl Love  <cel@us.ibm.com>
	* gcc.target/powerpc/builtins-8-runnable.c: New builtin test file.

From-SVN: r260090
2018-05-09 19:21:24 +00:00
Paolo Carlini
9410d82460 re PR c++/85713 (ICE in dependent_type_p, at cp/pt.c:24582 on valid code)
/cp
2018-05-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85713
	Revert:
	2018-05-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84588
	* parser.c (cp_parser_parameter_declaration_list): When the
	entire parameter-declaration-list is erroneous maybe call
	abort_fully_implicit_template.

/testsuite
2018-05-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85713
	Revert:
	2018-05-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84588
	* g++.dg/cpp1y/pr84588.C: New.

From-SVN: r260087
2018-05-09 16:19:09 +00:00
Paolo Carlini
1a9f989a29 re PR c++/85713 (ICE in dependent_type_p, at cp/pt.c:24582 on valid code)
/cp
2018-05-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85713
	Revert:
	2018-05-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84588
	* parser.c (cp_parser_parameter_declaration_list): When the
	entire parameter-declaration-list is erroneous maybe call
	abort_fully_implicit_template.

/testsuite
2018-05-09  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85713
	Revert:
	2018-05-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84588
	* g++.dg/cpp1y/pr84588.C: New.

From-SVN: r260086
2018-05-09 16:17:36 +00:00
Tom de Vries
f5ad16f1db [openacc, libgomp] Use GOMP_ASYNC_SYNC in GOACC_declare
2018-05-09  Tom de Vries  <tom@codesourcery.com>

	PR libgomp/82901
	* oacc-parallel.c (GOACC_declare): Use GOMP_ASYNC_SYNC as async argument
	to GOACC_enter_exit_data.

From-SVN: r260085
2018-05-09 16:01:30 +00:00
Joshua Watt
e778577773 Add ax_pthread.m4 for use in binutils-gdb
config/
	* ax_pthread.m4: Add file

From-SVN: r260083
2018-05-09 11:25:27 -04:00
Andreas Schwab
247f726f8a * gcc.target/aarch64/sve/vcond_6.c: Add missing brace.
From-SVN: r260082
2018-05-09 14:17:31 +00:00
Tom de Vries
edbd038a5f [openacc] Factor out async argument utility functions
2018-05-09  Tom de Vries  <tom@codesourcery.com>

	PR libgomp/83792
	* oacc-int.h (async_valid_stream_id_p, async_valid_p)
	(async_synchronous_p): New function.
	* oacc-async.c (acc_async_test, acc_wait, acc_wait_all_async): Use
	async_valid_p.
	* oacc-cuda.c (acc_get_cuda_stream, acc_set_cuda_stream): Use
	async_valid_stream_id_p.
	* oacc-mem.c (gomp_acc_remove_pointer): Use async_synchronous_p.
	* oacc-parallel.c (GOACC_parallel_keyed): Same.

From-SVN: r260081
2018-05-09 13:52:49 +00:00
Jonathan Wakely
88b1e41c2d Make std::function tolerate semantically non-CopyConstructible objects
To satisfy the CopyConstructible requirement a callable object stored in
a std::function must behave the same when copied from a const or
non-const source. If copying a non-const object doesn't produce an
equivalent copy then the behaviour is undefined. But we can make our
std::function more tolerant of such objects by ensuring we always copy
from a const lvalue.

Additionally use an if constexpr statement in the _M_get_pointer
function to avoid unnecessary instantiations in the discarded branch.

	* include/bits/std_function.h (_Base_manager::_M_get_pointer):
	Use constexpr if in C++17 mode.
	(_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)):
	Copy from const object.
	* testsuite/20_util/function/cons/non_copyconstructible.cc: New.

From-SVN: r260080
2018-05-09 14:28:11 +01:00
Richard Biener
a296d6d3bd tree-vect-slp.c (vect_bb_slp_scalar_cost): Fill a cost vector.
2018-05-09  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_bb_slp_scalar_cost): Fill a cost
	vector.
	(vect_bb_vectorization_profitable_p): Adjust.  Compute
	actual scalar cost using the cost vector and the add_stmt_cost
	machinery.

From-SVN: r260078
2018-05-09 13:04:00 +00:00
Segher Boessenkool
cd9ba4ca30 rs6000: Give an argument to every REG_CFA_REGISTER (PR85645)
The one for the prologue mflr did not have any value set, which means
use the SET that is in the insn pattern.  This works fine, except when
some late pass decides to replace the SET_SRC -- this changes the
meaning of the REG_CFA_REGISTER!  Such passes should not do these
things, but let's be more explicit here, for extra robustness.  It
could be argued that this defaulting is a design misfeature (it does
not save much space either, etc.)


	PR rtl-optimization/85645
	* config/rs6000/rs6000.c (rs6000_emit_prologue_components): Put a SET
	in the REG_CFA_REGISTER note for LR, don't leave it empty.

From-SVN: r260077
2018-05-09 14:51:00 +02:00
Segher Boessenkool
826f35d812 shrink-wrap: Improve spread_components (PR85645)
In the testcase for PR85645 we do a pretty dumb placement of the
prologue/epilogue for the LR component: we place an epilogue for LR
before a control flow split where one of the branches clobbers LR
eventually, and the other does not.  The branch that does clobber it
will need a prologue again some time later.  Because saving and
restoring LR is a two step process---it needs to be moved via a GPR---
the backend emits CFI directives so that we get correct unwind
information.  But both regcprop and regrename do not properly handle
such CFI directives leading to ICEs.

Now, neither of the two branches needs to have LR restored at all,
because both of the branches end up in an infinite loop.

This patch makes spread_component return a boolean saying if anything
was changed, and if so, it is called again.  This obviously is finite
(there is a finite number of basic blocks, each with a finite number
of components, and spread_components can only assign more components
to a block, never less).  I also instrumented the code, and on a
bootstrap+regtest spread_components made changes a maximum of two
times.  Interestingly though it made changes on two iterations in
a third of the cases it did anything at all!


	PR rtl-optimization/85645
	* shrink-wrap.c (spread_components): Return a boolean saying if
	anything was changed.
	(try_shrink_wrapping_separate): Iterate spread_components until
	nothing changes anymore.

From-SVN: r260076
2018-05-09 14:48:43 +02:00