- 10 May, 2018 20 commits
-
-
* class.c (build_base_path): Check COMPLETE_TYPE_P for source type. From-SVN: r260127
Jason Merrill committed -
* call.c (reference_binding): List-initializing a reference temporary is copy-list-initialization. From-SVN: r260126
Jason Merrill committed -
From-SVN: r260125
Jason Merrill committed -
* pt.c (instantiate_decl): Make sure we aren't trying to do a nested instantiation in template context. From-SVN: r260124
Jason Merrill committed -
From-SVN: r260123
Jason Merrill committed -
From-SVN: r260122
Jason Merrill committed -
* 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
Jason Merrill committed -
PR fortran/85735 * options.c (gfc_post_options): Set main_input_filename. From-SVN: r260120
Marek Polacek committed -
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
Jakub Jelinek committed -
PR target/85693 * config/i386/sse.md (usadv64qi): New expander. From-SVN: r260117
Uros Bizjak committed -
2018-05-10 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/54613 * intrinsic.texi: Document BACK for MINLOC and MAXLOC. From-SVN: r260116
Thomas Koenig committed -
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
Edward Smith-Rowland committed -
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
Jonathan Wakely committed -
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
Paul Thomas committed -
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
Martin Liska committed -
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
Segher Boessenkool committed -
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
Eric Botcazou committed -
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
Jakub Jelinek committed -
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
Eric Botcazou committed -
From-SVN: r260104
GCC Administrator committed
-
- 09 May, 2018 20 commits
-
-
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
Ian Lance Taylor committed -
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
Jim Wilson committed -
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
François Dumont committed -
2018-05-09 Paolo Carlini <paolo.carlini@oracle.com> PR c++/85713 * g++.dg/cpp1y/lambda-generic-85713.C: New. From-SVN: r260092
Paolo Carlini committed -
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
Carl Love committed -
/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
Paolo Carlini committed -
/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
Paolo Carlini committed -
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
Tom de Vries committed -
config/ * ax_pthread.m4: Add file From-SVN: r260083
Joshua Watt committed -
From-SVN: r260082
Andreas Schwab committed -
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
Tom de Vries committed -
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
Jonathan Wakely committed -
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
Richard Biener committed -
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
Segher Boessenkool committed -
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
Segher Boessenkool committed -
We should never change the destination of a REG_CFA_REGISTER, just like for insns with a REG_CFA_RESTORE, because we need to have the same control flow information on all branches that join. It is very doubtful that renaming the scratch registers used for prologue/epilogue will help anything either. PR rtl-optimization/85645 * regrename.c (build_def_use): Also kill the chains that include the destination of a REG_CFA_REGISTER note. From-SVN: r260075
Segher Boessenkool committed -
Changing a SET that has a REG_CFA_REGISTER note is wrong if we are changing the SET_DEST, or if the REG_CFA_REGISTER has nil as its argument, and maybe some other cases. It's never really useful to propagate into such an instruction, so let's just bail whenever we see such a note. PR rtl-optimization/85645 * regcprop.c (copyprop_hardreg_forward_1): Don't propagate into an insn that has a REG_CFA_REGISTER note. From-SVN: r260074
Segher Boessenkool committed -
We build up the input to IFN_STORE_LANES one vector at a time. In RTL, each of these vector assignments becomes a write to subregs of the form (subreg:VEC (reg:AGGR R)), where R is the eventual input to the store lanes instruction. The problem is that RTL isn't very good at tracking liveness when things are initialised piecemeal by subregs, so R tends to end up being live on all paths from the entry block to the store. This in turn leads to unnecessary spilling around calls, as well as to excess register pressure in vector loops. This patch adds gimple clobbers to indicate the liveness of the IFN_STORE_LANES variable and makes sure that gimple clobbers are expanded to rtl clobbers where useful. For consistency it also uses clobbers to mark the point at which an IFN_LOAD_LANES variable is no longer needed. 2018-05-08 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * cfgexpand.c (expand_clobber): New function. (expand_gimple_stmt_1): Use it. * tree-vect-stmts.c (vect_clobber_variable): New function, split out from... (vectorizable_simd_clone_call): ...here. (vectorizable_store): Emit a clobber either side of an IFN_STORE_LANES sequence. (vectorizable_load): Emit a clobber after an IFN_LOAD_LANES sequence. gcc/testsuite/ * gcc.target/aarch64/store_lane_spill_1.c: New test. * gcc.target/aarch64/sve/store_lane_spill_1.c: Likewise. From-SVN: r260073
Richard Sandiford committed -
2018-05-09 Tom de Vries <tom@codesourcery.com> PR target/85626 * config/nvptx/nvptx.md (define_insn "trap", define_insn "trap_if_true") (define_insn "trap_if_false"): Add exit after trap. From-SVN: r260072
Tom de Vries committed -
PR rtl-optimization/85638 * bb-reorder.c: Include common/common-target.h. (create_forwarder_block): New function extracted from... (fix_up_crossing_landing_pad): ...here. Rename into... (dw2_fix_up_crossing_landing_pad): ...this. (sjlj_fix_up_crossing_landing_pad): New function. (find_rarely_executed_basic_blocks_and_crossing_edges): In SJLJ mode, call sjlj_fix_up_crossing_landing_pad if there are incoming EH edges from both partitions and exit the loop after one iteration. From-SVN: r260070
Eric Botcazou committed
-