1. 14 Dec, 2018 24 commits
    • re PR c++/82294 (Array of objects with constexpr constructors initialized from… · 0fca07e3
      re PR c++/82294 (Array of objects with constexpr constructors initialized from space-inefficient memory image)
      
      	PR c++/82294
      	PR c++/87436
      	* expr.h (categorize_ctor_elements): Add p_unique_nz_elts argument.
      	* expr.c (categorize_ctor_elements_1): Likewise.  Compute it like
      	p_nz_elts, except don't multiply it by mult.  Adjust recursive call.
      	Fix up COMPLEX_CST handling.
      	(categorize_ctor_elements): Add p_unique_nz_elts argument, initialize
      	it and pass it through to categorize_ctor_elements_1.
      	(mostly_zeros_p, all_zeros_p): Adjust categorize_ctor_elements callers.
      	* gimplify.c (gimplify_init_constructor): Likewise.  Don't force
      	ctor into readonly data section if num_unique_nonzero_elements is
      	smaller or equal to 1/8 of num_nonzero_elements and size is >= 64
      	bytes.
      
      	* g++.dg/tree-ssa/pr82294.C: New test.
      	* g++.dg/tree-ssa/pr87436.C: New test.
      
      From-SVN: r267143
      Jakub Jelinek committed
    • re PR c++/82294 (Array of objects with constexpr constructors initialized from… · faa9232d
      re PR c++/82294 (Array of objects with constexpr constructors initialized from space-inefficient memory image)
      
      	PR c++/82294
      	PR c++/87436
      	* init.c (build_vec_init): Change num_initialized_elts type from int
      	to HOST_WIDE_INT.  Build a RANGE_EXPR if e needs to be repeated more
      	than once.
      
      From-SVN: r267142
      Jakub Jelinek committed
    • ARM] Improve robustness of -mslow-flash-data · 8d33eae8
      Current code to handle -mslow-flash-data in machine description files
      suffers from a number of issues which this patch fixes:
      
      1) The insn_and_split in vfp.md to load a generic floating-point
      constant via GPR first and move it to VFP register are guarded by
      !reload_completed which is forbidden explicitely in the GCC internals
      documentation section 17.2 point 3;
      
      2) A number of testcase in the testsuite ICEs under -mslow-flash-data
      when targeting the hardfloat ABI [1];
      
      3) Instructions performing load from literal pool are not disabled.
      
      These problems are addressed by 2 separate actions:
      
      1) Making the splitters take a clobber and changing the expanders
      accordingly to generate a mov with clobber in cases where a literal
      pool would be used. The splitter can thus be enabled after reload since
      it does not call gen_reg_rtx anymore;
      
      2) Adding new predicates and constraints to disable literal pool loads
      in existing instructions when -mslow-flash-data is in effect.
      
      The patch also rework the splitter for DFmode slightly to generate an
      intermediate DI load instead of 2 intermediate SI loads, thus relying on
      the existing DI splitters instead of redoing their job. At last, the
      patch adds some missing arm_fp_ok effective target to some of the
      slow-flash-data testcases.
      
      [1]
      c-c++-common/Wunused-var-3.c
      gcc.c-torture/compile/pr72771.c
      gcc.c-torture/compile/vector-5.c
      gcc.c-torture/compile/vector-6.c
      gcc.c-torture/execute/20030914-1.c
      gcc.c-torture/execute/20050316-1.c
      gcc.c-torture/execute/pr59643.c
      gcc.dg/builtin-tgmath-1.c
      gcc.dg/debug/pr55730.c
      gcc.dg/graphite/interchange-7.c
      gcc.dg/pr56890-2.c
      gcc.dg/pr68474.c
      gcc.dg/pr80286.c
      gcc.dg/torture/pr35227.c
      gcc.dg/torture/pr65077.c
      gcc.dg/torture/pr86363.c
      g++.dg/torture/pr81112.C
      g++.dg/torture/pr82985.C
      g++.dg/warn/Wunused-var-7.C
      and a lot more in libstdc++ in special_functions/*_comp_ellint_* and
      special_functions/*_ellint_* directories.
      
      2018-12-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/
          * config/arm/arm.md (arm_movdi): Split if -mslow-flash-data and
          source is a constant that would be loaded by literal pool.
          (movsf expander): Generate a no_literal_pool_sf_immediate insn if
          -mslow-flash-data is present, targeting hardfloat ABI and source is a
          float constant that cannot be loaded via vmov.
          (movdf expander): Likewise but generate a no_literal_pool_df_immediate
          insn.
          (arm_movsf_soft_insn): Split if -mslow-flash-data and source is a
          float constant that would be loaded by literal pool.
          (softfloat constant movsf splitter): Splitter for the above case.
          (movdf_soft_insn): Split if -mslow-flash-data and source is a float
          constant that would be loaded by literal pool.
          (softfloat constant movdf splitter): Splitter for the above case.
          * config/arm/constraints.md (Pz): Document existing constraint.
          (Ha): Define constraint.
          (Tu): Likewise.
          * config/arm/predicates.md (hard_sf_operand): New predicate.
          (hard_df_operand): Likewise.
          * config/arm/thumb2.md (thumb2_movsi_insn): Split if
          -mslow-flash-data and constant would be loaded by literal pool.
          * constant/arm/vfp.md (thumb2_movsi_vfp): Likewise and disable constant
          load in VFP register.
          (movdi_vfp): Likewise.
          (thumb2_movsf_vfp): Use hard_sf_operand as predicate for source to
          prevent match for a constant load if -mslow-flash-data and constant
          cannot be loaded via vmov.  Adapt constraint accordingly by
          using Ha instead of E for generic floating-point constant load.
          (thumb2_movdf_vfp): Likewise using hard_df_operand predicate instead.
          (no_literal_pool_df_immediate): Add a clobber to use as the
          intermediate general purpose register and also enable it after reload
          but disable it constant is a valid FP constant.  Add constraints and
          generate a DI intermediate load rather than 2 SI loads.
          (no_literal_pool_sf_immediate): Add a clobber to use as the
          intermediate general purpose register and also enable it after
          reload.
      
      2018-11-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/testsuite/
          * gcc.target/arm/thumb2-slow-flash-data-2.c: Require arm_fp_ok
          effective target.
          * gcc.target/arm/thumb2-slow-flash-data-3.c: Likewise.
          * gcc.target/arm/thumb2-slow-flash-data-4.c: Likewise.
          * gcc.target/arm/thumb2-slow-flash-data-5.c: Likewise.
      
      From-SVN: r267141
      Thomas Preud'homme committed
    • digest: Remove empty directory. · b2d02c49
      libphobos/ChangeLog:
      
      2018-12-14  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	* src/std/internal/digest: Remove empty directory.
      
      From-SVN: r267138
      Iain Buclaw committed
    • re PR target/88474 (Inline built-in hypot for -ffast-math) · 4dd9b6c6
      	PR target/88474
      	* internal-fn.def (HYPOT): New.
      	* optabs.def (hypot_optab): New.
      	* config/i386/i386.md (hypot<mode>3): New expander.
      
      From-SVN: r267137
      Uros Bizjak committed
    • * target.def (post_cfi_startproc): Fix text. · 7e1f39b6
      From-SVN: r267136
      Jeff Law committed
    • [PATCH 1/3][GCC] Add new target hook asm_post_cfi_startproc · dddb7af4
      2018-12-14  Sam Tebbs  <sam.tebbs@arm.com>
      
      	* doc/tm.texi (TARGET_ASM_POST_CFI_STARTPROC): Define.
      	* doc/tm.texi.in (TARGET_ASM_POST_CFI_STARTPROC): Define.
      	* dwarf2out.c (dwarf2out_do_cfi_startproc): Trigger the hook.
      	* hooks.c (hook_void_FILEptr_tree): Define.
      	* hooks.h (hook_void_FILEptr_tree): Define.
      	* target.def (post_cfi_startproc): Define.
      
      From-SVN: r267135
      Sam Tebbs committed
    • [offloading] Error on missing symbols · b0aba46c
      When compiling an OpenMP or OpenACC program containing a reference in the
      offloaded code to a symbol that has not been included in the offloaded code,
      the offloading compiler may ICE in lto1.
      
      Fix this by erroring out instead, mentioning the problematic symbol:
      ...
      error: variable 'var' has been referenced in offloaded code but hasn't
        been marked to be included in the offloaded code
      lto1: fatal error: errors during merging of translation units
      compilation terminated.
      ...
      
      Build x86_64 with nvptx accelerator and reg-tested libgomp.
      
      Build x86_64 and reg-tested libgomp.
      
      2018-12-14  Tom de Vries  <tdevries@suse.de>
      
      	* lto-cgraph.c (verify_node_partition): New function.
      	(input_overwrite_node, input_varpool_node): Use verify_node_partition.
      
      	* testsuite/libgomp.c-c++-common/function-not-offloaded-aux.c: New test.
      	* testsuite/libgomp.c-c++-common/function-not-offloaded.c: New test.
      	* testsuite/libgomp.c-c++-common/variable-not-offloaded.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/function-not-offloaded.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/variable-not-offloaded.c: New test.
      
      From-SVN: r267134
      Tom de Vries committed
    • x86: Don't use get_frame_size when finalizing stack frame · 4f472e63
      get_frame_size () returns used stack slots during compilation, which
      may be optimized out later.  Since ix86_find_max_used_stack_alignment
      is called by ix86_finalize_stack_frame_flags to check if stack frame
      is required, there is no need to call get_frame_size () which may give
      inaccurate final stack frame size.
      
      Tested on AVX512 machine configured with
      
      --with-arch=native --with-cpu=native
      
      gcc/
      
      	PR target/88483
      	* config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
      	use get_frame_size ().
      
      gcc/testsuite/
      
      	PR target/88483
      	* gcc.target/i386/stackalign/pr88483.c: New test.
      
      From-SVN: r267133
      H.J. Lu committed
    • Fix LRA bug · f961ec70
      This patch fixes an ICE building libgfortran/random.c.
      
      The problem was an adddi3 instruction that had an eliminable frame pointer.
      GCN adddi3 includes a match_scratch, which LRA substitutes with a REG, and
      checks if it can be converted back to a scratch afterwards.  In the meantime,
      the add was converted to a move, meaning that the instruction pattern
      completely changed, thus causing a segfault when the instruction is revisited
      in restore_scratches.
      
      2018-12-14  Andrew Stubbs  <ams@codesourcery.com>
      
      	gcc/
      	* gcc/lra-int.h (lra_register_new_scratch_op): Add third parameter.
      	* gcc/lra-remat.c (update_scratch_ops): Pass icode to
      	lra_register_new_scratch_op.
      	* gcc/lra.c (struct sloc): Add icode field.
      	(lra_register_new_scratch_op): Add icode parameter.
      	Use icode to skip insns that have changed beyond recognition.
      
      From-SVN: r267132
      Andrew Stubbs committed
    • decl.c (rm_size): Take into account the padding in the case of a record type containing a template. · 65e0a92b
      	* gcc-interface/decl.c (rm_size): Take into account the padding in
      	the case of a record type containing a template.
      	* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Size>: Likewise.
      	Do not subtract the padded size for Max_Size_In_Storage_Elements.
      	<Attr_Descriptor_Size>: Tweak comment.
      
      From-SVN: r267131
      Eric Botcazou committed
    • dwarf2out.c (analyze_discr_in_predicate): Simplify. · fcdc7fd5
      	* dwarf2out.c (analyze_discr_in_predicate): Simplify.
      	(analyze_variants_discr): Deal with naked boolean discriminants.
      ada/
      	* gcc-interface/decl.c (choices_to_gnu): Directly use a naked boolean
      	discriminant if the value is the boolean true.
      
      From-SVN: r267130
      Eric Botcazou committed
    • [ARC] Fix millicode wrong blink restore. · 544a4843
      The blink is restored wrongly when using millicode and regular load
      instructions.
      
      gcc/
      xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.c (arc_restore_callee_milli) Don't clobber off
      	variable.
      
      testsuite/
      xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* gcc.target/arc/milli-1.c: New test.
      
      From-SVN: r267129
      Claudiu Zissulescu committed
    • [ARC] Fix REG_CLASS_NAMES. · d77aa5cd
      From-SVN: r267128
      Claudiu Zissulescu committed
    • [testsuite] Remove bashism from libbacktrace/allocfail.sh · a37a52e5
      Test-case libbacktrace/allocfail.sh contains bashism "set -o pipefail", which
      makes the script fail on ubuntu 18.04, which links /bin/sh to /bin/dash.
      
      Fix this by removing the "set -o pipefail".
      
      Tested by running the test-case with dash on x86_64-linux.
      
      2018-12-14  Tom de Vries  <tdevries@suse.de>
      
      	PR testsuite/88491
      	* allocfail.sh: Remove "set -o pipefail".
      
      From-SVN: r267127
      Tom de Vries committed
    • gimple-ssa-split-paths.c (is_feasible_trace): Remove duplicated code block. · b210534e
      2018-12-14  Richard Biener  <rguenther@suse.de>
      
      	* gimple-ssa-split-paths.c (is_feasible_trace): Remove
      	duplicated code block.
      
      From-SVN: r267126
      Richard Biener committed
    • [RS6000] PR88311, mlongcall indirections are optimised away · 04f4909a
      Masking CALL_LONG from the cookie was done in order to simplify and
      correct length attribute calculations for indirect calls at one point
      in my call series tidy when the indirect patterns used alternatives
      "0,n" on the cookie operand.  (Leaving the CALL_LONG in place
      calculated the wrong length for long calls without fp args.)
      
      This is no longer necessary now that the indirect sysv call patterns
      explicitly test for the fp arg bits in their length attribute
      expressions.  And without the CALL_LONG to disable insns like
      call_value_local_svsv, combine merrily replaces the indirect long call
      sequence with a direct call.  As it should.  This patch reinstates
      the CALL_LONG bit.
      
      	PR rtl-optimization/88311
      	* config/rs6000/rs6000.c (rs6000_call_sysv): Do not mask cookie.
      	(rs6000_sibcall_sysv): Likewise.
      
      From-SVN: r267123
      Alan Modra committed
    • match_asm_constraints: Use copy_rtx where needed (PR88001) · 6c4ff3c9
      The new insn here (temporarily) illegally shares RTL.  This fixes it.
      
      
      	PR rtl-optimization/88001
      	* function.c (match_asm_constraints_1): Don't invalidly share RTL.
      
      From-SVN: r267122
      Segher Boessenkool committed
    • auto-profile.c (afdo_annotate_cfg): Call update_max_bb_count even if autofdo counts are all zeros. · b30bde10
      	* auto-profile.c (afdo_annotate_cfg): Call update_max_bb_count even
      	if autofdo counts are all zeros.
      
      From-SVN: r267121
      Bin Cheng committed
    • auto-profile.c (afdo_indirect_call): Skip generating histogram value for internal call. · 7f3477fb
      	* auto-profile.c (afdo_indirect_call): Skip generating histogram
      	value for internal call.
      
      From-SVN: r267120
      Bin Cheng committed
    • auto-profile.c (AFDO_EINFO): New macro. · 47b4c53f
      	* auto-profile.c (AFDO_EINFO): New macro.
      	(class edge_info): New class.
      	(is_edge_annotated, set_edge_annotated): Delete.
      	(afdo_propagate_edge, afdo_propagate_circuit, afdo_propagate): Remove
      	parameter.  Adjust edge count computation and annotation using class
      	edge_info.
      	(afdo_calculate_branch_prob, afdo_annotate_cfg): Likewise.
      
      From-SVN: r267119
      Bin Cheng committed
    • ipa-cp.c (print_all_lattices): Skip cp clones. · 9ee46552
      	* ipa-cp.c (print_all_lattices): Skip cp clones.
      
      	* gcc.dg/lto/pr88297_0.c: New test.
      	* gcc.dg/lto/pr88297_1.c: New test.
      
      From-SVN: r267118
      Michael Ploujnikov committed
    • Daily bump. · e8e50c1b
      From-SVN: r267117
      GCC Administrator committed
    • * ipa-cp.c: Fix various comment typos. · f25ae20e
      From-SVN: r267114
      Michael Ploujnikov committed
  2. 13 Dec, 2018 16 commits
    • re PR tree-optimization/88444 (ICE: tree check: expected ssa_name, have… · 0864675c
      re PR tree-optimization/88444 (ICE: tree check: expected ssa_name, have integer_cst in live_on_edge, at tree-vrp.c:468; or ICE: tree check: expected ssa_name, have integer_cst in get_value_range, at vr-values.c:84)
      
      	PR tree-optimization/88444
      	* tree-inline.c (fold_marked_statements): Iterate up to
      	last_basic_block_for_fn rather than n_basic_blocks_for_fn.
      
      	* gcc.dg/tree-ssa/pr88444.c: New test.
      
      From-SVN: r267113
      Jakub Jelinek committed
    • re PR rtl-optimization/88470 (ICE in maybe_record_trace_start, at dwarf2cfi.c:2354) · b532a785
      	PR rtl-optimization/88470
      	* cfgcleanup.c (outgoing_edges_match): If the function is
      	shrink-wrapped and bb1 ends with a JUMP_INSN with a single fake
      	edge to EXIT, return false.
      
      	* gcc.target/i386/pr88470.c: New test.
      
      From-SVN: r267112
      Jakub Jelinek committed
    • extend.texi: Consistently use @code for const and volatile qualifiers... · 6bb42685
      gcc/ChangeLog:
      	* doc/extend.texi: Consistently use @code for const and volatile
      	qualifiers, the true and false constants, and asm statements.
      
      From-SVN: r267111
      Martin Sebor committed
    • re PR rtl-optimization/88414 (ICE in lra_assign, at lra-assigns.c:1624) · 11067dee
      2018-12-13  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/88414
      	* lra-int.h (lra_asm_error_p): New.
      	* lra-assigns.c (lra_assign): Check lra_asm_error_p for checking
      	call crossed pseudo assignment correctness.
      	(lra_split_hard_reg_for): Set up lra_asm_error_p.
      	* lra-constraints.c (curr_insn_transform): Ditto.
      	* lra.c (lra_asm_error_p): New.
      	(lra): Reset lra_asm_error_p.
      
      2018-12-13  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/88414
      	* gcc.target/i386/pr88414.c: New.
      
      From-SVN: r267109
      Vladimir Makarov committed
    • PR c++/88216 - ICE with class type in non-type template parameter. · b46e1a69
      	* mangle.c (write_expression): Handle TARGET_EXPR and
      	VIEW_CONVERT_EXPR.
      	* pt.c (convert_nontype_argument): Don't call
      	get_template_parm_object for value-dependent expressions.
      
      	* g++.dg/cpp2a/nontype-class9.C: New test.
      
      From-SVN: r267108
      Marek Polacek committed
    • Fix handling of POSIX paths containing a root-name · 2b462958
      Fix path appending and concatenating to work correctly for a leading
      root-name. Check a new macro, SLASHSLASH_IS_ROOT_NAME, instead of making
      the behaviour depend directly on __CYGWIN__.
      
      	* src/filesystem/std-path.cc (SLASHSLASH_IS_ROOT_NAME): New macro to
      	control whether interpret paths with two slashes as a root-name.
      	(path::operator/=(const path&)) [SLASHSLASH_IS_ROOT_NAME]: Add a
      	root-directory when appending to a root-name.
      	(path::_M_append(basic_string_view<value_type>))
      	[SLASHSLASH_IS_ROOT_NAME]: Likewise.
      	(path::operator/=(const path&)) [SLASHSLASH_IS_ROOT_NAME]: Likewise.
      	(path::_M_concat(basic_string_view<value_type>))
      	[SLASHSLASH_IS_ROOT_NAME]: Likewise.
      	(path::lexically_normal()) [SLASHSLASH_IS_ROOT_NAME]: Use += instead
      	of /= to add a root-directory to the result.
      	* testsuite/27_io/filesystem/path/decompose/root_directory.cc: Fix
      	expected result for Cygwin.
      
      From-SVN: r267107
      Jonathan Wakely committed
    • PR libstdc++/71044 optimize std::filesystem::path construction · 4f87bb8d
      This new implementation has a smaller footprint than the previous
      implementation, due to replacing std::vector<_Cmpt> with a custom pimpl
      type that only needs a single pointer. The _M_type enumeration is also
      combined with the pimpl type, by using a tagged pointer, reducing
      sizeof(path) further still.
      
      Construction and modification of paths is now done more efficiently, by
      splitting the input into a stack-based buffer of string_view objects
      instead of a dynamically-allocated vector containing strings. Once the
      final size is known only a single allocation is needed to reserve space
      for it.  The append and concat operations no longer require constructing
      temporary path objects, nor re-parsing the entire native pathname.
      
      This results in algorithmic improvements to path construction, and
      working with large paths is much faster.
      
      	PR libstdc++/71044
      	* include/bits/fs_path.h (path::path(path&&)): Add noexcept when
      	appropriate. Move _M_cmpts instead of reparsing the native pathname.
      	(path::operator=(const path&)): Do not define as defaulted.
      	(path::operator/=, path::append): Call _M_append.
      	(path::concat): Call _M_concat.
      	(path::path(string_type, _Type): Change type of first parameter to
      	basic_string_view<value_type>.
      	(path::_M_append(basic_string_view<value_type>)): New member function.
      	(path::_M_concat(basic_string_view<value_type>)): New member function.
      	(_S_convert(value_type*, __null_terminated)): Return string view.
      	(_S_convert(const value_type*, __null_terminated)): Return string view.
      	(_S_convert(value_type*, value_type*))
      	(_S_convert(const value_type*, const value_type*)): Add overloads for
      	pairs of pointers.
      	(_S_convert(_InputIterator, __null_terminated)): Construct string_type
      	explicitly, for cases where _S_convert returns a string view.
      	(path::_S_is_dir_sep): Replace with non-member is_dir_sep.
      	(path::_M_trim, path::_M_add_root_name, path::_M_add_root_dir)
      	(path::_M_add_filename): Remove.
      	(path::_M_type()): New member function to replace _M_type data member.
      	(path::_List): Define new struct type instead of using std::vector.
      	(path::_Cmpt::_Cmpt(string_type, _Type, size_t)): Change type of
      	first parameter to basic_string_view<value_type>.
      	(path::operator+=(const path&)): Do not define inline.
      	(path::operator+=(const string_type&)): Call _M_concat.
      	(path::operator+=(const value_type*)): Likewise.
      	(path::operator+=(value_type)): Likewise.
      	(path::operator+=(basic_string_view<value_type>)): Likewise.
      	(path::operator/=(const path&)): Do not define inline.
      	(path::_M_append(path)): Remove.
      	* python/libstdcxx/v6/printers.py (StdPathPrinter): New printer that
      	understands the new path::_List type.
      	* src/filesystem/std-path.cc (is_dir_sep): New function to replace
      	path::_S_is_dir_sep.
      	(path::_Parser): New helper class to parse strings as paths.
      	(path::_List::_Impl): Define container type for path components.
      	(path::_List): Define members.
      	(path::operator=(const path&)): Define explicitly, to provide the
      	strong exception safety guarantee.
      	(path::operator/=(const path&)): Implement manually by processing
      	each component of the argument, rather than using _M_split_cmpts
      	to parse the entire string again.
      	(path::_M_append(string_type)): Likewise.
      	(path::operator+=(const path&)): Likewise.
      	(path::_M_concat(string_type)): Likewise.
      	(path::remove_filename()): Perform trim directly instead of calling
      	_M_trim().
      	(path::_M_split_cmpts()): Rewrite in terms of _Parser class.
      	(path::_M_trim, path::_M_add_root_name, path::_M_add_root_dir)
      	(path::_M_add_filename): Remove.
      	* testsuite/27_io/filesystem/path/append/source.cc: Test appending a
      	string view that aliases the path.
      	testsuite/27_io/filesystem/path/concat/strings.cc: Test concatenating
      	a string view that aliases the path.
      
      From-SVN: r267106
      Jonathan Wakely committed
    • re PR rtl-optimization/88416 (ICE in in df_uses_record, at df-scan.c:3013) · 51beaeba
      	PR rtl-optimization/88416
      	* valtrack.c (cleanup_auto_inc_dec): Handle pre/post-inc/dec/modify
      	even if !AUTO_INC_DEC.
      
      	* gcc.target/i386/pr88416.c: New test.
      
      From-SVN: r267105
      Jakub Jelinek committed
    • rs6000.c (rs6000_function_arg): Ensure type is non-NULL. · ab0cdfdd
      * config/rs6000/rs6000.c (rs6000_function_arg): Ensure type is non-NULL.
      (rs6000_arg_partial_bytes): Same.
      
      From-SVN: r267104
      David Edelsohn committed
    • target.h (htm_available): Add support for PPC_FEATURE2_HTM_NO_SUSPEND. · d1573fe0
      libitm/
      	* config/powerpc/target.h (htm_available):  Add support for
      	PPC_FEATURE2_HTM_NO_SUSPEND.  Use __builtin_cpu_supports if available.
      
      From-SVN: r267101
      Peter Bergner committed
    • [libgomp, nvptx] Fix libgomp.c/target-5.c compilation · fe0827ee
      Libgomp test-case libgomp.c/target-5.c is failing to compile when building for
      x86_64 with nvptx accelerator due to missing:
      - getpid
      - gethostname
      - isatty (pulled in by fwrite)
      in the nvptx newlib.
      
      This patch fixes the build failure by:
      - adding a function gomp_print_string which limits the use of fwrite to a single
        location (in affinity-fmt.c), and
      - creating an nvptx version of affinity-fmt.c, which:
        - overrides the configure test results HAVE_GETPID and HAVE_GETHOSTNAME, and
        - implements fwrite using write.
      
      Build and reg-tested on x86_64 with nvptx accelerator.
      
      2018-12-13  Tom de Vries  <tdevries@suse.de>
      
      	* affinity-fmt.c (gomp_print_string): New function, factored out of ...
      	(omp_display_affinity, gomp_display_affinity_thread): ... here, and ...
      	* fortran.c (omp_display_affinity_): ... here.
      	* libgomp.h (gomp_print_string): Declare.
      	* config/nvptx/affinity-fmt.c: New file.  Include affinity-fmt.c,
      	undefining HAVE_GETPID and HAVE_GETHOSTNAME, and mapping fwrite to
      	write.
      
      From-SVN: r267100
      Tom de Vries committed
    • gdbinit.in (pp): New macro. · b3147e59
      	* gdbinit.in (pp): New macro.
      
      	(pbb): Remove.
      
      From-SVN: r267098
      Jason Merrill committed
    • re PR tree-optimization/88464 (AVX-512 vectorization of masked scatter failing… · 0e350f13
      re PR tree-optimization/88464 (AVX-512 vectorization of masked scatter failing with "not suitable for scatter store")
      
      	PR tree-optimization/88464
      	* tree-vect-stmts.c (vect_build_gather_load_calls): Handle INTEGER_TYPE
      	masktype if mask is non-NULL.
      	(vectorizable_load): Don't reject masked gather loads if masktype
      	in the decl is INTEGER_TYPE.
      
      	* gcc.target/i386/avx512f-pr88462-1.c: New test.
      	* gcc.target/i386/avx512f-pr88462-2.c: New test.
      
      From-SVN: r267097
      Jakub Jelinek committed
    • [PR c++/87531] Fix second bug · 2139fd74
      https://gcc.gnu.org/ml/gcc-patches/2018-12/msg00929.html
      
      	PR c++/87531
      	* class.c (finish_struct): Set DECL_CONTEXT of template assign op.
      	* name-lookup.c (get_class_binding_direct): Don't strip using-decl
      	of overload here.
      	* parser.c (cp_parser_postfix_expression): Cope with using decl in
      	overload set.
      	* semantics.c (finish_id_expr): Likewise.
      
      	* g++.dg/lookup/pr87531-2.C: New.
      
      From-SVN: r267096
      Nathan Sidwell committed
    • Include gdc.test prefix in test names (PR testsuite/88041) · f1d42e85
      	PR testsuite/88041
      	* lib/gdc-dg.exp (gdc-dg-test): Strip gdc.test prefix.
      	* gdc.test/gdc-test.exp (gdc-do-test): Create $subdir link.
      	Include $subdir in filename.
      	Cleanup generated source.
      	* gdc.test/compilable/ddoc9676a.d (EXTRA_SOURCES): Don't use
      	absolute path.
      	* gdc.test/compilable/depsOutput9948.d: Likewise.
      
      From-SVN: r267094
      Rainer Orth committed
    • re PR libgomp/88460 ([nvptx] FAIL: libgomp.c++/for-24.C (internal compiler error)) · a51f8c92
      	PR libgomp/88460
      	* testsuite/libgomp.c++/for-24.C (results): Include it in
      	omp declare target region.
      	(main): Use map (always, tofrom: results) instead of
      	map (tofrom: results).
      
      From-SVN: r267093
      Jakub Jelinek committed