1. 17 Jan, 2019 17 commits
    • re PR target/88794 (fixupimm intrinsics are unusable) · f4f9a9dc
      2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
      
              PR target/88794
              Revert:
              2018-11-12  Wei Xiao  <wei3.xiao@intel.com>
      
              * config/i386/sse.md: Combine VFIXUPIMM* patterns
              (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
              (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
              (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
              (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
              (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
              (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
      
      From-SVN: r268012
      Wei Xiao committed
    • re PR target/88794 (fixupimm intrinsics are unusable) · 8a8d6691
      gcc/ChangeLog:
      2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
      
              PR target/88794
              Revert:
              2018-12-15  Jakub Jelinek  <jakub@redhat.com>
      
              PR target/88489
              * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
              (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
              instead of UNSPEC_FIXUPIMM.
      
      gcc/testsuite/ChangeLog:
      2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
      
              PR target/88794
              Revert:
              2018-12-15  Jakub Jelinek  <jakub@redhat.com>
      
              PR target/88489
              * gcc.target/i386/avx512vl-vfixupimmsd-2.c: New test.
              * gcc.target/i386/avx512vl-vfixupimmss-2.c: New test.
      
      From-SVN: r268011
      Wei Xiao committed
    • re PR lto/86736 (g++.dg/asan/pr81021.C -O2 -flto -flto-partition=none ICE at dwarf2out.c:31111) · 63ece937
      2019-01-17  Richard Biener  <rguenther@suse.de>
      
      	PR lto/86736
      	* dwarf2out.c (want_pubnames): Never generate pubnames sections
      	and friends for the LTO part of debug info.
      
      From-SVN: r268010
      Richard Biener committed
    • re PR tree-optimization/86214 (Strongly increased stack usage) · cac1bd08
      	PR tree-optimization/86214
      	* cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
      	if x == y.
      
      From-SVN: r268009
      Jakub Jelinek committed
    • re PR rtl-optimization/88870 (ICE: Segmentation fault (in df_worklist_propagate_backward)) · 9556b012
      	PR rtl-optimization/88870
      	* dce.c (deletable_insn_p): Never delete const/pure calls that can
      	throw if we can't alter the cfg or delete dead exceptions.
      	(mark_insn): Don't call find_call_stack_args for such calls.
      
      	* gcc.dg/pr88870.c: New test.
      
      From-SVN: r268008
      Jakub Jelinek committed
    • [rs6000] Support more prototypes for vec_ld and vec_st. · 404fa41f
      2019-01-17  Kewen Lin  <linkw@gcc.gnu.org>
      
      gcc/ChangeLog
          * doc/extend.texi: Add four new prototypes for vec_ld and seven new
          prototypes for vec_st.
          * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
          for scalar address type variants of altivec_vec_ld/altivec_vec_st,
          mainly on signed/unsigned long long and double.
      
      gcc/testsuite/ChangeLog
          * gcc.target/powerpc/altivec_vld_vst_addr.c: New test.
      
      From-SVN: r268007
      Kewen Lin committed
    • [PR87768] reset location wrapper suppression when reentering top level · b00e9be0
      Concepts-checking and other kinds of early tsubsting may often take
      place while location wrappers are suppressed, e.g. because we've
      triggered template instantiation within template parameter lists.
      
      With that, exprs that are usually wrapped by VIEW_CONVERT_EXPRs
      location wrappers may end up wrapped by NON_LVALUE_EXPRs that are not
      marked as location wrappers.  If such NON_LVALUE_EXPRs tsubsted exprs
      undergo another round of tsubsting, say for constraint checking, or
      even for another round of specialization, they will be rejected by
      tsubst_copy_and_build.
      
      This patch arranges for suppress_location_wrappers to be saved and
      reset when pushing to the top level, and restored when popping from
      it.
      
      
      for  gcc/cp/ChangeLog
      
      	PR c++/87768
      	* cp-tree.h (saved_scope): Add suppress_location_wrappers.
      	* name-lookup.c (do_push_to_top_level): Save and reset it.
      	(do_pop_from_top_level): Restore it.
      
      for  gcc/testsuite/ChangeLog
      
      	PR c++/87768
      	* g++.dg/concepts/pr87768.C: New.
      
      From-SVN: r268006
      Alexandre Oliva committed
    • [PR86648] use auto identifier for class placeholder templates · 33f746e5
      dwarf2out recognizes unspecified auto types by the identifier.  C++
      template class placeholders are unspecified auto types that take the
      identifier of the class rather than those used by preexisting auto
      types, so dwarf2out ICEs when it finds one of those.  Alas, they may
      be visible to dwarf2out, since the types of e.g. static data members
      of templates are only deduced at member instantiation, i.e., if the
      data member is actually referenced, but the data member is added as a
      field, still with unspecified auto placeholder type, when the
      enclosing class is instantiated.
      
      I've changed placeholder creator to use an auto identifier instead,
      which allowed dropping the placeholder test in C++'s is_auto (alas, it
      can't be used in dwarf2out, think LTO).  To avoid losing information
      in error messages and dumps and whatnot, I've added code to recognize
      placeholders for template classes say A and print them out as
      A<...auto...>.
      
      for  gcc/cp/ChangeLog
      
      	PR c++/86648
              * pt.c (make_template_placeholder): Use auto_identifier.
              (is_auto): Drop CLASS_PLACEHOLDER_TEMPLATE test.
              * error.c (dump_type): Handle template placeholders.
              * cxx-pretty-print.c (pp_cx_unqualified_id): Likewise.
      
      for  gcc/testsuite/ChangeLog
      
      	PR c++/86648
              * gcc.dg/cpp1z/pr86648.C: New.
      
      From-SVN: r268005
      Alexandre Oliva committed
    • [PR88146] avoid diagnostics diffs if cdtor_returns_this · b25a3756
      Diagnostics for testsuite/g++.dg/cpp0x/inh-ctor32.C varied across
      platforms.  Specifically, on ARM, the diagnostics within the subtest
      derived_ctor::inherited_derived_ctor::constexpr_noninherited_ctor did
      not match those displayed on other platforms, and the test failed.
      
      The difference seemed to have to do with locations assigned to ctors,
      but it was more subtle: on ARM, the instantiation of bor's template
      ctor was nested within the instantiation of bar's template ctor
      inherited from bor.  The reason turned out to be related with the
      internal return type of ctors: arm_cxx_cdtor_returns_this is enabled
      for because of AAPCS, while cxx.cdtor_returns_this is disabled on most
      other platforms.  While convert_to_void returns early with a VOID
      expr, the non-VOID return type of the base ctor CALL_EXPR causes
      convert_to_void to inspect the called decl for nodiscard attributes:
      maybe_warn_nodiscard -> cp_get_fndecl_from_callee ->
      maybe_constant_init -> cxx_eval_outermost_constant_expr ->
      instantiate_constexpr_fns -> nested instantiation.
      
      The internal return type assigned to a cdtor should not affect
      instantiation (constexpr or template) decisions, IMHO.  We know it
      affects diagnostics, but I have a hunch this might bring deeper issues
      with it, so I've arranged for the CALL_EXPR handler in convert_to_void
      to disregard cdtors, regardless of the ABI.
      
      
      for  gcc/cp/ChangeLog
      
      	PR c++/88146
      	* cvt.c (convert_to_void): Handle all cdtor calls as if
      	returning void.
      
      From-SVN: r268004
      Alexandre Oliva committed
    • [PATCH, rs6000, testsuite] Fix PR87306 · b0dd8f37
          PR target/87306
          * gcc.dg/vect/bb-slp-pow-1.c: Modify to reflect that
          the loop is not vectorized on POWER unless hardware 
          misaligned loads are available.
      
      From-SVN: r268003
      Kewen Lin committed
    • runtime: dropg before CAS g status to _Grunnable/_Gwaiting · f41bf587
          
          Currently, we dropg (which clears gp.m) after we CAS the g status
          to _Grunnable or _Gwaiting. Immediately after CASing the g status,
          another thread may CAS it to _Gscan status and scan its stack.
          With precise stack scan, it accesses gp.m in order to switch to g
          and back (in doscanstackswitch). This races with dropg. If
          doscanstackswitch reads gp.m, then dropg runs, when we restore
          the m at the end of the scan it will set to a stale value. Worse,
          if dropg runs after doscanstackswitch sets the new m, gp will be
          running with a nil m.
          
          To fix this, we do dropg before CAS g status to _Grunnable or
          _Gwaiting. We can do this safely if we are CASing from _Grunning,
          as we own the g when it is in _Grunning. There is one case where
          we CAS from _Gsyscall to _Grunnable. It is not safe to dropg when
          it is in _Gsyscall, as precise stack scan needs to read gp.m in
          order to signal the m. So we need to introduce a transient state,
          _Gexitingsyscall, between _Gsyscall and _Grunnable, where the GC
          should not scan its stack.
          
          In is a little unfortunate that we have to add another g status.
          We could reuse an existing one (e.g. _Gcopystack), but it is
          clearer and safer to just use a new one, as Austin suggested.
          
          Reviewed-on: https://go-review.googlesource.com/c/158157
      
      From-SVN: r268001
      Ian Lance Taylor committed
    • Daily bump. · 63dfd55e
      From-SVN: r267999
      GCC Administrator committed
    • [libbacktrace] Handle DW_FORM_GNU_strp_alt · f2f00d3a
      Handle DW_FORM_GNU_strp_alt which references the .debug_str section in the
      .gnu_debugaltlink file.
      
      2019-01-17  Tom de Vries  <tdevries@suse.de>
      
      	PR libbacktrace/82857
      	* dwarf.c (read_attribute): Handle DW_FORM_GNU_strp_alt
      	using altlink.
      
      From-SVN: r267996
      Tom de Vries committed
    • [libbacktrace] Handle alt FORMS without .gnu_debugaltlink · 944f59ff
      Handle DW_FORM_GNU_strp_alt and DW_FORM_GNU_ref_alt references robustly in
      presence of missing .gnu_debugaltlink file.
      
      2019-01-17  Tom de Vries  <tdevries@suse.de>
      
      	* dwarf.c (enum attr_val_encoding): Add ATTR_VAL_NONE.
      	(read_attribute): Add altlink parameter.  Handle missing altlink for
      	DW_FORM_GNU_strp_alt and DW_FORM_GNU_ref_alt.
      	(find_address_ranges, build_address_map, build_dwarf_data): Add and
      	handle altlink parameter.
      	(read_referenced_name, read_function_entry): Add argument to
      	read_attribute call.
      
      From-SVN: r267995
      Tom de Vries committed
    • [libbacktrace] Add altlink field to struct dwarf_data · 9ad458d5
      Add an altlink field to struct dwarf_data, and initialize it with the pointer
      to the struct dwarf_data for the .gnu_debugaltlink.
      
      2019-01-17  Tom de Vries  <tdevries@suse.de>
      
      	* dwarf.c (struct dwarf_data): Add altlink field.
      	(backtrace_dwarf_add): Add and handle fileline_altlink parameter.
      	* elf.c	(elf_add): Add argument to backtrace_dwarf_add call.
      	(phdr_callback, backtrace_initialize): Add argument to elf_add calls.
      	* internal.h (backtrace_dwarf_add): Add fileline_altlink parameter.
      	* pecoff.c (coff_add): Add argument to backtrace_dwarf_add call.
      	* xcoff.c (xcoff_add): Same.
      
      From-SVN: r267994
      Tom de Vries committed
    • [libbacktrace] Return struct dwarf_data pointer from elf_add · e6f00c83
      Allow the caller of elf_add access to the struct dwarf_data pointer
      corresponding to the added elf.
      
      2019-01-17  Tom de Vries  <tdevries@suse.de>
      
      	* internal.h (backtrace_dwarf_add): Add fileline_entry parameter.
      	* dwarf.c (backtrace_dwarf_add): Add and handle fileline_entry parameter.
      	* elf.c	(elf_add): Add and handle fileline_entry parameter.  Add
      	argument to backtrace_dwarf_add call.
      	(phdr_callback, backtrace_initialize): Add argument to elf_add calls.
      	* pecoff.c (coff_add): Add argument to backtrace_dwarf_add call.
      	* xcoff.c (xcoff_add): Same.
      
      From-SVN: r267993
      Tom de Vries committed
    • [libbacktrace] Read .gnu_debugaltlink · a34c2a3d
      Read the elf file pointed at by the .gnu_debugaltlink section, and verify that
      the build id matches.
      
      2019-01-17  Tom de Vries  <tdevries@suse.de>
      
      	* elf.c (elf_add): Add and handle with_buildid_data and
      	with_buildid_size parameters.  Handle .gnu_debugaltlink section.
      	(phdr_callback, backtrace_initialize): Add arguments to elf_add calls.
      
      From-SVN: r267992
      Tom de Vries committed
  2. 16 Jan, 2019 20 commits
    • Fix failing filesystem tests on mingw targets · edfe833a
      	* config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Add exports for fstream
      	constructors and open members taking wide strings. Fix patterns for
      	filesystem::path members to match wstring_view parameters. Add
      	exports for shared_ptr members used by directory iterators.
      	* src/c++17/fs_ops.cc (remove(const path&, error_code&)): Clear the
      	error code parameter if the file doesn't exist.
      	* src/filesystem/ops.cc (remove(const path&, error_code&)):
      	Likewise.
      	* testsuite/27_io/filesystem/operations/canonical.cc: Fix expected
      	values for mingw targets, where "/" is not an absolute path. Do not
      	test symlinks on mingw targets.
      	* testsuite/experimental/filesystem/operations/canonical.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/copy.cc: Do not test symlinks
      	on mingw targets.
      	* testsuite/experimental/filesystem/operations/copy.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/create_directories.cc: Check
      	that each component of the path is created.
      	* testsuite/experimental/filesystem/operations/create_directories.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/operations/exists.cc: Do not test
      	permissions on mingw targets.
      	* testsuite/experimental/filesystem/operations/exists.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
      	* testsuite/experimental/filesystem/operations/is_empty.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/permissions.cc: XFAIL for
      	mingw targets.
      	* testsuite/experimental/filesystem/operations/permissions.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/operations/remove.cc: Do not test
      	symlinks or permissions on mingw targets.
      	* testsuite/experimental/filesystem/operations/remove.cc: Likewise.
      	* testsuite/27_io/filesystem/operations/remove_all.cc: Do not test
      	symlinks on mingw targets.
      	* testsuite/experimental/filesystem/operations/remove_all.cc:
      	Likewise.
      	* testsuite/27_io/filesystem/operations/status.cc: Do not test
      	permissions on mingw targets.
      	* testsuite/27_io/filesystem/operations/weakly_canonical.cc: Do not
      	test symlinks on mingw targets.
      	* testsuite/experimental/filesystem/operations/space.cc: Fix test
      	for mingw targets.
      
      From-SVN: r267991
      Jonathan Wakely committed
    • syscall: mark C syscall functions noescape · a6804ea9
          
          Many C syscall functions take pointer arguments. The pointers
          don't escape in the C functions. Mark the C functions noescape so
          calling them doesn't need allocation.
          
          Reviewed-on: https://go-review.googlesource.com/c/158158
      
      From-SVN: r267989
      Ian Lance Taylor committed
    • [libbacktrace] Factor out read_referenced_name_from_attr · 07e1534f
      Factor out the common handling of DW_AT_abstract_origin and
      DW_AT_specification from read_function_entry and read_referenced_name.
      
      2019-01-16  Tom de Vries  <tdevries@suse.de>
      
      	* dwarf.c (read_referenced_name_from_attr): New function.  Factor out
      	of ...
       	(read_referenced_name): ... here, and ...
      	(read_function_entry): ... here.
      
      From-SVN: r267986
      Tom de Vries committed
    • [D] Fix failing EH execution test on i386. · e42589bd
      Turn off partitioning unless it was explicitly requested, as it doesn't
      work with D exception chaining, where personality routines use LSDA to
      determine whether two thrown exceptions are in the same context.
      
      The following distills what was failing in the D testsuite.
      ```
      try {
        try {
          fn();  // throws "1"
        }
        finally {
          throw new Exception("2");
        }
      }
      catch (Exception e) {
        assert(e.msg == "1");
        assert(e.next.msg == "2");
      }
      ```
      
      gcc/d/ChangeLog:
      
      	PR d/87824
      	* d-lang.cc (d_post_options): Disable implicit
      	-forder-blocks-and-partition.
      
      From-SVN: r267985
      Iain Buclaw committed
    • Fix ICE due to "combine" creating unreachable EH blocks (PR target/88861) · 15b93db9
      PR target/88861 reports an ICE in "ce2" due to an unreachable
      basic block.
      
      The block becomes unreachable in "combine" when delete_noop_moves
      deletes an insn with a REG_EH_REGION, deleting the EH edge, the
      only edge leading to the basic block.
      
      Normally, rest_of_handle_combine would call cleanup_cfg, deleting
      unreachable blocks, if combine_instructions returns true, and
      combine_instructions does return true for some cases of edge-removal,
      but it doesn't for this case, leading to the ICE.
      
      This patch updates delete_noop_moves so that it returns true if
      it deletes any edges, and passes that through to combine_instructions,
      so that it too will return true if any edges were deleted, ensuring that
      cleanup_cfg will be called by rest_of_handle_combine for this case,
      deleting the now-unreachable block, and fixing the ICE.
      
      gcc/ChangeLog:
      	PR target/88861
      	* combine.c (delete_noop_moves): Convert to "bool" return,
      	returning true if any edges are eliminated.
      	(combine_instructions): Also return true if delete_noop_moves
      	returns true.
      
      gcc/testsuite/ChangeLog:
      	PR target/88861
      	* g++.dg/torture/pr88861.C: New test.
      
      From-SVN: r267984
      David Malcolm committed
    • aarch64-builtins.c (aarch64_simd_expand_args): Use correct max nunits for endian swap. · 33b5a38c
      2019-01-16  Tamar Christina  <tamar.christina@arm.com>
      
      	* config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
      	correct max nunits for endian swap.
      	(aarch64_expand_fcmla_builtin): Correct subreg code.
      	* config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
      	aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
      	lane endianness.
      
      From-SVN: r267983
      Tamar Christina committed
    • Fix PR88046 on AArch64 and Arm bare metal targets. · 4e7cbff5
      gcc/testsuite/ChangeLog:
      
      	PR debug/88046
      	* g++.dg/lto/pr88046_0.C: Check for shared and fPIC.
      
      From-SVN: r267980
      Tamar Christina committed
    • decl.c (grokdeclarator): Use locations[ds_storage_class] in error messages about… · 59ec4914
      decl.c (grokdeclarator): Use locations[ds_storage_class] in error messages about ill-formed uses of mutable.
      
      /cp
      2019-01-16  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* decl.c (grokdeclarator): Use locations[ds_storage_class] in
      	error messages about ill-formed uses of mutable.
      
      /testsuite
      2019-01-16  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/other/pr33558.C: Test location too.
      	* g++.dg/other/pr33558-2.C: Likewise.
      	* g++.dg/parse/crash4.C: Likewise.
      	* g++.old-deja/g++.brendan/err-msg11.C: Likewise.
      	* g++.old-deja/g++.mike/p7635.C: Likewise.
      	* g++.old-deja/g++.other/decl6.C: Likewise.
      
      From-SVN: r267978
      Paolo Carlini committed
    • PR c++/78244 - narrowing conversion in template not detected. · 2ea2a74d
      	* call.c (perform_implicit_conversion_flags): Set
      	IMPLICIT_CONV_EXPR_BRACED_INIT.
      	* cp-tree.h (IMPLICIT_CONV_EXPR_BRACED_INIT): New.
      	* pt.c (tsubst_copy_and_build): Use it.
      
      	* g++.dg/cpp0x/Wnarrowing13.C: New test.
      	* g++.dg/cpp0x/Wnarrowing14.C: New test.
      
      From-SVN: r267976
      Marek Polacek committed
    • alpha.c (alpha_gimplify_va_arg): Handle split indirect COMPLEX_TYPE arguments. · 647c5e3e
      	* config/alpha/alpha.c (alpha_gimplify_va_arg):
      	Handle split indirect COMPLEX_TYPE arguments.
      
      From-SVN: r267973
      Uros Bizjak committed
    • __builtin_<add/sub>_overflow issues on AArch64 (redux) (cont) · 638b5fca
      And the ChangeLog for PR target/86891 fix.
      
      From-SVN: r267972
      Richard Earnshaw committed
    • __builtin_<add/sub>_overflow issues on AArch64 (redux) · f7343f20
      Further investigation showed that my previous patch for this issue was
      still incomplete.
      
      The problem stemmed from what I suspect was a mis-understanding of the
      way overflow is calculated on aarch64 when values are subtracted (and
      hence in comparisons).  In this case, unlike addition, the carry flag
      is /cleared/ if there is overflow (technically, underflow) and set
      when that does not happen.  This patch clears up this issue by using
      CCmode for all subtractive operations (this can fully describe the
      normal overflow conditions without anything particularly fancy);
      clears up the way we express normal unsigned overflow using CC_Cmode
      (the result of a sum is less than one of the operands) and adds a new
      mode, CC_ADCmode to handle expressing overflow of an add-with-carry
      operation, where the standard idiom is no-longer sufficient to
      describe the overflow condition.
      
      	PR target/86891
      	* config/aarch64/aarch64-modes.def: Add comment about how the carry
      	bit is set by add and compare.
      	(CC_ADC): New CC_MODE.
      	* config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
      	to cache the code and mode of X.  Adjust the shape of a CC_Cmode
      	comparison.  Add detection for CC_ADCmode.
      	(aarch64_get_condition_code_1): Update code support for CC_Cmode.  Add
      	CC_ADCmode.
      	* config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
      	(uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
      	(add<mode>3_compareC_cconly_imm): Delete.  Merge into...
      	(add<mode>3_compareC_cconly): ... this.  Restructure the comparison
      	to eliminate the need for zero-extending the operands.
      	(add<mode>3_compareC_imm): Delete.  Merge into ...
      	(add<mode>3_compareC): ... this.  Restructure the comparison to
      	eliminate the need for zero-extending the operands.
      	(add<mode>3_carryin): Use LTU for the overflow detection.
      	(add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
      	Reexpress comparison for overflow.
      	(add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
      	(add<mode>3_carryinC): Likewise.
      	(add<mode>3_carryinV): Use LTU for carry between partials.
      	* config/aarch64/predicates.md (aarch64_carry_operation): Update
      	handling of CC_Cmode and add CC_ADCmode.
      	(aarch64_borrow_operation): Likewise.
      
      From-SVN: r267971
      Richard Earnshaw committed
    • re PR c/51628 (__attribute__((packed)) is unsafe in some cases (i.e. add… · e964d9b2
      re PR c/51628 (__attribute__((packed)) is unsafe in some cases (i.e. add -Waddress-of-packed-member, etc.))
      
      	PR c/51628
      	PR target/88682
      	* c-c++-common/pr51628-10.c (unaligned_int128_t): Add
      	may_alias attribute.
      
      From-SVN: r267970
      Jakub Jelinek committed
    • Fix Arm big-endian regressions. · ee8045e5
      gcc/ChangeLog:
      
      	* config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
      	* config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
      	* config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
      	neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
      
      From-SVN: r267969
      Tamar Christina committed
    • Extend locations where to seach for Fortran pre-include. · 99b1b1fa
      2019-01-16  Martin Liska  <mliska@suse.cz>
      
      	* Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
      	for GCC driver.
      	* config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
      	a new argument.
      	* gcc.c (add_sysrooted_hdrs_prefix): New function.
      	(path_prefix_reset): Move up in the source file.
      	(find_fortran_preinclude_file): Make complex search for the
      	fortran header files.
      
      From-SVN: r267967
      Martin Liska committed
    • Add self to maintainers list. · 0684a816
      2019-01-16  Kewen Lin  <linkw@gcc.gnu.org>
      
          * MAINTAINERS (Write After Approval): Add myself.
      
      From-SVN: r267965
      Kewen Lin committed
    • PR libstdc++/88738 treat shared_ptr and unique_ptr more like plain old pointers · ec0d5371
              PR libstdc++/88738
              Warn about unused comparisons of shared_ptr/unique_ptr
              * include/bits/c++config [_GLIBCXX_NODISCARD]: Define.
              * include/bits/shared_ptr.h: Use it for operator ==, !=,
              <, <=, >, >= for shared_ptr.
              * include/bits/unique_ptr.h: Likewise for unique_ptr.
      
      From-SVN: r267964
      Ulrich Drepper committed
    • [libbacktrace] Unify function name preference handling · df1de064
      Both read_function_entry and read_referenced_name implement a priority scheme
      for names.  The priorities are:
      - 1st: DW_AT_linkage_name
      - 2nd: Name from DW_AT_abstract_origin or DW_AT_specification
      - 3rd: DW_AT_name.
      
      Ensure both functions fully adhere to it.
      
      2019-01-16  Tom de Vries  <tdevries@suse.de>
      
      	* dwarf.c (read_referenced_name): Don't allow DW_AT_name to override any
      	name.
      	(read_function_entry): Same.  Don't allow name found via
      	DW_AT_abstract_origin or case DW_AT_specification to override linkage
      	name.
      
      From-SVN: r267963
      Tom de Vries committed
    • Add myself · 9a603611
      From-SVN: r267962
      Xiong Hu Luo committed
    • Daily bump. · c6cdc1eb
      From-SVN: r267961
      GCC Administrator committed
  3. 15 Jan, 2019 3 commits
    • godump.c (go_output_typedef): When outputting a typedef... · 5686a6b7
      gcc/:
              * godump.c (go_output_typedef): When outputting a typedef, refer
      	to the underlying type by its name and not its structure.
      gcc/testsuite:
              * gcc.misc-tests/godump-1.c: Add test case for typedef before
      	struct.
      
      From-SVN: r267958
      Nikhil Benesch committed
    • Fix ICE on class-template argument deduction (PR c++/88795) · 1abb44f8
      PR c++/88795 reports an ICE building a function_type for a deduction guide
      when the substitution into the function signature fails, due to an
      error_mark_node being returned from tsubst_arg_types but not being checked
      for.  This error_mark_node gets used as the TYPE_ARG_TYPES, leading to
      ICEs in various places that assume this is a TREE_LIST.
      
      This patch checks the result of tsubst_arg_types and propagates the failure
      if it returns error_mark_node.  It also adds an assertion to
      build_function_type, to fail faster if passed in error_mark_node.
      
      gcc/cp/ChangeLog:
      	PR c++/88795
      	* pt.c (build_deduction_guide): Bail out if tsubst_arg_types
      	fails.
      
      gcc/testsuite/ChangeLog:
      	PR c++/88795
      	* g++.dg/template/pr88795.C: New test.
      
      gcc/ChangeLog:
      	PR c++/88795
      	* tree.c (build_function_type): Assert that arg_types is not
      	error_mark_node.
      
      From-SVN: r267957
      David Malcolm committed
    • runtime: add padding to FFI type of struct ending with zero-sized field · b7ec44e8
          
          CL 157557 changes the compiler to add one byte padding to
          non-empty struct ending with a zero-sized field. Add the same
          padding to the FFI type, so reflect.Call works.
          
          This fixes test/fixedbugs/issue26335.go in the main repo.
          
          Reviewed-on: https://go-review.googlesource.com/c/158018
      
      From-SVN: r267956
      Ian Lance Taylor committed