aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-01-12Remove svn:executable property from a couple of text filesJakub Jelinek19-0/+0
which shouldn't be executable. From-SVN: r267873
2019-01-12Daily bump.GCC Administrator1-1/+1
From-SVN: r267872
2019-01-12PR libstdc++/88811 fix typo introduced in r266569Jonathan Wakely3-2/+103
PR libstdc++/88811 PR libstdc++/83306 * src/filesystem/path.cc: Fix typo. If first path is empty, show [] before second path. * testsuite/experimental/filesystem/filesystem_error/cons.cc: New test. From-SVN: r267868
2019-01-11Document C++20 library statusJonathan Wakely8-26/+1411
* doc/xml/manual/intro.xml: Include new section. * doc/xml/manual/status_cxx2017.xml: Document more implementation-defined properties of the library. * doc/xml/manual/status_cxx2020.xml: Document C++2a status. * doc/html/*: Regenerate. From-SVN: r267867
2019-01-11P0357R3 reference_wrapper for incomplete typesJonathan Wakely3-0/+53
This patch implements the C++2a proposal to allow incomplete types in std::reference_wrapper, which was previously undefined. The change cannot be implemented for earlier standards, because prior to C++2a std::reference_wrapper has a weak result type, so must inspect the template argument to see if it defines a nested result_type member. That is deprecated (but still required) in C++17, and removed from C++2a. The removal of the base class from reference_wrapper is a potential ABI change, as it could alter the layout of a type which derives from reference_wrapper<T> and from an empty type with _Weak_result_type<T> as a base class. Previously the repeated _Weak_result_type<T> base class would have prevented the empty base-class optimization, but if reference_wrapper<T> no longer derives from it, the empty class could be placed at the same address as the reference_wrapper<T> base. In practice, the only types which derive from _Weak_result_type or from _Reference_wrapper_base_memfun or any of its base classes are non-empty types defined in libstdc++: std::reference_wrapper, std::function, and std::_Bind. As they are non-empty types, they are not eligible for EBO anyway. * include/bits/refwrap.h [__cplusplus > 201703L] (_Refwrap_base_arg1, _Refwrap_base_arg2, _Reference_wrapper_base) (_Reference_wrapper_base_memfun): Do not define for C++2a. (reference_wrapper): Do not derive from _Reference_wrapper_base_memfun for C++2a. (reference_wrapper::operator()): Add static assertion. * testsuite/20_util/reference_wrapper/incomplete.cc: New test. From-SVN: r267866
2019-01-11P0972R0 <chrono> zero(), min(), and max() should be noexceptJonathan Wakely4-8/+99
This paper has been included in the C++20 draft, but the changes to add noexcept can be made unconditionally, to apply for C++11 too. * include/std/chrono (duration_values::zero(), duration_values::min()) (duration_values::max()): Add noexcept. (duration::zero(), duration::min(), duration::max()): Likewise. (time_point::zero(), time_point::min(), time_point::max()): Likewise. * testsuite/20_util/duration/requirements/noexcept.cc: New test. * testsuite/20_util/time_point/requirements/noexcept.cc: New test. From-SVN: r267865
2019-01-11re PR fortran/35031 (ELEMENTAL procedure with BIND(C))Steven G. Kargl4-3/+34
2019-01-11 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/35031 * decl.c (gfc_match_entry): Check for F2018:C1546. Fix nearby mis-indentation. 2019-01-11 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/35031 * gfortran.dg/pr35031.f90: new test. From-SVN: r267864
2019-01-11Fix location of __cpp_lib_erase_if macroJonathan Wakely2-1/+5
This macro should only be defined for C++2a, not C++17. * include/std/version (__cpp_lib_erase_if): Move to C++20 group. From-SVN: r267863
2019-01-11PR c++/88692, c++/87882 - -Wredundant-move false positive with *this.Marek Polacek5-2/+111
* typeck.c (maybe_warn_pessimizing_move): Return if ARG isn't ADDR_EXPR. * g++.dg/cpp0x/Wredundant-move5.C: New test. * g++.dg/cpp0x/Wredundant-move6.C: New test. From-SVN: r267862
2019-01-11compiler: pad structs ending with zero-sized fieldIan Lance Taylor4-11/+46
For a struct with zero-sized last field, the address of the field falls out of the object boundary, which confuses the garbage collector. Pad an extra byte in this case. Reviewed-on: https://go-review.googlesource.com/c/157557 From-SVN: r267861
2019-01-11PR c++/88312 - pack expansion of decltype.Jason Merrill3-0/+17
The standard doesn't really talk about an expression depending on the number of elements of a pack, but that's definitely an important form of template argument dependence. * pt.c (instantiation_dependent_r): A template non-type parameter pack is instantiation-dependent. From-SVN: r267860
2019-01-11PR c++/88613 - ICE with use of const var in lambda.Jason Merrill4-2/+34
The issue here was that we were cp_folding a location wrapper around a lambda capture proxy before it had been mark_rvalue_used. I considered adding mark_rvalue_use calls to build_new_op_1, but it seems appropriate to have them in cp_fold_maybe_rvalue when we know we're trying to produce an rvalue. The change to mark_use is for a related issue: when we change the operand of the location wrapper from VAR_DECL to INTEGER_CST, we need the TREE_CODE of the location wrapper to change as well, from VIEW_CONVERT_EXPR to NON_LVALUE_EXPR. * expr.c (mark_use): Fix location wrapper handling. * cp-gimplify.c (cp_fold_maybe_rvalue): Call mark_rvalue_use. From-SVN: r267859
2019-01-11re PR middle-end/85956 (ICE in wide_int_to_tree_1, at tree.c:1549)Jakub Jelinek9-4/+112
PR middle-end/85956 PR lto/88733 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds field. * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with a dummy "omp dummy var" variable if id->adjust_array_error_bounds. * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds. fortran/ * trans-openmp.c: Include attribs.h. (gfc_walk_alloc_comps, gfc_omp_clause_linear_ctor): Handle VAR_DECL max bound with "omp dummy var" attribute like NULL or error_mark_node - recompute number of elts independently. testsuite/ * c-c++-common/gomp/pr85956.c: New test. * g++.dg/gomp/pr88733.C: New test. From-SVN: r267858
2019-01-11PR C++/88114 Gen destructor of an abstract classTobias Burnus5-1/+71
PR C++/8811 * decl2.c (maybe_emit_vtables): If needed, generate code for the destructor of an abstract class. (mark_used): Update comment for older function-name change. PR C++/88114 * g++.dg/cpp0x/defaulted61.C: New. * g++.dg/cpp0x/defaulted62.C: New. From-SVN: r267855
2019-01-11re PR rtl-optimization/87305 (Segfault in end_hard_regno in ↵Vladimir Makarov2-4/+15
setup_live_pseudos_and_spill_after_risky_transforms on aarch64 big-endian) 2019-01-11 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/87305 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky_transforms): Add code for little endian pseudos used as paradoxical subreg. From-SVN: r267854
2019-01-11re PR tree-optimization/88693 (Wrong code since r263018)Jakub Jelinek4-2/+69
PR tree-optimization/88693 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p for STRING_CSTs that don't contain any NUL characters in the first TREE_STRING_LENGTH bytes. * gcc.c-torture/execute/pr88693.c: New test. From-SVN: r267852
2019-01-11re PR target/88777 (Out-of-range offsets building glibc test-tgmath2.c for ↵Alan Modra2-22/+29
hppa-linux-gnu) PR 88777 PR 88614 * genattrtab.c (min_fn): Don't translate values. (min_attr_value): Return INT_MAX when the value can't be calculated. Return minimum among any values that can be calculated. (max_attr_value): Adjust. From-SVN: r267851
2019-01-11* Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).Jakub Jelinek3-2/+6
From-SVN: r267850
2019-01-11Remove trailing whitespace from latest commit.Jakub Jelinek1-1/+1
From-SVN: r267849
2019-01-11aarch64.c (aarch64_simd_call_p): New function.Steve Ellcey28-57/+203
2019-01-11 Steve Ellcey <sellcey@marvell.com> * config/aarch64/aarch64.c (aarch64_simd_call_p): New function. (aarch64_hard_regno_call_part_clobbered): Add insn argument. (aarch64_return_call_with_max_clobbers): New function. (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro. * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn argument. * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto. * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto. * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto. * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto. * cselib.c (cselib_process_insn): Add argument to targetm.hard_regno_call_part_clobbered call. * ira-conflicts.c (ira_build_conflicts): Ditto. * ira-costs.c (ira_tune_allocno_costs): Ditto. * lra-constraints.c (inherit_reload_reg): Ditto. * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field. * lra-lives.c (check_pseudos_live_through_calls): Add call_insn argument. Call targetm.return_call_with_max_clobbers. Add argument to targetm.hard_regno_call_part_clobbered call. (calls_have_same_clobbers_p): New function. (process_bb_lives): Add call_insn and last_call_insn variables. Pass call_insn to check_pseudos_live_through_calls. Modify if stmt to check targetm.return_call_with_max_clobbers. Update setting of flush variable. (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p to false. * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL. * regcprop.c (copyprop_hardreg_forward_1): Add argument to targetm.hard_regno_call_part_clobbered call. * reginfo.c (choose_hard_reg_mode): Ditto. * regrename.c (check_new_reg_p): Ditto. * reload.c (find_equiv_reg): Ditto. * reload1.c (emit_reload_insns): Ditto. * sched-deps.c (deps_analyze_insn): Ditto. * sel-sched.c (init_regs_for_mode): Ditto. (mark_unavailable_hard_regs): Ditto. * targhooks.c (default_dwarf_frame_reg_mode): Ditto. * target.def (hard_regno_call_part_clobbered): Add insn argument. (return_call_with_max_clobbers): New target function. * doc/tm.texi: Regenerate. * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook. * hooks.c (hook_bool_uint_mode_false): Change to hook_bool_insn_uint_mode_false. * hooks.h (hook_bool_uint_mode_false): Ditto. From-SVN: r267848
2019-01-11type_traits (__cpp_lib_is_constant_evaluated): Define.Jakub Jelinek3-0/+11
* include/std/type_traits (__cpp_lib_is_constant_evaluated): Define. * include/std/version (__cpp_lib_is_constant_evaluated): Define. From-SVN: r267847
2019-01-11aarch64.c (aarch64_simd_call_p): New function.Steve Ellcey8-1/+91
2019-01-11 Steve Ellcey <sellcey@marvell.com> * config/aarch64/aarch64.c (aarch64_simd_call_p): New function. (aarch64_remove_extra_call_preserved_regs): New function. (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro. * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook. * doc/tm.texi: Regenerate. * final.c (get_call_reg_set_usage): Call new hook. * target.def (remove_extra_call_preserved_regs): New hook. * targhooks.c (default_remove_extra_call_preserved_regs): New function. * targhooks.h (default_remove_extra_call_preserved_regs): New function. From-SVN: r267846
2019-01-11PR libstdc++/88802 define std::hash<nullptr_t> for C++17Jonathan Wakely3-0/+52
PR libstdc++/88802 * include/bits/functional_hash.h (hash<nullptr_t>): Define specialization for C++17 (P0513R0, LWG 2817). * testsuite/20_util/hash/nullptr.cc: New test. From-SVN: r267845
2019-01-11Fix arm testism regression.Tamar Christina2-1/+7
gcc/testsuite/ChangeLog: 2019-01-11 Tamar Christina <tamar.christina@arm.com> * gcc.target/aarch64/advsimd-intrinsics/vector-complex_f16.c: Require neon and add options. From-SVN: r267843
2019-01-11Better distinguish OpenACC and OpenMP sections in libgomp.texiThomas Schwinge2-7/+15
2019-01-11 Thomas Schwinge <thomas@codesourcery.com> James Norris <jnorris@codesourcery.com> * libgomp.texi: Better distinguish OpenACC and OpenMP "Runtime Library Routines", and "Environment Variables". Co-Authored-By: James Norris <jnorris@codesourcery.com> From-SVN: r267841
2019-01-11Add a testcase (PR middle-end/88758).Martin Liska3-0/+22
2019-01-11 Martin Liska <mliska@suse.cz> PR middle-end/88758 * g++.dg/lto/pr88758_0.C: New test. * g++.dg/lto/pr88758_1.C: New test. From-SVN: r267840
2019-01-11re PR bootstrap/88714 (bootstrap comparison failure on armv7l since r265398)Jakub Jelinek2-2/+8
PR bootstrap/88714 * passes.c (finish_optimization_passes): Call print_combine_total_stats inside of pass_combine_1 dump rather than pass_profile_1. From-SVN: r267839
2019-01-11[nvptx] Don't allow vector_length 64 with num_workers 16Tom de Vries4-0/+48
When using a compiler build with: ... +#define PTX_DEFAULT_VECTOR_LENGTH PTX_CTA_SIZE ... consider a test-case: ... int main (void) { #pragma acc parallel vector_length (64) #pragma acc loop worker for (unsigned int i = 0; i < 32; i++) #pragma acc loop vector for (unsigned int j = 0; j < 64; j++) ; return 0; } ... If num_workers is 16, either because: - we add a "num_workers (16)" clause on the parallel directive, or - we set "GOMP_OPENACC_DIM=:16:", or - the libgomp plugin chooses 16 num_workers we run into an illegal instruction at runtime, because a bar.sync instruction tries to use a barrier 16. The instruction is illegal, because ptx supports only 16 barriers per CTA, and the valid range is 0..15. The problem is that with a warp-multiple vector length, we use a code generation scheme with a per-worker barrier. And because barrier zero is reserved for per-cta barrier, only the remaining 15 barriers can be used as per-worker barrier, and consequently we can't use num_workers larger than 15. This problem occurs only for vector_length 64. For vector_length 32, we use a different code generation scheme, and for vector_length >= 96, the maximum num_workers is not big enough not to trigger this problem. Also, this problem only occurs for num_workers 16. As explained above, num_workers 15 is safe to use, and 16 is already the maximum num_workers for vector_length 64. This patch fixes the problem in both the compiler (handling "num_workers (16)") and in the libgomp nvptx plugin (with and without "GOMP_OPENACC_DIM=:16:"). 2019-01-11 Tom de Vries <tdevries@suse.de> * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER) (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER) (PTX_NUM_PER_WORKER_BARRIERS): Define. (nvptx_apply_dim_limits): Prevent vector_length 64 and num_workers 16. * plugin/plugin-nvptx.c (nvptx_exec): Prevent vector_length 64 and num_workers 16. From-SVN: r267838
2019-01-11[nvptx] Move PTX_CTA_SIZE upTom de Vries2-5/+10
Move the defition of PTX_CTA_SIZE up in nvptx.c. 2019-01-11 Tom de Vries <tdevries@suse.de> * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up. From-SVN: r267837
2019-01-11[libgomp, testsuite, openacc] Remove -foffload=-w in reduction-[1-5].cTom de Vries6-15/+9
Before the commit "[libgomp, testsuite, openacc] Don't use const int for dimensions", the "const int" construct was used to set launch dimensions in reductions-[1-5].c. In the case of -xc -O0, the const int is implemented as a variable by the C front-end. Consequently, the nvptx back-end generated warnings that vector_length was overridden to be hard-coded, rather than left to be set at runtime. The test-cases silenced these warnings by switching off all warnings in the accelerator compiler using "-foffload=-w". Given that no warnings occur anymore, remove the "-foffload=-w" setting. 2019-01-11 Tom de Vries <tdevries@suse.de> * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Remove -foffload=-w. * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Same. * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Same. * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Same. * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Same. From-SVN: r267836
2019-01-11[nvptx, testsuite, openacc, libgomp] Add insufficient-resources.cTom de Vries2-0/+26
Add a test-case that tests the "insufficient resources" fatal in the nvptx libgomp plugin. 2019-01-11 Tom de Vries <tdevries@suse.de> * testsuite/libgomp.oacc-c-c++-common/insufficient-resources.c: New test. From-SVN: r267835
2019-01-11PR libstdc++/88125 remove duplicate entry in linker scriptJonathan Wakely2-4/+4
PR libstdc++/88125 * config/abi/pre/gnu.ver (GLIBCXX_3.4.6): Remove unused duplicate pattern for std::basic_stringbuf::str(). From-SVN: r267834
2019-01-11x86-64: {,V}CVT{,U}SI2Sx are ambiguous without suffixJan Beulich16-19/+50
For 64-bit these should not be emitted without suffix in AT&T mode (as being ambiguous that way); the suffixes are benign for 32-bit. For consistency also omit the suffix in Intel mode for {,V}CVTSI2SxQ. The omission has originally (prior to rev 260691) lead to wrong code being generated for the 64-bit unsigned-to-float/double conversions (as gas guesses an L suffix instead of the required Q one when the operand is in memory). In all remaining cases (being changed here) the omission would "just" lead to warnings with future gas versions. As a result, arrange to check for the L suffixes in 32-bit test cases. In order for related test cases to actually test what they're supposed to test, add (seemingly unrelated) a few empty "asm volatile()". Presumably there are more where constant propagation voids the intended effect of the tests, but these are ones helping make sure the assembler actually still assembles correctly the output after the changes here. From-SVN: r267833
2019-01-11Fix incorrect linker script patternsJonathan Wakely2-2/+9
The recent changes to support operator<<(nullptr_t) changed the glob patterns for existing operator<<(T) overloads, but did so incorrectly so they still matched the new symbols. That broke Solaris bootstrap. This patch replaces each of the existing globs by two more precise ones, which match the old symbols but not the new ones. * config/abi/pre/gnu.ver (GLIBCXX_3.4): Correct recent changes to basic_ostream::operator<< patterns. From-SVN: r267832
2019-01-11re PR rtl-optimization/88296 (Infinite loop in lra_split_hard_reg_for)Jakub Jelinek2-0/+71
PR rtl-optimization/88296 * gcc.target/i386/pr88296.c: New test. From-SVN: r267831
2019-01-11decl.c (start_decl): Improve error location.Paolo Carlini5-3/+25
/cp 2019-01-11 Paolo Carlini <paolo.carlini@oracle.com> * decl.c (start_decl): Improve error location. (grokdeclarator): Likewise, improve two locations. /testsuite 2019-01-11 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/diagnostic/extern-initialized.C: New. * g++.dg/ext/dllimport-initialized.C: Likewise. From-SVN: r267830
2019-01-11re PR fortran/59345 (_gfortran_internal_pack on compiler generated temps)Thomas Koenig4-0/+26
2019-01-11 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/59345 * trans-array.c (gfc_conv_parameter_array): Temporary arrays generated for expressions do not need to be repacked. 2019-01-11 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/59345 * gfortran.dg/internal_pack_16.f90: New test. From-SVN: r267829
2019-01-11Daily bump.GCC Administrator1-1/+1
From-SVN: r267828
2019-01-11re PR target/88785 (ICE in as_a, at machmode.h:353)Jakub Jelinek4-7/+242
PR target/88785 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into define_expand. (*float<floatunssuffix>v2div2sf2): New define_insn. (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand. (*float<floatunssuffix>v2div2sf2_mask): New define_insn. (*float<floatunssuffix>v2div2sf2_mask_1): Replace subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with match_operands with "const0_operand" "C". * g++.target/i386/pr88785.C: New test. From-SVN: r267825
2019-01-10gcc/ChangeLog:Tamar Christina2-4/+10
2019-01-10 Tamar Christina <tamar.christina@arm.com> * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins... (aarch64_init_simd_builtins): ...Here. From-SVN: r267824
2019-01-10re PR rtl-optimization/87305 (Segfault in end_hard_regno in ↵Vladimir Makarov5-9/+82
setup_live_pseudos_and_spill_after_risky_transforms on aarch64 big-endian) 2019-01-10 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/87305 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky_transforms): Check allocation for big endian pseudos used as paradoxical subregs and spill them if it is wrong. * lra-constraints.c (lra_constraints): Add a comment. 2019-01-10 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/87305 * gcc.target/aarch64/pr87305.c: New. From-SVN: r267823
2019-01-10re PR tree-optimization/88792 (wrong-code in RPO VN since r263875)Richard Biener4-1/+44
2019-01-10 Richard Biener <rguenther@suse.de> PR tree-optimization/88792 * tree-ssa-pre.c (get_representative_for): Do not return a value-number here. * gcc.dg/torture/pr88792.c: New testcase. From-SVN: r267821
2019-01-10re PR fortran/86322 (ICE in reference_record with data statement)Steven G. Kargl6-1/+76
2019-01-10 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/86322 * decl.c (top_var_list): Set locus of expr. (gfc_match_data): Detect pointer on non-rightmost part-refs. 2019-01-10 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/86322 * gfortran.dg/pr86322_1.f90: New test. * gfortran.dg/pr86322_2.f90: Ditto. * gfortran.dg/pr86322_3.f90: Ditto. From-SVN: r267820
2019-01-10[Committed, AArch64] Disable tests for ilp32.Sudakshina Das4-0/+9
Currently Return Address Signing is only supported in lp64. Thus the tests that I added recently (that enables return address signing by the mbranch-protection=standard option), should also be exempted from testing in ilp32. This patch adds the needed dg-require-effective-target directive in the tests. *** gcc/testsuite/ChangeLog *** 2019-01-10 Sudakshina Das <sudi.das@arm.com> * gcc.target/aarch64/bti-1.c: Exempt for ilp32. * gcc.target/aarch64/bti-2.c: Likewise. * gcc.target/aarch64/bti-3.c: Likewise. Committed as obvious. From-SVN: r267818
2019-01-10re PR middle-end/84877 (Local stack copy of BLKmode parameter on the stack ↵Jakub Jelinek2-57/+31
is not aligned when the requested alignment exceeds MAX_SUPPORTED_STACK_ALIGNMENT) PR middle-end/84877 PR bootstrap/88450 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes. (assign_parm_setup_block): Do the argument slot realignment here instead. From-SVN: r267812
2019-01-10Fix filesystem::last_write_time failure with 32-bit time_tJonathan Wakely2-1/+18
* testsuite/27_io/filesystem/operations/last_write_time.cc: Fix test failures on targets with 32-bit time_t. From-SVN: r267811
2019-01-10Define __cpp_lib_erase_if feature test macroJonathan Wakely16-0/+83
The C++2a draft specifies the value 201811L for this, but as an extension we return the number of elements erased. This is expected to be standardised, so the macro has the value 201900L until a proper value is specified in the draft. * include/bits/erase_if.h: Define __cpp_lib_erase_if. * include/std/deque: Likewise. * include/std/forward_list: Likewise. * include/std/list: Likewise. * include/std/string: Likewise. * include/std/vector: Likewise. * include/std/version: Likewise. * testsuite/21_strings/basic_string/erasure.cc: Test macro. * testsuite/23_containers/deque/erasure.cc: Likewise. * testsuite/23_containers/forward_list/erasure.cc: Likewise. * testsuite/23_containers/list/erasure.cc: Likewise. * testsuite/23_containers/map/erasure.cc: Likewise. * testsuite/23_containers/set/erasure.cc: Likewise. * testsuite/23_containers/unordered_map/erasure.cc: Likewise. * testsuite/23_containers/unordered_set/erasure.cc: Likewise. * testsuite/23_containers/vector/erasure.cc: Likewise. From-SVN: r267810
2019-01-10Check AI_NUMERICSERV is defined before using itJonathan Wakely4-1/+19
The AI_NUMERICSERV constant is missing from old Darwin systems, so only use it if it's supported. * include/experimental/internet [AI_NUMERICSERV] (resolver_base::numeric_service): Define conditionally. * testsuite/experimental/net/internet/resolver/base.cc: Test it conditionally. * testsuite/experimental/net/internet/resolver/ops/lookup.cc: Likewise. From-SVN: r267809
2019-01-10Implement LWG 2221: formatted output operator for nullptrVille Voutilainen7-6/+84
2019-01-10 Ville Voutilainen <ville.voutilainen@gmail.com> Jonathan Wakely <jwakely@redhat.com> Implement LWG 2221 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Tighten patterns. (GLIBCXX_3.4.26): Add new exports. * include/Makefile.am: Add ostream-inst.cc. Move string-inst.cc to correct list of sources. * include/Makefile.in: Regenerate. * include/std/ostream (operator<<(nullptr_t)): New member function. * src/c++17/ostream-inst.cc: New file. * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc: New test. Co-Authored-By: Jonathan Wakely <jwakely@redhat.com> From-SVN: r267808
2019-01-10Add testcase from PR71959Nathan Sidwell3-0/+73
libgomp/ PR lto/71959 * testsuite/libgomp.oacc-c++/pr71959-aux.cc: New. * testsuite/libgomp.oacc-c++/pr71959.C: New. Co-Authored-By: Julian Brown <julian@codesourcery.com> From-SVN: r267806