1. 19 Jun, 2018 26 commits
    • Wrap is_static with COLLECT_EXPORT_LIST · e56f4605
      From-SVN: r261775
      David Edelsohn committed
    • PR middle-end/85602 - -Warray-bounds fails to detect the out of bound array access · b5ebb717
      gcc/testsuite/ChangeLog:
       	* c-c++-common/attr-nonstring-8.c: Adjust text of expected warning
       	to also match C++.
      
      From-SVN: r261774
      Martin Sebor committed
    • tree-cfgcleanup.c (tree_forwarder_block_p): Do not return false at -O0 if the… · 180720a5
      tree-cfgcleanup.c (tree_forwarder_block_p): Do not return false at -O0 if the locus represent UNKNOWN_LOCATION but have...
      
      	* tree-cfgcleanup.c (tree_forwarder_block_p): Do not return false at
      	-O0 if the locus represent UNKNOWN_LOCATION but have different values.
      
      From-SVN: r261770
      Eric Botcazou committed
    • rs6000-string.c (select_block_compare_mode): Check… · f7e94dfb
      rs6000-string.c (select_block_compare_mode): Check TARGET_EFFICIENT_OVERLAPPING_UNALIGNED here instead of in caller.
      
      2018-06-19  Aaron Sawdey  <acsawdey@linux.ibm.com>
      
      	* config/rs6000/rs6000-string.c (select_block_compare_mode): Check
      	TARGET_EFFICIENT_OVERLAPPING_UNALIGNED here instead of in caller.
      	(do_and3, do_and3_mask, do_compb3, do_rotl3): New functions.
      	(expand_block_compare): Change select_block_compare_mode call.
      	(expand_strncmp_align_check): Use new functions, fix comment.
      	(emit_final_str_compare_gpr): New function.
      	(expand_strn_compare): Refactor and clean up code.
      	* config/rs6000/vsx.md (vsx_mov<mode>_64bit): Remove *.
      
      From-SVN: r261769
      Aaron Sawdey committed
    • collect2.c (static_obj): New variable. · 6a513e2a
      2018-06-19  Tony Reix  <tony.reix@atos.com>
                  Damien Bergamini  <damien.bergamini@atos.com>
                  David Edelsohn  <dje.gcc@gmail.com>
      
              * collect2.c (static_obj): New variable.
              (static_libs): New variable.
              (is_in_list): Uncomment declaration.
              (main): Track AIX libraries linked statically.
              (is_in_list): Uncomment definition.
              (scan_prog_file): Don't add AIX shared libraries initializer
              to constructor list if linking statically.
      
      Co-Authored-By: Damien Bergamini <damien.bergamini@atos.com>
      Co-Authored-By: David Edelsohn <dje.gcc@gmail.com>
      
      From-SVN: r261759
      Tony Reix committed
    • cp-tree.h (CONSTRUCTOR_NO_IMPLICIT_ZERO): Remove. · e8c48716
      	* cp-tree.h (CONSTRUCTOR_NO_IMPLICIT_ZERO): Remove.
      
      	* constexpr.c: Use CONSTRUCTOR_NO_CLEARING instead.
      
      From-SVN: r261758
      Jason Merrill committed
    • PR c++/86192 - ICE with anonymous union passed to template. · 0e570cf8
      	* pt.c (tsubst_expr) [DECL_EXPR]: Handle an anonymous union type
      	used to declare a named variable.
      
      From-SVN: r261757
      Jason Merrill committed
    • xtensa: fix PR target/65416 · 9a775e9d
      The issue is caused by reordering of stack pointer update after stack
      space allocation with instructions that write to the allocated stack
      space. In windowed ABI register spill area for the previous call frame
      is located just below the stack pointer and may be reloaded back into
      the register file on movsp.
      Implement allocate_stack pattern for windowed ABI configuration and
      insert an instruction that prevents reordering of frame memory access
      and stack pointer update.
      
      gcc/
      2018-06-19  Max Filippov  <jcmvbkbc@gmail.com>
      
      	* config/xtensa/xtensa.md (UNSPEC_FRAME_BLOCKAGE): New unspec
      	constant.
      	(allocate_stack, frame_blockage, *frame_blockage): New patterns.
      
      From-SVN: r261755
      Max Filippov committed
    • re PR middle-end/85602 (-Wsizeof-pointer-memaccess for strncat with size of source) · 5f21ea67
      gcc/testsuite/ChangeLog:
      
      	PR middle-end/85602
      	* c-c++-common/attr-nonstring-8.c: Adjust text of expected warning
      	to also match C++.
      
      From-SVN: r261751
      Martin Sebor committed
    • Remove unused <exception> header from <utility> · 828d6449
      This header was needed for the declaration of std::terminate but the
      calls to it were removed in r242401.
      
      	* include/std/utility: Remove unused <exception> header.
      
      From-SVN: r261749
      Jonathan Wakely committed
    • tree.c (find_decls_types_r): Remove all non-VAR_DECLs from blocks. · 694dc72e
      
      	* tree.c (find_decls_types_r): Remove all non-VAR_DECLs from
      	blocks.
      	* g++.dg/lto/pr84805_0.C: Update template.
      	* g++.dg/lto/pr84805_1.C: Update template.
      
      From-SVN: r261748
      Jan Hubicka committed
    • * es.po: Update. · 583d09f3
      From-SVN: r261745
      Joseph Myers committed
    • Clean-up usage of ipa_fn_summary and ipa_call_summary summaries. · 56f62793
      2018-06-19  Martin Liska  <mliska@suse.cz>
      
      	* config/i386/i386.c (ix86_can_inline_p): Do not use
              ipa_fn_summaries::get_create.
      	* ipa-cp.c (ipcp_cloning_candidate_p): Replace get_create with
              get.
      	(devirtualization_time_bonus): Likewise.
      	(ipcp_propagate_stage): Likewise.
      	* ipa-fnsummary.c (redirect_to_unreachable): Likewise.
      	(edge_set_predicate): Likewise.
      	(evaluate_conditions_for_known_args): Likewise.
      	(evaluate_properties_for_edge): Likewise.
      	(ipa_call_summary::reset): Tranform to ...
      	(ipa_call_summary::~ipa_call_summary): ... this.
      	(ipa_fn_summary::reset): Transform to ...
      	(ipa_fn_summary::~ipa_fn_summary): ... this.
      	(ipa_fn_summary_t::remove): Rename to ...
      	(ipa_fn_summary_t::remove_callees): ... this.
      	(ipa_fn_summary_t::duplicate): Use placement new
              instead of memory copy.
      	(ipa_call_summary_t::duplicate): Likewise.
      	(ipa_call_summary_t::remove): Remove.
      	(dump_ipa_call_summary): Change get_create to get.
      	(ipa_dump_fn_summary): Dump only when summary exists.
      	(analyze_function_body): Use symbol_summary::get instead
              of get_create.
      	(compute_fn_summary): Likewise.
      	(estimate_edge_devirt_benefit): Likewise.
      	(estimate_edge_size_and_time): Likewise.
      	(inline_update_callee_summaries): Likewise.
      	(remap_edge_change_prob): Likewise.
      	(remap_edge_summaries): Likewise.
      	(ipa_merge_fn_summary_after_inlining): Likewise.
      	(write_ipa_call_summary): Likewise.
      	(ipa_fn_summary_write): Likewise.
      	(ipa_free_fn_summary): Likewise.
      	* ipa-fnsummary.h (struct GTY): Add new ctor and copy ctor.
      	(struct ipa_call_summary): Likewise.
      	* ipa-icf.c (sem_function::merge): Use symbol_summary::get instead
              of get_create.
      	* ipa-inline-analysis.c (do_estimate_edge_time): Likewise.
      	(estimate_size_after_inlining): Likewise.
      	(estimate_growth): Likewise.
      	(growth_likely_positive): Likewise.
      	* ipa-inline-transform.c (clone_inlined_nodes): Likewise.
      	(inline_call): Likewise.
      	* ipa-inline.c (caller_growth_limits): Likewise.
      	(can_inline_edge_p): Likewise.
      	(can_inline_edge_by_limits_p): Likewise.
      	(compute_uninlined_call_time): Likewise.
      	(compute_inlined_call_time): Likewise.
      	(want_inline_small_function_p): Likewise.
      	(edge_badness): Likewise.
      	(update_caller_keys): Likewise.
      	(update_callee_keys): Likewise.
      	(inline_small_functions): Likewise.
      	(inline_to_all_callers_1): Likewise.
      	(dump_overall_stats): Likewise.
      	(early_inline_small_functions): Likewise.
      	(early_inliner): Likewise.
      	* ipa-profile.c (ipa_propagate_frequency_1): Likewise.
      	* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
      	* ipa-pure-const.c (malloc_candidate_p): Likewise.
      	* ipa-split.c (execute_split_functions): Likewise.
      	* symbol-summary.h: Likewise.
      	* tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.
      2018-06-19  Martin Liska  <mliska@suse.cz>
      
      	* lto-partition.c (add_symbol_to_partition_1): Use symbol_summary::get instead
              of get_create.
      	(undo_partition): Likewise.
      	(lto_balanced_map): Likewise.
      
      From-SVN: r261744
      Martin Liska committed
    • Improve gimple.vim syntax file. · ed0eb0c5
      From-SVN: r261742
      Martin Liska committed
    • Add initial version of rtl.vim syntax file. · 58508d3f
      2018-06-19  Martin Liska  <mliska@suse.cz>
      
      	* gcc-rtl.vim: New file.
      
      From-SVN: r261741
      Martin Liska committed
    • tree-vectorizer.c (try_vectorize_loop_1): Split out of ... · 5b04d77e
      2018-06-19  Richard Biener  <rguenther@suse.de>
      
      	* tree-vectorizer.c (try_vectorize_loop_1): Split out of ...
      	(vectorize_loops): ... here.  Fix dbgcnt handling.
      	(try_vectorize_loop): Wrap try_vectorize_loop_1.
      
      From-SVN: r261740
      Richard Biener committed
    • Allow building of the zlib component when the building takes place in the source directory. · 8006534c
      	* zlib/configure.ac: Restore old behaviour of only enabling
      	multilibs when a target subdirectory is defined.  This allows
      	building with srcdir == builddir.
      	* zlib/configure: Regenerate.
      
      From-SVN: r261739
      Nick Clifton committed
    • rs6000: Fix vector homogeneous aggregates (PR86197) · 6b3a9170
      The existing code allows only 4 vectors worth of ieee128 homogeneous
      aggregates, but it should be 8.  This happens because at one spot it
      is mistakenly qualified as being passed in floating point registers.
      
      
      	PR target/86197
      	* config/rs6000/rs6000.md (rs6000_discover_homogeneous_aggregate): An
      	ieee128 argument takes up only one (vector) register, not two (floating
      	point) registers.
      
      From-SVN: r261738
      Segher Boessenkool committed
    • gimplify.c (gimplify_init_constructor): Really never clear for an incomplete… · 7f1387e0
      gimplify.c (gimplify_init_constructor): Really never clear for an incomplete constructor if CONSTRUCTOR_NO_CLEARING is set.
      
      	* gimplify.c (gimplify_init_constructor): Really never clear for an
      	incomplete constructor if CONSTRUCTOR_NO_CLEARING is set.
      
      From-SVN: r261735
      Eric Botcazou committed
    • Remove unused stagestuff in config-lang.in. · 1724941e
      2018-06-19  Martin Liska  <mliska@suse.cz>
      
      	* config-lang.in: Remove stagestuff.
      
      From-SVN: r261733
      Martin Liska committed
    • re PR tree-optimization/86179 (ice in get_later_stmt, at tree-vectorizer.h:1108) · df0aef6d
      2018-06-19  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/86179
      	* tree-vect-patterns.c (vect_pattern_recog_1): Clean up
      	after failed recognition.
      
      	* gcc.dg/pr86179.c: New testcase.
      
      From-SVN: r261731
      Richard Biener committed
    • tree.c (cp_expr_location): New. · 6bdfada4
      	* tree.c (cp_expr_location): New.
      
      	* cp-tree.h (cp_expr_loc_or_loc): New.
      	* call.c, cvt.c, constexpr.c, constraint.cc, cp-gimplify.c, decl.c,
      	error.c, init.c, lex.c, parser.c, pt.c, semantics.c, typeck.c,
      	typeck2.c: Use it instead of EXPR_LOC_OR_LOC.
      
      From-SVN: r261728
      Jason Merrill committed
    • Use a range for LAMBDA_EXPR_LOCATION. · c0e11c6a
      	* parser.c (cp_parser_lambda_expression): Use a range for
      	LAMBDA_EXPR_LOCATION.
      
      From-SVN: r261727
      Jason Merrill committed
    • PR c++/86200 - ICE with unexpanded pack in lambda parameter. · 44e3e545
      	* pt.c (find_parameter_packs_r) [LAMBDA_EXPR]: Also look into the
      	function type.
      
      From-SVN: r261726
      Jason Merrill committed
    • PR c++/81060 - ICE with unexpanded parameter pack. · cae39eb4
      	* pt.c (check_for_bare_parameter_packs): Add loc parameter.
      	* decl.c (grokdeclarator): Call it for qualifying_scope.
      
      From-SVN: r261725
      Jason Merrill committed
    • Daily bump. · 094c2a23
      From-SVN: r261724
      GCC Administrator committed
  2. 18 Jun, 2018 14 commits
    • PR middle-end/85602 - -Wsizeof-pointer-memaccess for strncat with size of source · 4252ccd7
      gcc/c-family/ChangeLog:
      
      	PR middle-end/85602
      	* c-warn.c (sizeof_pointer_memaccess_warning): Check for attribute
      	nonstring.
      
      gcc/ChangeLog:
      
      	PR middle-end/85602
      	* calls.c (maybe_warn_nonstring_arg): Handle strncat.
      	* tree-ssa-strlen.c (is_strlen_related_p): Make extern.
      	Handle integer subtraction.
      	(maybe_diag_stxncpy_trunc): Handle nonstring source arguments.
      	* tree-ssa-strlen.h (is_strlen_related_p): Declare.
      
      gcc/testsuite/ChangeLog:
      
      	PR middle-end/85602
      	* gcc.dg/attr-nonstring-2.c: Adjust text of expected warning.
      	* c-c++-common/attr-nonstring-8.c: New test.
      
      From-SVN: r261718
      Martin Sebor committed
    • Makefile.def (fortran): Add check-target-libgomp-fortran. · 9e03592e
      	* Makefile.def (fortran): Add check-target-libgomp-fortran.
      	* Makefile.tpl (check-target-libgomp-fortran): New phony target.
      	* Makefile.in: Regenerate.
      
      From-SVN: r261717
      Eric Botcazou committed
    • LWG 2975 ensure construct(pair<T,U>*, ...) used to construct pairs · 05891e9f
      	* include/std/scoped_allocator (__not_pair): Define SFINAE helper.
      	(construct(_Tp*, _Args&&...)): Remove from overload set when _Tp is
      	a specialization of std::pair.
      	* testsuite/20_util/scoped_allocator/construct_pair.cc: Ensure
      	pair elements are constructed correctly.
      
      From-SVN: r261716
      Jonathan Wakely committed
    • More rtx to rtx_insn * cleanups · df0b55f0
      gcc/ChangeLog:
      	* config/frv/frv-protos.h (frv_ifcvt_modify_insn): Strengthen 3rd
      	param from rtx to rtx_insn *.
      	* config/frv/frv.c (frv_ifcvt_add_insn): Likewise for "insn"
      	param.
      	(frv_ifcvt_modify_insn): Likwise.
      	(frv_ifcvt_modify_final): Likwise for local "existing_insn",
      	adding an as_a <rtx_insn *> cast.  Likewise for local "insn".
      	* config/mips/mips.c (r10k_insert_cache_barriers): Add an
      	as_a <rtx_insn *> cast to local "unprotected_region" once
      	it's been established that it's not NULL or pc_rtx.
      	* config/nds32/nds32-relax-opt.c (nds32_group_insns): Strengthen
      	param "sethi" from rtx to rtx_insn *.
      	(nds32_group_float_insns): Likewise for param "insn".
      	* config/vax/vax-protos.h (vax_output_int_add): Likewise for 1st
      	param.
      	(vax_output_int_subtract): Likewise.
      	* config/vax/vax.c (vax_output_int_add): Likewise for param
      	"insn".
      	(vax_output_int_subtract): Likewise.
      	* emit-rtl.c (set_insn_deleted): Likewise, removing cast.
      	(emit_pattern_after): Likewise for param "after".
      	(emit_insn_after): Likewise.
      	(emit_jump_insn_after): Likewise.
      	(emit_call_insn_after): Likewise.
      	(emit_debug_insn_after): Likewise.
      	(emit_pattern_before): Likewise for param "before".
      	(emit_insn_before): Likewise.
      	(emit_jump_insn_before): Likewise.
      	* final.c (get_insn_template): Likewise for param "insn", removing
      	a cast.
      	* output.h (get_insn_template): Likewise for 2nd param.
      	* rtl.h (emit_insn_before): Likewise.
      	(emit_jump_insn_before): Likewise.
      	(emit_debug_insn_before_noloc): Likewise.
      	(emit_insn_after): Likewise.
      	(emit_jump_insn_after): Likewise.
      	(emit_call_insn_after): Likewise.
      	(emit_debug_insn_after): Likewise.
      	(set_insn_deleted): Likewise for param.
      
      From-SVN: r261715
      David Malcolm committed
    • re PR target/85358 (PowerPC: Using -mabi=ieeelongdouble -mcpu=power9 breaks __ibm128) · 6a8886e4
      [gcc]
      2018-06-18  Michael Meissner  <meissner@linux.ibm.com>
      
      	PR target/85358
      	* config/rs6000/rs6000-modes.def (toplevel): Rework the 128-bit
      	floating point modes, so that IFmode is numerically greater than
      	TFmode, which is greater than KFmode using FRACTIONAL_FLOAT_MODE
      	to declare the ordering.  This prevents IFmode from being
      	converted to TFmode when long double is IEEE 128-bit on an ISA 3.0
      	machine.  Include rs6000-modes.h to share the fractional values
      	between genmodes* and the rest of the compiler.
      	(IFmode): Likewise.
      	(KFmode): Likewise.
      	(TFmode): Likewise.
      	* config/rs6000/rs6000-modes.h: New file.
      	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Change the
      	meaning of rs6000_long_double_size so that 126..128 selects an
      	appropriate 128-bit floating point type.
      	(rs6000_option_override_internal): Likewise.
      	* config/rs6000/rs6000.h (toplevel): Include rs6000-modes.h.
      	(TARGET_LONG_DOUBLE_128): Change the meaning of
      	rs6000_long_double_size so that 126..128 selects an appropriate
      	128-bit floating point type.
      	(LONG_DOUBLE_TYPE_SIZE): Update comment.
      	* config/rs6000/rs6000.md (trunciftf2): Correct the modes of the
      	source and destination to match the standard usage.
      	(truncifkf2): Likewise.
      	(copysign<mode>3, IEEE iterator): Rework copysign of float128 on
      	ISA 2.07 to use an explicit clobber, instead of passing in a
      	temporary.
      	(copysign<mode>3_soft): Likewise.
      
      [libgcc]
      2018-06-18  Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/t-float128 (FP128_CFLAGS_SW): Compile float128
      	support modules with -mno-gnu-attribute.
      	* config/rs6000/t-float128-hw (FP128_CFLAGS_HW): Likewise.
      
      From-SVN: r261712
      Michael Meissner committed
    • LWG 2989 hide path iostream operators from normal lookup · b0874c66
      By only defining these operators as friends (with no namespace-scope
      declaration) they can only be found by ADL and do not participate in
      overload resolution for arguments of types other than path.
      
      	LWG 2989 hide path iostream operators from normal lookup
      	* include/bits/fs_path.h (operator<<, operator>>): Define inline as
      	friends.
      	* testsuite/27_io/filesystem/path/io/dr2989.cc: New.
      
      From-SVN: r261711
      Jonathan Wakely committed
    • Introduce DUMP_VECT_SCOPE macro · adac3a68
      gcc/ChangeLog:
      	* tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
      	Replace dump_printf_loc call with DUMP_VECT_SCOPE.
      	(vect_slp_analyze_instance_dependence): Likewise.
      	(vect_enhance_data_refs_alignment): Likewise.
      	(vect_analyze_data_refs_alignment): Likewise.
      	(vect_slp_analyze_and_verify_instance_alignment
      	(vect_analyze_data_ref_accesses): Likewise.
      	(vect_prune_runtime_alias_test_list): Likewise.
      	(vect_analyze_data_refs): Likewise.
      	* tree-vect-loop-manip.c (vect_update_inits_of_drs): Likewise.
      	* tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
      	(vect_analyze_scalar_cycles_1): Likewise.
      	(vect_get_loop_niters): Likewise.
      	(vect_analyze_loop_form_1): Likewise.
      	(vect_update_vf_for_slp): Likewise.
      	(vect_analyze_loop_operations): Likewise.
      	(vect_analyze_loop): Likewise.
      	(vectorizable_induction): Likewise.
      	(vect_transform_loop): Likewise.
      	* tree-vect-patterns.c (vect_pattern_recog): Likewise.
      	* tree-vect-slp.c (vect_analyze_slp): Likewise.
      	(vect_make_slp_decision): Likewise.
      	(vect_detect_hybrid_slp): Likewise.
      	(vect_slp_analyze_operations): Likewise.
      	(vect_slp_bb): Likewise.
      	* tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
      	(vectorizable_bswap): Likewise.
      	(vectorizable_call): Likewise.
      	(vectorizable_simd_clone_call): Likewise.
      	(vectorizable_conversion): Likewise.
      	(vectorizable_assignment): Likewise.
      	(vectorizable_shift): Likewise.
      	(vectorizable_operation): Likewise.
      	* tree-vectorizer.h (DUMP_VECT_SCOPE): New macro.
      
      From-SVN: r261710
      David Malcolm committed
    • PR c++/86171 - ICE with recursive alias instantiation. · 5d4d0be8
      	* pt.c (tsubst_decl): Handle recursive alias instantiation.
      
      From-SVN: r261709
      Jason Merrill committed
    • LWG 3050 Fix cv-qualification of convertibility constraints · 8499a82c
      	LWG 3050 Fix cv-qualification of convertibility constraints
      	* include/std/chrono (duration, operator*, operator/, operator%): Use
      	const-qualified type as source type in is_convertible constraints.
      	* testsuite/20_util/duration/arithmetic/dr3050.cc: New.
      	* testsuite/20_util/duration/cons/dr3050.cc: New.
      	* testsuite/20_util/duration/literals/range.cc: Rename to...
      	* testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust
      	dg-error lineno.
      
      From-SVN: r261708
      Jonathan Wakely committed
    • crossconfig.m4: Handle OpenBSD just like NetBSD. · 4f9eae9f
      2018-06-18  Maya Rashish  <coypu@sdf.org>
      
      	* crossconfig.m4: Handle OpenBSD just like NetBSD.
      	* configure: Rebuilt.
      
      	* config/alpha/openbsd.h (TARGET_DEFAULT): Define.
      	(LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
      	(INTMAX_TYPE, UINTMAX_TYPE, WINT_TYPE): Likewise.
      
      	* config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Move from
      	here to ...
      	* config/alpha/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Here.
      
      From-SVN: r261707
      Maya Rashish committed
    • P0754R2 <version> header · 410fb7d7
      	* include/Makefile.am: Add new header.
      	* include/Makefile.in: Regenerate.
      	* include/bits/c++config: Change doxygen comment to suggest <version>
      	instead of <iosfwd>.
      	* include/precompiled/stdc++.h: Include <cwchar> and <cwctype>
      	unconditionally.  Add C++17 and C++20 headers.
      	* include/std/version: New header.
      	* testsuite/17_intro/headers/c++2017/all_attributes.cc: New.
      	* testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: New.
      	* testsuite/17_intro/headers/c++2017/all_no_rtti.cc: New.
      	* testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: New.
      	* testsuite/17_intro/headers/c++2017/operator_names.cc: New.
      	* testsuite/17_intro/headers/c++2017/stdc++.cc: New.
      	* testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
      	New.
      	* testsuite/17_intro/headers/c++2020/all_attributes.cc: New.
      	* testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: New.
      	* testsuite/17_intro/headers/c++2020/all_no_rtti.cc: New.
      	* testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: New.
      	* testsuite/17_intro/headers/c++2020/operator_names.cc: New.
      	* testsuite/17_intro/headers/c++2020/stdc++.cc: New.
      	* testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc:
      	New.
      	* testsuite/18_support/headers/version/macros.cc: New.
      	* testsuite/18_support/headers/version/macros.cc: New.
      
      From-SVN: r261706
      Jonathan Wakely committed
    • PR tree-optimization/81384 - built-in form of strnlen missing · 781ff3d8
      gcc/ChangeLog:
      
      	PR tree-optimization/81384
      	* builtin-types.def (BT_FN_SIZE_CONST_STRING_SIZE): New.
      	* builtins.c (expand_builtin_strnlen): New function.
      	(expand_builtin): Call it.
      	(fold_builtin_n): Avoid setting TREE_NO_WARNING.
      	* builtins.def (BUILT_IN_STRNLEN): New.
      	* calls.c (maybe_warn_nonstring_arg): Handle BUILT_IN_STRNLEN.
      	Warn for bounds in excess of maximum object size.
      	* tree-ssa-strlen.c (maybe_set_strlen_range): Return tree representing
      	single-value ranges.  Handle strnlen.
      	(handle_builtin_strlen): Handle strnlen.
      	(strlen_check_and_optimize_stmt): Same.
      	* doc/extend.texi (Other Builtins): Document strnlen.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/81384
      	* gcc.c-torture/execute/builtins/lib/strnlen.c: New test.
      	* gcc.c-torture/execute/builtins/strnlen-lib.c: New test.
      	* gcc.c-torture/execute/builtins/strnlen.c: New test.
      	* gcc.dg/attr-nonstring-2.c: New test.
      	* gcc.dg/attr-nonstring-3.c: New test.
      	* gcc.dg/attr-nonstring-4.c: New test.
      	* gcc.dg/strlenopt-45.c: New test.
      	* gcc.dg/strlenopt.h (strnlen):  Declare.
      
      From-SVN: r261705
      Martin Sebor committed
    • Fix bootstrap failure for bare metal due to autoconf link tests · 7314856c
      The AC_CHECK_FUNCS tests cause the build to fail for bare metal cross
      compilers, where link tests are not allowed. Replace them with
      GCC_TRY_COMPILE_OR_LINK tests instead. Skip all the Filesystem
      dependency checks if not building the filesystem library.
      
      	* acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Only check when
      	enable_libstdcxx_filesystem_ts = yes. Check for link, readlink and
      	symlink.
      	* config.h.in: Regenerate.
      	* configure: Regenerate.
      	* configure.ac: Remove AC_CHECK_FUNCS for link, readlink and symlink.
      
      From-SVN: r261704
      Jonathan Wakely committed
    • LWG 3035. std::allocator's constructors should be constexpr · 3be9ded2
      	LWG 3035. std::allocator's constructors should be constexpr
      	* include/bits/allocator.h (allocator): Add constexpr to constructors
      	for C++2a. Replace dynamic exception specifications with NOTHROW
      	macro.
      	(allocator, operator==, operator!=): Replace USE_NOEXCEPT macro with
      	NOTHROW.
      	* include/bits/c++config (_GLIBCXX20_CONSTEXPR): Define.
      	* include/ext/malloc_allocator.h (malloc_allocator): Add constexpr
      	to constructors for C++2a.
      	* include/ext/new_allocator.h (new_allocator): Likewise.
      
      From-SVN: r261703
      Jonathan Wakely committed