1. 29 May, 2019 7 commits
    • re PR c/90628 (__builtin_mul_overflow writes to const qualified integer) · 357a352f
      	PR c/90628
      	* c-common.c (check_builtin_function_arguments)
      	<case BUILTIN_*_OVERFLOW>: Diagnose pointer to const qualified integer
      	as last argument.
      
      	* c-c++-common/builtin-arith-overflow-3.c: New test.
      
      From-SVN: r271732
      Jakub Jelinek committed
    • P1091R3 - Extending structured bindings to be more like var decls P1381R1 -… · b0df5ff8
      P1091R3 - Extending structured bindings to be more like var decls P1381R1 - Reference capture of structured bindings
      
      	P1091R3 - Extending structured bindings to be more like var decls
      	P1381R1 - Reference capture of structured bindings
      	* decl.c (cp_maybe_mangle_decomp): Handle TREE_STATIC decls even at
      	function scope.
      	(cp_finish_decomp): Copy over various decl properties from decl to
      	v[i] in the tuple case.
      	(grokdeclarator): Allow static, thread_local and __thread for C++2a
      	and use pedwarn instead of error for older standard revisions.
      	Make other structured binding diagnostic messages more i18n friendly.
      
      	* g++.dg/cpp1z/decomp3.C (test): For static, expect only warning
      	instead of error and only for c++17_down.  Add a thread_local test.
      	(z2): Add a __thread test.
      	* g++.dg/cpp2a/decomp1.C: New test.
      	* g++.dg/cpp2a/decomp1-aux.cc: New file.
      	* g++.dg/cpp2a/decomp2.C: New test.
      	* g++.dg/cpp2a/decomp3.C: New test.
      
      From-SVN: r271731
      Jakub Jelinek committed
    • P1091R3 - Extending structured bindings to be more like var decls P1381R1 -… · b7f0df71
      P1091R3 - Extending structured bindings to be more like var decls P1381R1 - Reference capture of structured bindings
      
      	P1091R3 - Extending structured bindings to be more like var decls
      	P1381R1 - Reference capture of structured bindings
      	* decl.c (cp_maybe_mangle_decomp): Handle TREE_STATIC decls even at
      	function scope.
      	(cp_finish_decomp): Copy over various decl properties from decl to
      	v[i] in the tuple case.
      	(grokdeclarator): Allow static, thread_local and __thread for C++2a
      	and use pedwarn instead of error for older standard revisions.
      	Make other structured binding diagnostic messages more i18n friendly.
      
      	* g++.dg/cpp1z/decomp3.C (test): For static, expect only warning
      	instead of error and only for c++17_down.  Add a thread_local test.
      	(z2): Add a __thread test.
      	* g++.dg/cpp2a/decomp1.C: New test.
      	* g++.dg/cpp2a/decomp1-aux.cc: New file.
      	* g++.dg/cpp2a/decomp2.C: New test.
      	* g++.dg/cpp2a/decomp3.C: New test.
      
      From-SVN: r271730
      Jakub Jelinek committed
    • Remove duplicite dg-compile (PR testsuite/90657). · 2186b5d0
      2019-05-29  Martin Liska  <mliska@suse.cz>
      
      	PR testsuite/90657
      	* gcc.dg/ipa/pr90555.c: Remove duplicite dg-compile.
      
      From-SVN: r271729
      Martin Liska committed
    • rs6000-cpus.def (OTHER_FUTURES_MASK): New #define. · 510d3a73
      [gcc]
      
      2019-05-28  Bill Schmidt  <wschmidt@linux.ibm.com>
      	    Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
      
      [gcc/testsuite]
      
      2019-05-28  Bill Schmidt  <wschmidt@linux.ibm.com>
      
      	* gcc.target/powerpc/localentry-detect-1.c: New file.
      
      
      Co-Authored-By: Michael Meissner <meissner@linux.ibm.com>
      
      From-SVN: r271728
      Bill Schmidt committed
    • rtl.h (LABEL_REF_P): New #define. · 02441f3e
      2019-05-28  Michael Meissner  <meissner@linux.ibm.com>
      
      	* rtl.h (LABEL_REF_P): New #define.
      
      From-SVN: r271727
      Michael Meissner committed
    • Daily bump. · 2872594a
      From-SVN: r271726
      GCC Administrator committed
  2. 28 May, 2019 24 commits
    • pa.c (hppa_profile_hook): Remove offset adjustment. · 6dbbb526
      	* config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
      
      From-SVN: r271720
      John David Anglin committed
    • PR libstdc++/90634 reduce allocations in filesystem::path construction · 441ed45c
      	PR libstdc++/90634
      	* include/experimental/bits/fs_path.h (path::path(path&&)): Only call
      	_M_split_cmpts() for a path with multiple components.
      	(path::_S_is_dir_sep()): Add missing 'static' keyword to function.
      	* src/filesystem/path.cc (path::_M_split_cmpts()): Count number of
      	components and reserve space in vector. Return early when there is
      	only one component.
      	* testsuite/27_io/filesystem/path/construct/90634.cc: New test.
      	* testsuite/experimental/filesystem/path/construct/90634.cc: New test.
      
      From-SVN: r271717
      Jonathan Wakely committed
    • Fix C++14-only code in testsuite utility · d9b401df
      	* testsuite/util/testsuite_fs.h (compare_paths): Use three-argument
      	form of std::equals for C++11 compatibility.
      
      From-SVN: r271716
      Jonathan Wakely committed
    • Remove pre-Solaris 11/SPARC unwinding support · e54b1a92
      	* config/sparc/sol2-unwind.h [__arch64__] (sparc64_is_sighandler):
      	Remove Solaris 9 and 10 support.
      	(sparc_is_sighandler): Likewise.
      
      From-SVN: r271715
      Rainer Orth committed
    • [C++ PATCH] template specializations · a01d3b04
      https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01844.html
      	* decl.c (duplicate_decls): Assert a template newdecl has no
      	specializations.
      
      From-SVN: r271713
      Nathan Sidwell committed
    • PR c++/90548 - ICE with generic lambda and empty pack. · de164412
      	* pt.c (tsubst_copy_and_build): Handle pack expansion properly.
      
      	* g++.dg/cpp1y/lambda-generic-90548.C: New test.
      
      From-SVN: r271705
      Marek Polacek committed
    • Current vectoriser doesn't support masked loads for SLP. · 99763671
      Current vectoriser doesn't support masked loads for SLP. We should add that, to
      allow things like:
      
      void
      f (int *restrict x, int *restrict y, int *restrict z, int n)
      {
        for (int i = 0; i < n; i += 2)
          {
            x[i] = y[i] ? z[i] : 1;
            x[i + 1] = y[i + 1] ? z[i + 1] : 2;
          }
      }
      
      to be vectorized using contiguous loads rather than LD2 and ST2.
      
      This patch was motivated by SVE, but it is completely generic and should apply
      to any architecture with masked loads.
      
      From-SVN: r271704
      Alejandro Martinez committed
    • Remove obsolete comment about use_thunk · 8b4e7143
      	* config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
      	Remove obsolete use_thunk reference.
      	* config/i386/i386.c (x86_output_mi_thunk): Likewise.
      	* config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
      	* config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
      	* config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
      	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
      	* config/sh/sh.c (sh_output_mi_thunk): Likewise.
      	* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
      	* config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
      	* config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
      
      From-SVN: r271703
      Rainer Orth committed
    • [PATCH] Commonize anon-name generation · 7daef9ac
      https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01699.html
      	* tree.h (IDENTIFIER_ANON_P): New.
      	(anon_aggrname_format, anon_aggname_p): Don't declare.
      	(make_anon_name): Declare.
      	* lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
      	(hash_tree): Likewise.
      	* tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
      	* tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
      	(anon_cnt, make_anon_name): New.
      
       	gcc/cp/
      	* cp-tree.h (make_anon_name): Drop declaration.
      	(TYPE_UNNAMED_P): Use IDENTIFIER_ANON_P.
      	* cp-lang.c (cxx_dwarf_name): Likewise.
      	* class.c (find_flexarrays): Likewise.
      	* decl.c (name_unnamed_type, xref_tag_1): Likewise.
      	* error.c (dump_aggr_type): Likewise.
      	* pt.c (push_template_decl_real): Likewise.
      	* name-lookup.c (consider_binding_level): Likewise.
      	(anon_cnt, make_anon_name): Delete.
      
      	gcc/d/
      	* types.cc (fixup_anonymous_offset): Use IDENTIFIER_ANON_P.
      	(layout_aggregate_members): Use make_anon_name.
      
      From-SVN: r271702
      Nathan Sidwell committed
    • pr50749-qihisi-predec-3.c: Disable loop distribution. · 3253d4f0
      	* testsuite/gcc.target/sh/pr50749-qihisi-predec-3.c: Disable
      	loop distribution.
      
      From-SVN: r271701
      Jeff Law committed
    • Support again multiple --help options (PR other/90315). · bc405869
      2019-05-28  Martin Liska  <mliska@suse.cz>
      
      	PR other/90315
      	* opts-global.c (decode_options): Print help for all
      	help_option_arguments.
      	* opts.c (print_help): Add new argument.
      	(common_handle_option): Remember all values into
      	help_option_arguments.
      	* opts.h (print_help): Add new argument.
      
      From-SVN: r271700
      Martin Liska committed
    • rs6000: Improve p9-dimode* testcases · 392d2ff3
      This removes the unnecessary restriction to 32-bit (all three ways).
      It also scans for mtvsr*, not just mtvsrd.  Finally, it uses the "wa"
      constraints instead of "wi" in the inline asm statements.
      
      
      gcc/testsuite/
      	* gcc.target/powerpc/p9-dimode1.c: Don't restrict to -m64.  Check for
      	all mtvsr*, not just mtvsrd.  Use "wa" instead of "wi" constraints.
      	* gcc.target/powerpc/p9-dimode2.c: Ditto.
      
      From-SVN: r271696
      Segher Boessenkool committed
    • Handle loop fields in IPA ICF (PR ipa/90555). · 8d2a3107
      2019-05-28  Martin Liska  <mliska@suse.cz>
      
      	PR ipa/90555
      	* ipa-icf-gimple.c (func_checker::compare_loops): New function.
      	* ipa-icf-gimple.h (func_checker::compare_loops): Likewise.
      	(func_checker::compare_bb): Call compare_loops.
      2019-05-28  Martin Liska  <mliska@suse.cz>
      
      	PR ipa/90555
      	* gcc.dg/ipa/pr90555.c: New test.
      
      From-SVN: r271695
      Martin Liska committed
    • implementation_defined_pragmas.rst (Machine_Attribute): Document additional optional parameters. · 5ca5ef68
      	* doc/gnat_rm/implementation_defined_pragmas.rst (Machine_Attribute):
      	Document additional optional parameters.
      	* sem_prag.adb (Analyze_Pragma) <Pragma_Machine_Attribute>: Accept
      	more than one optional parameter.
      	* gcc-interface/decl.c (prepend_one_attribute_pragma): Alphabetize
      	the list of supported pragmas.  Simplify the handling of parameters
      	and add support for more than one optional parameter.
      	* gcc-interface/utils.c (attr_cold_hot_exclusions): New constant.
      	(gnat_internal_attribute_table): Add entry for no_icf, noipa, flatten,
      	used, cold, hot, target and target_clones.
      	(begin_subprog_body): Do not create the RTL for the subprogram here.
      	(handle_noicf_attribute): New static function.
      	(handle_noipa_attribute): Likewise.
      	(handle_flatten_attribute): Likewise.
      	(handle_used_attribute): Likewise.
      	(handle_cold_attribute): Likewise.
      	(handle_hot_attribute): Likewise.
      	(handle_target_attribute): Likewise.
      	(handle_target_clones_attribute): Likewise.
      
      From-SVN: r271693
      Eric Botcazou committed
    • trans.c (lvalue_required_for_attribute_p): Return 0 for 'Size too. · 79069232
      	* gcc-interface/trans.c (lvalue_required_for_attribute_p): Return 0
      	for 'Size too.
      	(Identifier_to_gnu): Use the actual subtype for a reference to a
      	packed array in a return statement.
      	(Attribute_to_gnu) <Attr_Size>: Do not strip VIEW_CONVERT_EXPRs from
      	the prefix in every case.
      
      From-SVN: r271691
      Eric Botcazou committed
    • trans.c (gnat_to_gnu): Remove superfluous tests on… · f552aa62
      trans.c (gnat_to_gnu): Remove superfluous tests on Backend_Overflow_Checks_On_Target and rework comments.
      
      	* gcc-interface/trans.c (gnat_to_gnu): Remove superfluous tests on
      	Backend_Overflow_Checks_On_Target and rework comments.
      
      From-SVN: r271689
      Eric Botcazou committed
    • trans.c (walk_nesting_tree): New static function. · 81edaf2f
      	* gcc-interface/trans.c (walk_nesting_tree): New static function.
      	(finalize_nrv): Use it to walk the entire nesting tree.
      
      From-SVN: r271685
      Eric Botcazou committed
    • decl.c (gnat_to_gnu_entity): Remove obsolete test on Is_For_Access_Subtype. · 3e86c778
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Remove
      	obsolete test on Is_For_Access_Subtype.
      
      From-SVN: r271683
      Eric Botcazou committed
    • decl.c (components_to_record): Set a name on the type created for the REP part, if any. · f65f371b
      	* gcc-interface/decl.c (components_to_record): Set a name on the type
      	created for the REP part, if any.
      	* gcc-interface/utils.c (finish_record_type): Only take the maximum
      	when merging sizes for a variant part at offset 0.
      	(merge_sizes): Rename has_rep parameter into max.
      
      From-SVN: r271681
      Eric Botcazou committed
    • utils.c (gnat_internal_attribute_table): Add support for stack_protect attribute. · e6ca6782
      	* gcc-interface/utils.c (gnat_internal_attribute_table): Add support
      	for stack_protect attribute.
      	(handle_stack_protect_attribute): New static function.
      
      From-SVN: r271680
      Eric Botcazou committed
    • decl.c (intrin_arglists_compatible_p): Do not return false if the internal… · eabf2b44
      decl.c (intrin_arglists_compatible_p): Do not return false if the internal builtin uses a variable list.
      
      	* gcc-interface/decl.c (intrin_arglists_compatible_p): Do not return
      	false if the internal builtin uses a variable list.
      
      From-SVN: r271679
      Eric Botcazou committed
    • Add GCC support to ENQCMD. · 6a10feda
      gcc/ChangeLog
      
      2019-01-23  Xuepeng Guo  <xuepeng.guo@intel.com>
      
      	* common/config/i386/i386-common.c
      	(OPTION_MASK_ISA_ENQCMD_SET,
      	OPTION_MASK_ISA_ENQCMD_UNSET): New macros.
      	(ix86_handle_option): Handle -menqcmd.
      	* config.gcc (enqcmdintrin.h): New header file.
      	* config/i386/cpuid.h (bit_ENQCMD): New bit.
      	* config/i386/driver-i386.c (host_detect_local_cpu): Handle
      	-menqcmd.
      	* config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
      	function type.
      	* config/i386/i386-builtin.def (__builtin_ia32_enqcmd,
      	__builtin_ia32_enqcmds): New builtins.
      	* config/i386/i386-c.c (__ENQCMD__): New macro.
      	* config/i386/i386-option.c (ix86_target_string): Add
      	-menqcmd.
      	(ix86_valid_target_attribute_inner_p): Likewise.
      	* config/i386/i386-expand.c
      	(ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and
      	IX86_BUILTIN_ENQCMDS.
      	* config/i386/i386.h (TARGET_ENQCMD): New.
      	* config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New.
      	(@enqcmd<enqcmd_sfx>_<mode>): New insn pattern.
      	(movdir64b_<mode>): Parameterize to enable share expansion code
      	with ENQCMD in function ix86_expand_builtin.
      	* config/i386/i386.opt: Add -menqcmd.
      	* config/i386/immintrin.h: Include enqcmdintrin.h.
      	* config/i386/enqcmdintrin.h: New intrinsic file.
      	* doc/invoke.texi: Add -menqcmd.
      
      gcc/testsuite/ChangeLog
      
      2019-01-23  Xuepeng Guo  <xuepeng.guo@intel.com>
      
      	* gcc.target/i386/enqcmd.c: New test.
      	* gcc.target/i386/enqcmds.c: Likewise.
      	* g++.dg/other/i386-2.C: Add -menqcmd.
      	* g++.dg/other/i386-3.C: Likewise.
      	* gcc.target/i386/sse-12.c: Likewise.
      	* gcc.target/i386/sse-13.c: Likewise.
      	* gcc.target/i386/sse-14.c: Likewise.
      	* gcc.target/i386/sse-23.c: Likewise.
      
      From-SVN: r271678
      Xuepeng Guo committed
    • Daily bump. · cd8eca2c
      From-SVN: r271677
      GCC Administrator committed
  3. 27 May, 2019 9 commits
    • gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional on sections construct. · 8e7757ba
      	* gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
      	on sections construct.
      	* omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
      	construct.
      	(lower_omp_sections): Handle lastprivate conditional.
      	(lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with
      	lastprivate_conditional_map.
      	* omp-expand.c (expand_omp_sections): Handle lastprivate conditional.
      libgomp/
      	* testsuite/libgomp.c-c++-common/lastprivate_conditional_4.c: New test.
      
      From-SVN: r271673
      Jakub Jelinek committed
    • omp-low.c (lower_omp_1): Look through ordered... · 36c7a3ff
      	* omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
      	critical, taskgroup and section regions when looking for a region
      	with non-NULL lastprivate_conditional_map.
      
      	* testsuite/libgomp.c-c++-common/lastprivate-conditional-3.c: New test.
      
      From-SVN: r271672
      Jakub Jelinek committed
    • re PR libgomp/90641 (libgomp.c-c++-common/lastprivate-conditional-1.c etc FAIL) · fcfb8032
      	PR libgomp/90641
      	* work.c (gomp_init_work_share): Instead of aligning final ordered
      	value to multiples of long long alignment, align to that the
      	first part (ordered team ids) and if inline_ordered_team_ids
      	is not on a long long alignment boundary within the structure,
      	use __alignof__ (long long) - 1 pad size always.
      	* loop.c (GOMP_loop_start): Fix *mem computation if
      	inline_ordered_team_ids is not aligned on long long alignment boundary
      	within the structure.
      	* loop-ull.c (GOMP_loop_ull_start): Likewise.
      	* sections.c (GOMP_sections2_start): Likewise.
      
      From-SVN: r271671
      Jakub Jelinek committed
    • darwin, x86, testsuite - Match codegen · 9467fbc0
      For this test, we can match the codegen expected in the scan-asms
      by avoiding the extra indirection that's mandated by the ABI for
      common access and by using -mdynamic-no-pic for the 32b case.
      
      gcc/testsuite/
      
      2019-05-27  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* gcc.target/i386/pr22076.c: Adjust options to
      	match codegen expected by the scan-asms.
      
      From-SVN: r271670
      Iain Sandoe committed
    • Makefile.am (check-go-tool): Only chmod check-go-dir if it exists. · 5c7247b7
      	* Makefile.am (check-go-tool): Only chmod check-go-dir if it
      	exists.
      	* Makefile.in: Regenerate.
      
      From-SVN: r271669
      Ian Lance Taylor committed
    • rs6000: Fix sanitizer build (PR90639) · 7f63a854
      The assembler code needs to say it uses AltiVec instructions.
      
      
      libsanitizer/
      	PR target/90639
      	* tsan/tsan_rtl_ppc64.S: Add ".machine altivec".
      
      From-SVN: r271668
      Segher Boessenkool committed
    • i386.c (ix86_gen_add3): Remove indirect function. · d9330fb5
      	* config/i386/i386.c (ix86_gen_add3): Remove indirect function.
      	(*ix86_gen_sub3): Ditto.
      	(*ix86_gen_sub3_carry): Ditto.
      	(*ix86_gen_one_cmpl2): Ditto.
      	(*ix86_gen_andsp): Ditto.
      	(ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
      	(gen_and2_insn): New static function.
      	(ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
      	Use gen_add3_insn instead of ix86_gen_add3.
      	(ix86_expand_split_stack_prologue): Use gen_add2_insn
      	instead of ix86_gen_add3.
      	(legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
      	Use gen_sub3_insn instead of ix86_gen_sub3.
      	* config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
      	instead of ix86_gen_add3.
      	(ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
      	ix86_gen_add3.  Use gen_sub3_insn instead of ix86_gen_sub3.
      	(construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
      	* config/i386/i386-options.c (ix86_option_override_internal):
      	Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
      	ix86_gen_one_cmpl2 and ix86_gen_andsp.
      
      From-SVN: r271667
      Uros Bizjak committed
    • dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index and… · 7e8ae6c8
      dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index and DW_OP_GNU_const_index opcodes.
      
      	* dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
      	and DW_OP_GNU_const_index opcodes.
      
      From-SVN: r271664
      Eric Botcazou committed
    • i386.h (STACK_SIZE_MODE): Define. · d16b9d1c
      	* config/i386/i386.h (STACK_SIZE_MODE): Define.
      
      From-SVN: r271663
      Uros Bizjak committed