- 15 Nov, 2019 32 commits
-
-
Allow the registers used for the frame pointer to be used for other purposes if the frame pointer is not being used. 2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com> gcc/ * config/gcn/gcn.h (FIXED_REGISTERS): Unfix frame pointer. (CALL_USED_REGISTERS): Make frame pointer callee-saved. From-SVN: r278306
Kwok Cheung Yeung committed -
Reduce the lower limits on the number of registers requested by non-leaf kernels to help improve CU occupancy. 2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com> gcc/ * config/gcn/gcn.c (MAX_NORMAL_SGPR_COUNT, MAX_NORMAL_VGPR_COUNT): New. (gcn_conditional_register_usage): Use constants in place of hard-coded values. (gcn_hsa_declare_function_name): Set lower bound for number of SGPRs/VGPRs in non-leaf kernels to MAX_NORMAL_SGPR_COUNT and MAX_NORMAL_VGPR_COUNT. From-SVN: r278305
Kwok Cheung Yeung committed -
2019-11-15 Martin Jambor <mjambor@suse.cz> * ipa-utils.h (ipa_remove_useless_jump_functions): Remove stray declaration. From-SVN: r278303
Martin Jambor committed -
Restrict the number of SGPRs and VGPRs available to non-kernel functions to improve compute-unit occupancy with multiple threads. 2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com> gcc/ * config/gcn/gcn.c (default_requested_args): New. (gcn_parse_amdgpu_hsa_kernel_attribute): Initialize requested args set with default_requested_args. (gcn_conditional_register_usage): Limit register usage of non-kernel functions. Reassign fixed registers if a non-standard set of args is requested. * config/gcn/gcn.h (FIXED_REGISTERS): Fix registers according to ABI. From-SVN: r278301
Kwok Cheung Yeung committed -
2019-11-15 Feng Xue <fxue@os.amperecomputing.com> PR ipa/92528 * ipa-prop.c (update_jump_functions_after_inlining): Invalidate aggregate jump function when inlined-to caller has no edge summary. From-SVN: r278300
Feng Xue committed -
gcn_conditional_register_usage needs to be called for every function to set the fixed registers depending on the kernel args currently requested. 2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com> gcc/ * config/gcn/gcn.c (gcn_init_cumulative_args): Call reinit_regs. From-SVN: r278299
Kwok Cheung Yeung committed -
Rather than reimplement brace elision here, we call reshape_init and then discard the result. We needed to set CLASSTYPE_NON_AGGREGATE a bit more in this patch, since outside a template it's set in check_bases_and_members. * pt.c (maybe_aggr_guide, collect_ctor_idx_types): New. (is_spec_or_derived): Split out from do_class_deduction. (build_deduction_guide): Handle aggregate guide. * class.c (finish_struct): Set CLASSTYPE_NON_AGGREGATE in a template. * cp-tree.h (CP_AGGREGATE_TYPE_P): An incomplete class is not an aggregate. From-SVN: r278298
Jason Merrill committed -
Use v1 instead of v0 when a zero-valued VGPR is needed. This frees up v0 for other purposes. 2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com> gcc/ * config/gcn/gcn.c (gcn_expand_prologue): Remove initialization and prologue use of v0. (print_operand_address): Use v1 for zero vector offset. From-SVN: r278297
Kwok Cheung Yeung committed -
Also add <stop_token> header to PCH and Doxygen config. * doc/doxygen/user.cfg.in: Add <stop_token>. * include/precompiled/stdc++.h: Likewise. * include/std/stop_token: Fix definition of std::nostopstate. * testsuite/30_threads/headers/stop_token/synopsis.cc: New test. * testsuite/30_threads/headers/thread/types_std_c++20.cc: New test. * testsuite/30_threads/stop_token/stop_source.cc: New test. * testsuite/30_threads/stop_token/stop_token.cc: Remove unnecessary dg-require directives. Remove I/O and inclusion of <iostream>. From-SVN: r278296
Jonathan Wakely committed -
r278235 broke conversions of vector/scalar shifts into vector/vector shifts on targets that only provide the latter. We need to record whether a conversion is required in that case too. Also, the old useless_type_conversion_p condition seemed unnecessarily strong, since the shift amount can have a different signedness from the shifted value and its vector type is never assumed to be identical to vectype. The patch therefore uses tree_nop_conversion_p instead. 2019-11-15 Richard Sandiford <richard.sandiford@arm.com> gcc/ PR tree-optimization/92515 * tree-vect-stmts.c (vectorizable_shift): Record incompatible op1 types when converting a vector/scalar shift into a vector/vector one, using tree_nop_conversion_p instead of useless_type_conversion_p. Move the conversion code to the transform block. From-SVN: r278295
Richard Sandiford committed -
The documentation for __RTL tests (see "(gccint) RTL Tests" info node) has the following snippet. ``` The parser expects the RTL body to be in the format emitted by this dumping function: DEBUG_FUNCTION void print_rtx_function (FILE *outfile, function *fn, bool compact); when "compact" is true. So you can capture RTL in the correct format from the debugger using: (gdb) print_rtx_function (stderr, cfun, true); and copy and paste the output into the body of the C function. ``` Since r264944 print_rtx_function prints column number information, which the __RTL function parsing does not handle. This patch handles column number information optionally, so pre-existing __RTL functions still work, and the above documentation quote still holds. Note: If people would prefer to require column information I could make a slightly neater code and update existing tests. I guess this would be OK since the intended use for __RTL functions is in these testcases so there is no worry about other existing code. bootstrapped and regtested on aarch64 bootstrapped and regtested on x86_64 Ok for trunk? Cheers, Matthew gcc/ChangeLog: 2019-11-15 Matthew Malcomson <matthew.malcomson@arm.com> * read-rtl-function.c (function_reader::add_fixup_source_location): Take additional parameter of a column. (function_reader::maybe_read_location): Optionally parse column information and pass to add_fixup_source_location. gcc/testsuite/ChangeLog: 2019-11-15 Matthew Malcomson <matthew.malcomson@arm.com> * gcc.dg/rtl/aarch64/rtl-handle-column-numbers.c: New test. From-SVN: r278294
Matthew Malcomson committed -
2019-11-15 Richard Biener <rguenther@suse.de> PR tree-optimization/92512 * tree-vect-loop.c (check_reduction_path): Fix operand index computability check. Add check for second use in COND_EXPRs. * gcc.dg/torture/pr92512.c: New testcase. From-SVN: r278293
Richard Biener committed -
The new tree-cfg.c checking in r278245 tripped on folds of ALTIVEC_BUILTIN_VPERM_*, which were using gimple_convert rather than VIEW_CONVERT_EXPR to reinterpret the contents of a vector as a different type. 2019-11-15 Richard Sandiford <richard.sandiford@arm.com> gcc/ PR target/92515 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin): Use VIEW_CONVERT_EXPR to reinterpret vectors as different types. From-SVN: r278292
Richard Sandiford committed -
Classify vcc_lo and vcc_hi into the VCC_CONDITIONAL_REG class, and spill them into SGPRs if necessary. 2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com> gcc/ * config/gcn/gcn.c (gcn_regno_reg_class): Return VCC_CONDITIONAL_REG register class for VCC_LO and VCC_HI. (gcn_spill_class): Use SGPR_REGS to spill registers in VCC_CONDITIONAL_REG. From-SVN: r278290
Kwok Cheung Yeung committed -
2019-11-15 Richard Biener <rguenther@suse.de> PR tree-optimization/92324 * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix singedness of SLP reduction epilouge operations. Also reduce the vector width for SLP reductions before doing elementwise operations if possible. * gcc.dg/vect/pr92324-4.c: New testcase. From-SVN: r278289
Richard Biener committed -
2019-11-15 Paul Thomas <pault@gcc.gnu.org> PR fortran/69654 * trans-expr.c (gfc_trans_structure_assign): Move assignment to 'cm' after treatment of C pointer types and test that the type has been completely built before it. Add an assert that the backend_decl for each component exists. 2019-11-15 Paul Thomas <pault@gcc.gnu.org> PR fortran/69654 * gfortran.dg/derived_init_6.f90: New test. From-SVN: r278287
Paul Thomas committed -
From-SVN: r278286
Jonathan Wakely committed -
Set global epilogue_completed when skipping pro_and_epilogue pass When compiling RTL functions marked to start at a pass after the reload pass, `skip_pass` is used to mark the reload pass as having completed since many patterns use the `reload_completed` variable to determine whether to run or not. Here we do the same for the `epilogue_completed` variable and the pro_and_epilogue pass. Also include a testcase that relies on the availability of a define_split in the aarch64 backend that is conditioned on this `epilogue_completed` variable. regtest done on native aarch64 regtest done on native x64_86 gcc/ChangeLog: 2019-11-15 Matthew Malcomson <matthew.malcomson@arm.com> * passes.c (skip_pass): Set epilogue_completed if skipping the pro_and_epilogue pass. gcc/testsuite/ChangeLog: 2019-11-15 Matthew Malcomson <matthew.malcomson@arm.com> * gcc.dg/rtl/aarch64/test-epilogue-set.c: New test. From-SVN: r278285
Matthew Malcomson committed -
2019-11-15 Andrew Stubbs <ams@codesourcery.com> libgomp/ * testsuite/libgomp.c/target-print-1.c: New file. * testsuite/libgomp.fortran/target-print-1.f90: New file. * testsuite/libgomp.oacc-c/print-1.c: New file. * testsuite/libgomp.oacc-fortran/print-1.f90: New file. From-SVN: r278284
Andrew Stubbs committed -
Hi there, When compiling an __RTL function that has an invalid "startwith" pass we currently don't run the dfinish cleanup pass. This means we ICE on the next function. This change ensures that all state is cleaned up for the next function to run correctly. As an example, before this change the following code would ICE when compiling the function `foo2` because the "peephole2" pass is not run at optimisation level -O0. When compiled with ./aarch64-none-linux-gnu-gcc -O0 -S missed-pass-error.c -o test.s ``` int __RTL (startwith ("peephole2")) badfoo () { (function "badfoo" (insn-chain (block 2 (edge-from entry (flags "FALLTHRU")) (cnote 3 [bb 2] NOTE_INSN_BASIC_BLOCK) (cinsn 101 (set (reg:DI x19) (reg:DI x0))) (cinsn 10 (use (reg/i:SI x19))) (edge-to exit (flags "FALLTHRU")) ) ;; block 2 ) ;; insn-chain ) ;; function "foo2" } int __RTL (startwith ("final")) foo2 () { (function "foo2" (insn-chain (block 2 (edge-from entry (flags "FALLTHRU")) (cnote 3 [bb 2] NOTE_INSN_BASIC_BLOCK) (cinsn 101 (set (reg:DI x19) (reg:DI x0))) (cinsn 10 (use (reg/i:SI x19))) (edge-to exit (flags "FALLTHRU")) ) ;; block 2 ) ;; insn-chain ) ;; function "foo2" } ``` Now it silently ignores the __RTL function and successfully compiles foo2. regtest done on aarch64 regtest done on x86_64 OK for trunk? gcc/ChangeLog: 2019-11-15 Matthew Malcomson <matthew.malcomson@arm.com> * passes.c (should_skip_pass_p): Always run "dfinish". gcc/testsuite/ChangeLog: 2019-11-15 Matthew Malcomson <matthew.malcomson@arm.com> * gcc.dg/rtl/aarch64/missed-pass-error.c: New test. From-SVN: r278283
Matthew Malcomson committed -
2019-11-15 Richard Biener <rguenther@suse.de> * ipa-inline.c (inline_small_functions): Move assignment to next before call destroying edge. From-SVN: r278282
Richard Biener committed -
2019-11-15 Richard Biener <rguenther@suse.de> PR tree-optimization/92039 PR tree-optimization/91975 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Revert previous change, treat invariants consistently as non-constant. (tree_estimate_loop_size): Ternary ops with just the first op constant are not optimized away. * gcc.dg/tree-ssa/cunroll-2.c: Revert to state previous to unroller adjustment. * g++.dg/tree-ssa/ivopts-3.C: Likewise. From-SVN: r278281
Richard Biener committed -
* gimplify.c (gimplify_call_expr): Don't call omp_resolve_declare_variant after gimplification. * omp-general.c (omp_context_selector_matches): For isa that might match in some other function, defer if in declare simd function. (omp_context_compute_score): Don't look for " score" in construct trait set. Set *score to -1 if it can't ever match. (omp_resolve_declare_variant): If any variants need to be deferred, don't punt immediately, but compute scores of all variants and if ther eis a score winner that doesn't need to be deferred, return that. * c-c++-common/gomp/declare-variant-13.c: New test. From-SVN: r278280
Jakub Jelinek committed -
PR testsuite/92520 * gcc.dg/ipa/inline-9.c: Fix template. From-SVN: r278279
Jan Hubicka committed -
gcc/ChangeLog: 2019-11-15 Luo Xiong Hu <luoxhu@linux.ibm.com> * ipa-comdats.c: Fix comments typo. * ipa-profile.c: Fix comments typo. * tree-profile.c (gimple_gen_ic_profiler): Use the new variable __gcov_indirect_call.counters and __gcov_indirect_call.callee. (gimple_gen_ic_func_profiler): Likewise. (pass_ipa_tree_profile::gate): Fix comments typo. From-SVN: r278278
Luo Xiong Hu committed -
next is initialized only in the loop before, it is never updated in it's own loop. gcc/ChangeLog: 2019-11-15 Xiong Hu Luo <luoxhu@linux.ibm.com> * ipa-inline.c (inline_small_functions): Update iterator of next. From-SVN: r278277
Xiong Hu Luo committed -
When the compiler writes an inlinable function to the export data, parameter names are written out (in Export::write_name) using the Gogo::message_name as opposed to a raw/encoded name. This means that sink parameters (those named "_") get created with the name "_" instead of "._" (the name created by the lexer/parser). This confuses Gogo::is_sink_name, which looks for the latter sequence and not just "_". This can cause issues later on if an inlinable function is imported and fed through the rest of the compiler (things that are sinks are no recognized as such). To fix these issues, change Gogo::is_sink_name to return true for either variants ("_" or "._"). Fixes golang/go#35586. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/207259 From-SVN: r278275
Ian Lance Taylor committed -
* include/Makefile.am: Add <stop_token> header. * include/Makefile.in: Regenerate. * include/std/condition_variable: Add overloads for stop_token support to condition_variable_any. * include/std/stop_token: New file. * include/std/thread: Add jthread type. * include/std/version (__cpp_lib_jthread): New value. * testsuite/30_threads/condition_variable_any/stop_token/1.cc: New test. * testsuite/30_threads/condition_variable_any/stop_token/2.cc: New test. * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc: New test. * testsuite/30_threads/jthread/1.cc: New test. * testsuite/30_threads/jthread/2.cc: New test. * testsuite/30_threads/jthread/jthread.cc: New test. * testsuite/30_threads/stop_token/1.cc: New test. * testsuite/30_threads/stop_token/2.cc: New test. * testsuite/30_threads/stop_token/stop_token.cc: New test. From-SVN: r278274
Thomas Rodgers committed -
When adding C2x attribute support, some [[fallthrough]] support appeared as a side-effect because of code for that attribute going through separate paths from the normal attribute handling. However, going through those paths without the normal attribute handlers meant that certain checks, such as for the invalid usage [[fallthrough()]], did not operate. This patch improves checks by adding this attribute to the standard attribute table, so that the parser knows it expects no arguments, along with adding an explicit check for "[[fallthrough]];" attribute-declarations at top level. As with other attributes, there are still cases where warnings should be pedwarns because C2x constraints are violated, but this patch improves the attribute handling. Bootstrapped with no regressions on x86_64-pc-linux-gnu. gcc/c: * c-decl.c (std_attribute_table): Add fallthrough. * c-parser.c (c_parser_declaration_or_fndef): Diagnose fallthrough attribute at top level. gcc/c-family: * c-attribs.c (handle_fallthrough_attribute): Remove static. * c-common.h (handle_fallthrough_attribute): Declare. gcc/testsuite: * gcc.dg/c2x-attr-fallthrough-2.c, gcc.dg/c2x-attr-fallthrough-3.c: New tests. From-SVN: r278273
Joseph Myers committed -
From-SVN: r278272
GCC Administrator committed -
2019-11-14 Edward Smith-Rowland <3dw4rd@verizon.net> Implement the <array> part of C++20 p1032 Misc constexpr bits. * include/std/array (fill, swap): Make constexpr. * testsuite/23_containers/array/requirements/constexpr_fill.cc: New. * testsuite/23_containers/array/requirements/constexpr_swap.cc: New. From-SVN: r278269
Edward Smith-Rowland committed -
This patch adds support for the C2x [[deprecated]] attribute. All the actual logic for generating warnings can be identical to the GNU __attribute__ ((deprecated)), as can the attribute handler, so this is just a matter of wiring things up appropriately and adding the checks specified in the standard. Unlike for C++, this patch gives "deprecated" an entry in a table of standard attributes rather than remapping it internally to the GNU attribute, as that seems a cleaner approach to me. Specifically, the only form of arguments to the attribute permitted in the standard is (string-literal); empty parentheses are not permitted in the case of no arguments, and a string literal (which includes concatenated adjacent string literals, because concatenation is an earlier phase of translation) cannot have further redundant parentheses around it. For the case of empty parentheses, this patch makes the C parser disallow them for all known attributes using the [[]] syntax, as done for C++. For string literals (where the C++ front end is missing the check to avoid redundant parentheses, 92521 filed for that issue), a special case is inserted in the C parser. A known issue that I think can be addressed later as a bug fix is that the warnings for the attribute being ignored in certain cases (attribute declarations, statements, most uses on types) ought to be pedwarns, as those usages are constraint violations. Bad handling of wide string literals with this attribute is also a pre-existing bug (91182 - although that's filed as a C++ bug, the code in question is language-independent, in tree.c). Bootstrapped with no regressions on x86_64-pc-linux-gnu. gcc/c: * c-decl.c (std_attribute_table): New. (c_init_decl_processing): Register attributes from std_attribute_table. * c-parser.c (c_parser_attribute_arguments): Add arguments require_string and allow_empty_args. All callers changed. (c_parser_std_attribute): Set require_string argument for "deprecated" attribute. gcc/c-family: * c-attribs.c (handle_deprecated_attribute): Remove static. * c-common.h (handle_deprecated_attribute): Declare. gcc/testsuite: * gcc.dg/c2x-attr-deprecated-1.c, gcc.dg/c2x-attr-deprecated-2.c, gcc.dg/c2x-attr-deprecated-3.c: New tests. From-SVN: r278268
Joseph Myers committed
-
- 14 Nov, 2019 8 commits
-
-
2019-11-14 Kwok Cheung Yeung <kcy@codesourcery.com> gcc/ * lra-spills.c (assign_spill_hard_regs): Check that the spill register is suitable for the mode. From-SVN: r278267
Kwok Cheung Yeung committed -
2019-11-14 Andrew MacLeod <amacleod@redhat.com> * range-op.h (range_operator::fold_range): Return a bool. * range-op.cc (range_operator::wi_fold): Assert supported type. (range_operator::fold_range): Assert supported type and return true. (operator_equal::fold_range): Return true. (operator_not_equal::fold_range): Same. (operator_lt::fold_range): Same. (operator_le::fold_range): Same. (operator_gt::fold_range): Same. (operator_ge::fold_range): Same. (operator_plus::op1_range): Adjust call to fold_range. (operator_plus::op2_range): Same. (operator_minus::op1_range): Same. (operator_minus::op2_range): Same. (operator_exact_divide::op1_range): Same. (operator_lshift::fold_range): Return true and adjust fold_range call. (operator_rshift::fold_range): Same. (operator_cast::fold_range): Return true. (operator_logical_and::fold_range): Same. (operator_logical_or::fold_range): Same. (operator_logical_not::fold_range): Same. (operator_bitwise_not::fold_range): Adjust call to fold_range. (operator_bitwise_not::op1_range): Same. (operator_cst::fold_range): Return true. (operator_identity::fold_range): Return true. (operator_negate::fold_range): Return true and adjust fold_range call. (operator_addr_expr::fold_range): Return true. (operator_addr_expr::op1_range): Adjust call to fold_range. (range_cast): Same. * tree-vrp.c (range_fold_binary_symbolics_p): Adjust call to fold_range. (range_fold_unary_symbolics_p): Same. From-SVN: r278266
Andrew MacLeod committed -
C2x adds u8'' character constants to C. This patch adds the corresponding GCC support. Most of the support was already present for C++ and just needed enabling for C2x. However, in C2x these constants have type unsigned char, which required corresponding adjustments in the compiler and the preprocessor to give them that type for C. For C, it seems clear to me that having type unsigned char means the constants are unsigned in the preprocessor (and thus treated as having type uintmax_t in #if conditionals), so this patch implements that. I included a conditional in the libcpp change to avoid affecting signedness for C++, but I'm not sure if in fact these constants should also be unsigned in the preprocessor for C++ in which case that !CPP_OPTION (pfile, cplusplus) conditional would not be needed. Bootstrapped with no regressions on x86_64-pc-linux-gnu. gcc/c: * c-parser.c (c_parser_postfix_expression) (c_parser_check_literal_zero): Handle CPP_UTF8CHAR. * gimple-parser.c (c_parser_gimple_postfix_expression): Likewise. gcc/c-family: * c-lex.c (lex_charconst): Make CPP_UTF8CHAR constants unsigned char for C. gcc/testsuite: * gcc.dg/c11-utf8char-1.c, gcc.dg/c2x-utf8char-1.c, gcc.dg/c2x-utf8char-2.c, gcc.dg/c2x-utf8char-3.c, gcc.dg/gnu2x-utf8char-1.c: New tests. libcpp: * charset.c (narrow_str_to_charconst): Make CPP_UTF8CHAR constants unsigned for C. * init.c (lang_defaults): Set utf8_char_literals for GNUC2X and STDC2X. From-SVN: r278265
Joseph Myers committed -
gcc.dg/vect/bb-slp-40.c was failing on some targets because the explicit dg-options overrode things like -maltivec. This patch uses dg-additional-options instead. Also, it seems safer not to require exactly 1 instance of each message, since that depends on the target vector length. gcc.dg/vect/bb-slp-41.c contained invariant constructors that are vectorised on AArch64 (foo) and constructors that aren't (bar). This meant that the number of times we print "Found vectorizable constructor" depended on how many vector sizes we try, since we'd print it for each failed attempt. In foo, we create invariant { b[0], ... } and { b[1], ... }, and the test is making sure that the two separate invariant vectors can be fed from the same vector load at b. This is a different case from bb-slp-40.c, where the constructors are naturally separate. (The expected count is 4 rather than 2 because we can vectorise the epilogue too.) However, due to limitations in the loop vectoriser, we still do the addition of { b[0], ... } and { b[1], ... } in the loop. Hopefully that'll be fixed at some point, so this patch adds an alternative test that directly needs 4 separate invariant constructors. E.g. with Joel's SLP optimisation, the new test generates: ldr q4, [x1] dup v7.4s, v4.s[0] dup v6.4s, v4.s[1] dup v5.4s, v4.s[2] dup v4.4s, v4.s[3] instead of the somewhat bizarre: ldp s6, s5, [x1, 4] ldr s4, [x1, 12] ld1r {v7.4s}, [x1] dup v6.4s, v6.s[0] dup v5.4s, v5.s[0] dup v4.4s, v4.s[0] The patch then disables vectorisation of the original foo in bb-vect-slp-41.c, so that we get the same correctness testing for bar but don't need to test for specific counts. 2019-11-14 Richard Sandiford <richard.sandiford@arm.com> gcc/testsuite/ PR testsuite/92366 * gcc.dg/vect/bb-slp-40.c: Use dg-additional-options instead of dg-options. Remove expected counts. * gcc.dg/vect/bb-slp-41.c: Remove dg-options and explicit dg-do run. Suppress vectorization of foo. * gcc.dg/vect/bb-slp-42.c: New test. From-SVN: r278262
Richard Sandiford committed -
2019-11-14 Andrew MacLeod <amacleod@redhat.com> PR tree-optimization/92506 * range-op.cc (range_operator::fold_range): Start with range undefined. (operator_abs::wi_fold): Fix wrong line copy... With wrapv, abs with overflow is varying. From-SVN: r278259
Andrew MacLeod committed -
From-SVN: r278258
Aldy Hernandez committed -
* include/bits/iterator_concepts.h (__iter_concept_impl): Add comments. (indirect_relation): Rename to indirect_binary_predicate and adjust definition as per P1716R3. (indirect_equivalence_relation): Define. (indirectly_comparable): Adjust definition. * include/std/concepts (equivalence_relation): Define. * testsuite/std/concepts/concepts.callable/relation.cc: Add tests for equivalence_relation. From-SVN: r278256
Jonathan Wakely committed -
* include/bits/iterator_concepts.h (disable_sized_sentinel): Rename to disable_sized_sentinel_for. * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: Adjust. From-SVN: r278255
Jonathan Wakely committed
-