1. 12 Oct, 2018 19 commits
    • tighten the toplevel guard on ibm-ldouble.c · 87f918e3
      2018-10-12  Olivier Hainque  <hainque@adacore.com>
      
              * config/rs6000/ibm-ldouble.c: Augment the toplevel guard with
              defined (__FLOAT128_TYPE__) || defined (__LONG_DOUBLE_128__).
      
      From-SVN: r265135
      Olivier Hainque committed
    • pdp11.md (doloop_end): New expander. · fe65151b
      	    * config/pdp11/pdp11.md (doloop_end): New expander.
      	    (doloop_end_insn): renamed from "doloop_end".
      	    (addqi3): New pattern.
      	    (subqi3): New pattern.
      	    * config/pdp11/predicates.md (incdec_operand): New predicate.
      
      From-SVN: r265132
      Paul Koning committed
    • Add pattern to remove useless float casts in comparisons. · e41ec71b
      	PR middle-end/81376
      
      	gcc/
      	* real.c (format_helper::can_represent_integral_type_p): New function
      	* real.h (format_helper::can_represent_integral_type_p): Ditto.
      	* match.pd: New pattern.
      
      	gcc/testsuite/
      	* c-c++-common/pr81376.c: New test.
      	* gcc.target/i386/387-ficom-2.c: Update test.
      	* gcc.target/i386/387-ficom-2.c: Ditto.
      
      From-SVN: r265131
      Yury Gribov committed
    • introduce --enable-large-address-aware · 67aeaded
      Add a configure knob for mingw32 and 64 toolchains to default passing
      --large-address-aware to the linker, when creating 32-bit binaries.
      -Wl,--disable-large-address-aware can still reverse its effects.
      
      for  gcc/ChangeLog
      
      	* configure.ac: Introduce --enable-large-address-aware
      	to define MINGW_DEFAULT_LARGE_ADDR_AWARE.
      	* doc/install.texi: Document it.
      	* configure, config.in: Rebuilt.
      	* config/i386/mingw32.h (LINK_SPEC_LARGE_ADDR_AWARE): Define,
      	based on MINGW_DEFAULT_LARGE_ADDR_AWARE.
      	(LINK_SPEC): Insert it.
      	* config/i386/mingw-264.h: Likewise.
      
      From-SVN: r265130
      Alexandre Oliva committed
    • define HAVE_GAS_ALIGNED_COMM · 9e41e975
      HAVE_GAS_ALIGNED_COMM is referenced in an initializer in cygming.opt,
      but it's not guaranteed to be defined by configure, so define it to
      zero in a cygming-specific header if it's not defined.
      
      for  gcc/ChangeLog
      
      	* cygming.h (HAVE_GAS_ALIGNED_COMM): Fallback-define.
      
      From-SVN: r265129
      Alexandre Oliva committed
    • [C++ PATCH] more TU parsing refactoring · 7fa072de
      https://gcc.gnu.org/ml/gcc-patches/2018-10/msg00788.html
      	* parser.h (struct cp_parser): Drop implicit_extern_c.
      	* parser.c (cp_debug_parser): Drop implicit_extern_c.
      	(cp_parser_new): Likewise.
      	(cp_parser_translation_unit): Handle implicit extern c here.  Call
      	cp_parser_toplevel_declaration.
      	(cp_parser_toplevel_declaration): New, broken out of ...
      	(cp_parser_declaration_seq_opt): ... here.  Call it.  Drop
      	implicit extern C handling.
      
      From-SVN: r265127
      Nathan Sidwell committed
    • Fix off-by-one issue with inline matmul · 47b92d22
              PR fortran/87597
              * expr.c (gfc_simplify_expr): Avoid simplifying
              the 'array' argument to lbound/ubound/lcobound/
              ucobound.
      
              PR fortran/87597
              * gfortran.dg/inline_matmul_24.f90: New.
      
      From-SVN: r265126
      Tobias Burnus committed
    • Fix error-recovery ICE in check_proc_interface · b4439561
              PR fortran/58787
              * decl.c (get_proc_name): Return with error before
              creating sym_tree.
      
              PR fortran/58787
              * gfortran.dg/goacc/pr77765.f90: Modify dg-error.
              * gfortran.dg/interface_42.f90: Ditto.
              * gfortran.dg/internal_references_1.f90: Ditto.
              * gfortran.dg/invalid_procedure_name.f90: Ditto.
              * gfortran.dg/pr65453.f90: Ditto.
              * gfortran.dg/pr77414.f90: Ditto.
              * gfortran.dg/pr78741.f90: Ditto.
              * gfortran.dg/same_name_2.f90: Ditto.
      
      From-SVN: r265125
      Tobias Burnus committed
    • re PR rtl-optimization/87600 (Fix for PRs 86939 and 87479 causes build issues for several targets) · d8d3cc09
      	PR rtl-optimization/87600
      	* ira-lives (non_conflicting_reg_copy_p): Disable for non LRA targets.
      
      From-SVN: r265113
      Peter Bergner committed
    • md.texi (doloop_end): Document that the pattern code may need to check operand mode. · a01abe9d
      	* doc/md.texi (doloop_end): Document that the pattern code may
      	need to check operand mode.
      
      From-SVN: r265102
      Paul Koning committed
    • Initial commit of Networking TS implementation · e5989e71
      	* include/Makefile.am: Add new headers.
      	* include/Makefile.in: Regenerate.
      	* include/experimental/bits/net.h: New header for common
      	implementation details of Networking TS.
      	* include/experimental/buffer: New header.
      	* include/experimental/executor: New header.
      	* include/experimental/internet: New header.
      	* include/experimental/io_context: New header.
      	* include/experimental/net: New header.
      	* include/experimental/netfwd: New header.
      	* include/experimental/socket: New header.
      	* include/experimental/timer: New header.
      	* testsuite/experimental/net/buffer/arithmetic.cc: New test.
      	* testsuite/experimental/net/buffer/const.cc: New test.
      	* testsuite/experimental/net/buffer/creation.cc: New test.
      	* testsuite/experimental/net/buffer/mutable.cc: New test.
      	* testsuite/experimental/net/buffer/size.cc: New test.
      	* testsuite/experimental/net/buffer/traits.cc: New test.
      	* testsuite/experimental/net/execution_context/use_service.cc: New
      	test.
      	* testsuite/experimental/net/headers.cc: New test.
      	* testsuite/experimental/net/internet/address/v4/comparisons.cc: New
      	test.
      	* testsuite/experimental/net/internet/address/v4/cons.cc: New test.
      	* testsuite/experimental/net/internet/address/v4/creation.cc: New
      	test.
      	* testsuite/experimental/net/internet/address/v4/members.cc: New
      	test.
      	* testsuite/experimental/net/internet/resolver/base.cc: New test.
      	* testsuite/experimental/net/internet/resolver/ops/lookup.cc: New
      	test.
      	* testsuite/experimental/net/internet/resolver/ops/reverse.cc: New
      	test.
      	* testsuite/experimental/net/timer/waitable/cons.cc: New test.
      	* testsuite/experimental/net/timer/waitable/dest.cc: New test.
      	* testsuite/experimental/net/timer/waitable/ops.cc: New test.
      
      From-SVN: r265080
      Jonathan Wakely committed
    • [AArch64] Support zero-extended move to FP register · 0cfc095c
      The popcount expansion uses SIMD instructions acting on 64-bit values.
      As a result a popcount of a 32-bit integer requires zero-extension before 
      moving the zero-extended value into an FP register.  This patch adds
      support for zero-extended int->FP moves to avoid the redundant uxtw.
      Similarly, add support for 32-bit zero-extending load->FP register
      and 32-bit zero-extending FP->FP and FP->int moves.
      Add a missing 'fp' arch attribute to the related 8/16-bit pattern and
      fix an incorrect type attribute.
      
      To complete zero-extended load support, add a new alternative to 
      load_pair_zero_extendsidi2_aarch64 to support LDP into FP registers too.
      
      int f (int a)
      {
        return __builtin_popcount (a);
      }
      
      Before:
      	uxtw	x0, w0
      	fmov	d0, x0
      	cnt	v0.8b, v0.8b
      	addv	b0, v0.8b
      	fmov	w0, s0
      	ret
      
      After:
      	fmov	s0, w0
      	cnt	v0.8b, v0.8b
      	addv	b0, v0.8b
      	fmov	w0, s0
      	ret
      
      Passes regress & bootstrap on AArch64.
      
          gcc/
      	* config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Add alternatives
      	to zero-extend between int and floating-point registers.
      	(load_pair_zero_extendsidi2_aarch64): Add alternative for zero-extended
      	ldp into floating-point registers.  Add type and arch attributes.
      	(zero_extend<SHORT:mode><GPI:mode>2_aarch64): Add arch attribute.
      	Use f_loads for type attribute.
      
          testsuite/
      	* gcc.target/aarch64/popcnt.c: Test zero-extended popcount.
      	* gcc.target/aarch64/vec_zeroextend.c: Test zero-extended vectors.
      
      From-SVN: r265079
      Wilco Dijkstra committed
    • Fix typo in previous commit. · 4dc003ff
      2018-10-12  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	PR c++/87364
      	* c-pretty-print.c (c_pretty_printer::constant): Fix typo.
      
      From-SVN: r265078
      Christophe Lyon committed
    • re PR c++/87364 (Pretty print of enumerator never prints the id, always falls… · 79371671
      re PR c++/87364 (Pretty print of enumerator never prints the id, always falls back to C-style cast output)
      
      	PR c++/87364
      	* c-pretty-print.h (pp_c_type_cast): Prototype.
      	(pp_c_integer_constant): Likewise.
      	* c-pretty-print.c (pp_c_type_cast): No longer static.
      	(pp_c_integer_constant): Likewise.
      	(pp_c_enumeration_constant): Fix loop termination when finding
      	name of constant.  No longer returns a value.  Call
      	pp_c_integer_constant.
      	(c_pretty_printer::constant): Update for changes to
      	pp_c_enumeration_constant.
      
      	PR c++/87364
      	* cxx-pretty-print.c (pp_cxx_enumeration_constant): New function.
      	(cxx_pretty_printer::constant): Use it.
      
      From-SVN: r265077
      Will Wray committed
    • extend.texi (attribute packed): Correct typos. · 0b8c3649
      
      gcc/ChangeLog:
      
      	* doc/extend.texi (attribute packed): Correct typos.
      
      From-SVN: r265076
      Martin Sebor committed
    • extend.texi (attribute flatten): Mention interaction with noinline. · 02f83058
      
      gcc/ChangeLog:
      
      	* doc/extend.texi (attribute flatten): Mention interaction with
      	noinline.
      
      From-SVN: r265075
      Martin Sebor committed
    • re PR target/87156 (ICE building libstdc++ for mips64) · 97ae2126
      	PR target/87156
      	* cgraphclones.c (cgraph_node::create_version_clone_with_body):
      	Set new_decl virtual flag to zero.
      
      From-SVN: r265074
      Jan Hubicka committed
    • PR middle-end/87593 - conflicting format_arg attributes on a declaration accepted · bf142d15
      gcc/ChangeLog:
      
      	* doc/extend.texi (attribute format_arg): Discuss using multiple
      	attributes on a single function.
      
      From-SVN: r265073
      Martin Sebor committed
    • Daily bump. · ccd20ab6
      From-SVN: r265072
      GCC Administrator committed
  2. 11 Oct, 2018 21 commits
    • PR libstdc++/77691 increase allocation size to at least alignment · 49cb790a
      It's not safe to assume that malloc(n) returns memory aligned to more
      than n, so when relying on the guaranteed alignment of malloc ensure
      that the number of bytes allocated is at least as large as the
      alignment.
      
      	PR libstdc++/77691
      	* include/experimental/memory_resource (__resource_adaptor_imp): Do
      	not allocate sizes smaller than alignment when relying on guaranteed
      	alignment.
      	* testsuite/experimental/memory_resource/new_delete_resource.cc:
      	Adjust expected number of bytes allocated for alignof(max_align_t).
      
      From-SVN: r265068
      Jonathan Wakely committed
    • fold-vec-insert-char-p8.c: New. · 47d31f1a
      [testsuite]
      
      2018-10-10  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* gcc.target/powerpc/fold-vec-insert-char-p8.c: New.
      	* gcc.target/powerpc/fold-vec-insert-char-p9.c: New.
      	* gcc.target/powerpc/fold-vec-insert-double.c: New.
      	* gcc.target/powerpc/fold-vec-insert-float-p8.c: New.
      	* gcc.target/powerpc/fold-vec-insert-float-p9.c: New.
      	* gcc.target/powerpc/fold-vec-insert-int-p8.c: New.
      	* gcc.target/powerpc/fold-vec-insert-int-p9.c: New.
      	* gcc.target/powerpc/fold-vec-insert-longlong.c: New.
      	* gcc.target/powerpc/fold-vec-insert-short-p8.c: New.
      	* gcc.target/powerpc/fold-vec-insert-short-p9.c: New.
      
      From-SVN: r265067
      Will Schmidt committed
    • fold-vec-extract-char.p7.c: New. · 3c329177
      [testsuite]
      	* gcc.target/powerpc/fold-vec-extract-char.p7.c: New.
      	* gcc.target/powerpc/fold-vec-extract-char.p8.c: New.
      	* gcc.target/powerpc/fold-vec-extract-char.p9.c: New.
      	* gcc.target/powerpc/fold-vec-extract-double.p7.c: New.
      	* gcc.target/powerpc/fold-vec-extract-double.p8.c: New.
      	* gcc.target/powerpc/fold-vec-extract-double.p9.c: New.
      	* gcc.target/powerpc/fold-vec-extract-float.p7.c: New.
      	* gcc.target/powerpc/fold-vec-extract-float.p8.c: New.
      	* gcc.target/powerpc/fold-vec-extract-float.p9.c: New.
      	* gcc.target/powerpc/fold-vec-extract-int.p7.c: New.
      	* gcc.target/powerpc/fold-vec-extract-int.p8.c: New.
      	* gcc.target/powerpc/fold-vec-extract-int.p9.c: New.
      	* gcc.target/powerpc/fold-vec-extract-longlong.p7.c: New.
      	* gcc.target/powerpc/fold-vec-extract-longlong.p8.c: New.
      	* gcc.target/powerpc/fold-vec-extract-longlong.p9.c: New.
      	* gcc.target/powerpc/fold-vec-extract-short.p7.c: New.
      	* gcc.target/powerpc/fold-vec-extract-short.p8.c: New.
      	* gcc.target/powerpc/fold-vec-extract-short.p9.c: New.
      
      From-SVN: r265066
      Will Schmidt committed
    • fold-vec-select-char.c: New. · d9519daf
      [testsuite]
      
      2018-10-11  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* gcc.target/powerpc/fold-vec-select-char.c: New.
      	* gcc.target/powerpc/fold-vec-select-double.c: New.
      	* gcc.target/powerpc/fold-vec-select-float.c: New.
      	* gcc.target/powerpc/fold-vec-select-int.c: New.
      	* gcc.target/powerpc/fold-vec-select-longlong.c: New.
      	* gcc.target/powerpc/fold-vec-select-short.c: New.
      
      From-SVN: r265065
      Will Schmidt committed
    • re PR tree-optimization/86829 (Missing sin(atan(x)) and cos(atan(x)) optimizations) · 121ef08b
      	PR tree-optimization/86829
      	* match.pd (sin (atan (x))): New simplification rules.
      	(cos (atan (x))): Likewise.
      	* real.c (build_sinatan_real): New function.
      	* real.h (build_sinatan_real): Prototype.
      
      	PR tree-optimization/86829
      	* gcc.dg/sinatan-1.c: New test.
      	* gcc.dg/sinatan-2.c: New test.
      	* gcc.dg/sinatan-3.c: New test.
      
      From-SVN: r265064
      Giuliano Belinassi committed
    • rs6000.c (map_to_integral_tree_type): New helper function. · ea010af6
      [gcc]
      
      2018-10-09  Will Schmidt <will_schmidt@vnet.ibm.com>
      
      	* config/rs6000/rs6000.c (map_to_integral_tree_type): New helper
      	function.
      	(fold_mergeeo_helper): New helper function.
      	(rs6000_gimple_fold_builtin): Add hooks for vec_mergee and vec_mergeo
      	intrinsics.  Correct some whitespace indentation issues.
      
      From-SVN: r265063
      Will Schmidt committed
    • fold-vec-mergeeo-floatdouble.c: New. · 5746195c
      [testsuite]
      
      2018-10-09  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
      	* gcc.target/powerpc/fold-vec-mergeeo-floatdouble.c: New.
      	* gcc.target/powerpc/fold-vec-mergeeo-int.c: New.
      	* gcc.target/powerpc/fold-vec-mergeeo-longlong.c: New.
      
      From-SVN: r265062
      Will Schmidt committed
    • 2018-10-11 François Dumont <fdumont@gcc.gnu.org> · 3e670ecf
      	* include/debug/forward_list
      	(forward_list<>::before_begin()): Use C++11 direct initialization.
      	(forward_list<>::begin()): Likewise.
      	(forward_list<>::end()): Likewise.
      	(forward_list<>::cbefore_begin()): Likewise.
      	(forward_list<>::cbegin()): Likewise.
      	(forward_list<>::cend()): Likewise.
      	(forward_list<>::emplace_after<>(const_iterator, _Args&&...)): Likewise.
      	(forward_list<>::insert_after(const_iterator, const _Tp&)): Likewise.
      	(forward_list<>::insert_after(const_iterator, _Tp&&)): Likewise.
      	(forward_list<>::insert_after(const_iterator, size_type, const _Tp&)):
      	Likewise.
      	(forward_list<>::insert_after(const_iterator, initializer_list<>)):
      	Likewise.
      	(forward_list<>::erase_after(const_iterator)): Likewise.
      	(forward_list<>::erase_after(const_iterator, const_iterator)): Likewise
      	and ensure consistent iterator comparison.
      
      From-SVN: r265061
      François Dumont committed
    • 2018-10-11 François Dumont <fdumont@gcc.gnu.org> · 91febb0e
      	* include/bits/forward_list.h
      	(_Fwd_list_iterator<>::operator==): Replace member function with inline
      	friend.
      	(_Fwd_list_iterator<>::operator!=): Likewise.
      	(_Fwd_list_const_iterator<>::operator==): Likewise.
      	(_Fwd_list_const_iterator<>::operator!=): Likewise.
      	(operator==(const _Fwd_list_iterator<>&,
      	const _Fwd_list_const_iterator<>&)): Remove.
      	(operator!=(const _Fwd_list_iterator<>&,
      	const _Fwd_list_const_iterator<>&)): Remove.
      	(forward_list<>::_Node): Take typedef from base type.
      	(forward_list<>::iterator): Likewise.
      	(forward_list<>::const_iterator): Likewise.
      
      From-SVN: r265060
      François Dumont committed
    • revert: re PR fortran/83522 (ICE on allocatable string reference, string(:)(:)) · 2c4f9ec1
      2018-10-11  Tobias Burnus <burnus@net-b.de>
      
              Revert:
              2018-10-09  Tobias Burnus <burnus@net-b.de>
      
              PR fortran/83522
              * resolve.c (resolve_ref): Reject nonscalar
              substring references.
      
      2018-10-11  Tobias Burnus <burnus@net-b.de>
      
              Revert:
              2018-10-09  Tobias Burnus <burnus@net-b.de>
      
              PR fortran/83522
              * gfortran.dg/actual_array_substr_1.f90: Add dg-error,
              change to dg-do compile.
              * gfortran.dg/actual_array_substr_2.f90: Ditto.
              * gfortran.dg/array_initializer_1.f90: Use array
              element not size-one section.
              * gfortran.dg/array_substring.f90: New.
      
      From-SVN: r265059
      Tobias Burnus committed
    • [AArch64] Fix PR87511 · 1b6acf23
      As mentioned in PR87511, the shift used in aarch64_mask_and_shift_for_ubfiz_p
      should be evaluated as a HOST_WIDE_INT rather than int.
      
      Passes bootstrap & regress.
      
          gcc/
      	PR target/87511
      	* config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
      	Use HOST_WIDE_INT_1U for shift.
      
          testsuite/
      	PR target/87511
      	* gcc.target/aarch64/pr87511.c: Add new test.
      
      From-SVN: r265058
      Wilco Dijkstra committed
    • C++: suggestions for misspelled private members (PR c++/84993) · 03f6d32e
      PR c++/84993 identifies a problem with our suggestions for
      misspelled member names in the C++ FE for the case where the
      member is private.
      
      For example, given:
      
      class foo
      {
      public:
        double get_ratio() const { return m_ratio; }
      
      private:
        double m_ratio;
      };
      
      void test(foo *ptr)
      {
        if (ptr->ratio >= 0.5)
          ;// etc
      }
      
      ...we currently emit this suggestion:
      
      <source>: In function 'void test(foo*)':
      <source>:12:12: error: 'class foo' has no member named 'ratio'; did you mean 'm_ratio'?
         if (ptr->ratio >= 0.5)
                  ^~~~~
                  m_ratio
      
      ...but if the user follows this suggestion, they get:
      
      <source>: In function 'void test(foo*)':
      <source>:12:12: error: 'double foo::m_ratio' is private within this context
         if (ptr->m_ratio >= 0.5)
                  ^~~~~~~
      <source>:7:10: note: declared private here
         double m_ratio;
                ^~~~~~~
      <source>:12:12: note: field 'double foo::m_ratio' can be accessed via 'double foo::get_ratio() const'
         if (ptr->m_ratio >= 0.5)
                  ^~~~~~~
                  get_ratio()
      
      It feels wrong to be emitting a fix-it hint that doesn't compile, so this
      patch adds the accessor fix-it hint logic to this case, so that we directly
      offer a valid suggestion:
      
      <source>: In function 'void test(foo*)':
      <source>:12:12: error: 'class foo' has no member named 'ratio'; did you mean
      'double foo::m_ratio'? (accessible via 'double foo::get_ratio() const')
         if (ptr->ratio >= 0.5)
                  ^~~~~
                  get_ratio()
      
      gcc/cp/ChangeLog:
      	PR c++/84993
      	* call.c (enforce_access): Move diagnostics to...
      	(complain_about_access): ...this new function.
      	* cp-tree.h (class access_failure_info): Rename split out field
      	"m_field_decl" into "m_decl" and "m_diag_decl".
      	(access_failure_info::record_access_failure): Add tree param.
      	(access_failure_info::was_inaccessible_p): New accessor.
      	(access_failure_info::get_decl): New accessor.
      	(access_failure_info::get_diag_decl): New accessor.
      	(access_failure_info::get_any_accessor): New member function.
      	(access_failure_info::add_fixit_hint): New static member function.
      	(complain_about_access): New decl.
      	* typeck.c (access_failure_info::record_access_failure): Update
      	for change to fields.
      	(access_failure_info::maybe_suggest_accessor): Split out into...
      	(access_failure_info::get_any_accessor): ...this new function...
      	(access_failure_info::add_fixit_hint): ...and this new function.
      	(finish_class_member_access_expr): Split out "has no member named"
      	error-handling into...
      	(complain_about_unrecognized_member): ...this new function, and
      	check that the guessed name is accessible along the access path.
      	Only provide a spell-correction fix-it hint if it is; otherwise,
      	attempt to issue an accessor fix-it hint.
      
      gcc/testsuite/ChangeLog:
      	PR c++/84993
      	* g++.dg/torture/accessor-fixits-9.C: New test.
      
      From-SVN: r265056
      David Malcolm committed
    • [C++ PATCH] parser simplification · c7f45560
      https://gcc.gnu.org/ml/gcc-patches/2018-10/msg00689.html
      	cp/
      	* parser.c (cp_parser_translation_unit): Return void.  Don't fail
      	at first extra }, simplify logic.
      	(c_parse_file): Call finish_translation_unit here.
      
      	testsuite/
      	* g++.dg/parse/close-brace.C: New.
      	* g++.dg/cpp0x/noexcept16.C: Avoid warning.
      	* g++.old-deja/g++.other/crash32.C: Add another error
      
      From-SVN: r265055
      Nathan Sidwell committed
    • leverage linker relaxation on ppc vxworks RTPs · 13c4e403
      2018-10-11  Doug Rupp  <rupp@adacore.com>
                  Olivier Hainque  <hainque@adacore.com>
      
              * config/rs6000/vxworks.h (VXWORKS_RELAX_LINK_SPEC): New macro.
              Pass --relax to the linker for RTPs.
              (LINK_SPEC): Append VXWORKS_RELAX_LINK_SPEC.
      
      Co-Authored-By: Olivier Hainque <hainque@adacore.com>
      
      From-SVN: r265054
      Doug Rupp committed
    • re PR c++/85070 (ICE on C++ code: in lazily_declare_fn, at cp/method.c:2409) · 1cc6eecd
      	PR c++/85070
      	* g++.dg/cpp0x/pr85070.C: Change effective target for diagnostics from
      	c++14_only to c++14.
      
      From-SVN: r265052
      Jakub Jelinek committed
    • multiline.exp: complain about mismatched dg-{begin|end}-multiline-output · cbd8652b
      Mismatched dg-{begin|end}-multiline-output directives are currently
      silently ignored, leading to difficult-to-diagnose test failures
      involving excess output.
      
      This patch makes multiline.exp complain about them.
      
      gcc/testsuite/ChangeLog:
      	* lib/multiline.exp (dg-begin-multiline-output): Issue an error if
      	there hasn't been a dg-end-multiline-output since the last
      	dg-begin-multiline-output.
      	(dg-end-multiline-output): Issue an error if there hasn't been a
      	dg-begin-multiline-output.  Reset _multiline_last_beginning_line
      	as soon possible.  Rename "line" to "last_line".
      
      From-SVN: r265046
      David Malcolm committed
    • PR libstdc++/80538 Only call sleep for non-zero values · cfef4c32
      Avoid a system call when no sleep is required. Sleep in a loop (actually
      two loops) to handle interruption by signals.
      
      	PR libstdc++/80538
      	* src/c++11/thread.cc (this_thread::__sleep_for)
      	[_GLIBCXX_HAVE_SLEEP]: Only call sleep for non-zero values.
      	Loop while sleep call is interrupted and until steady_clock
      	shows requested duration has elapsed.
      	(!_GLIBCXX_HAVE_USLEEP]: Use the _GLIBCXX_HAVE_SLEEP code path, but
      	avoiding the usleep call.
      	* testsuite/30_threads/this_thread/60421.cc: Test repeated
      	signal interruptions.
      
      From-SVN: r265044
      Jonathan Wakely committed
    • Elide repeated RTL elements. · 2045ae1d
      GCN's 64-lane vectors tend to make RTL dumps very long.  This patch makes them
      far more bearable by eliding long sequences of the same element into "repeated"
      messages.
      
      This also takes care of reading repeated sequences in the RTL front-end.
      
      There are self tests for both reading and writing.
      
      2018-10-11  Andrew Stubbs  <ams@codesourcery.com>
      	    Jan Hubicka  <jh@suse.cz>
      	    Martin Jambor  <mjambor@suse.cz>
      
      	gcc/
      	* print-rtl.c (print_rtx_operand_codes_E_and_V): Print how many times
      	the same elements are repeated rather than printing all of them.
      	* read-rtl.c (rtx_reader::read_rtx_operand): Recognize and expand
      	"repeated" elements.
      	* read-rtl-function.c (test_loading_repeat): New function.
      	(read_rtl_function_c_tests): Call test_loading_repeat.
      	* rtl-tests.c (test_dumping_repeat): New function.
      	(rtl_tests_c_tests): Call test_dumping_repeat.
      
      	gcc/testsuite/
      	* selftests/repeat.rtl: New file.
      
      Co-Authored-By: Jan Hubicka <jh@suse.cz>
      Co-Authored-By: Martin Jambor <mjambor@suse.cz>
      
      From-SVN: r265042
      Andrew Stubbs committed
    • re PR c++/87582 (Returning a reference to a data member via structured bindings dangles) · f9f3b77c
      	PR c++/87582
      	* typeck.c (maybe_warn_about_returning_address_of_local): If
      	whats_returned is a structured binding identifier and the structured
      	binding is a reference, recurse on its initializer.
      
      	* g++.dg/cpp1z/decomp48.C: New test.
      
      From-SVN: r265041
      Jakub Jelinek committed
    • libcpp: show macro definition when used with wrong argument count · 954ad112
      Consider:
      
      demo.c: In function 'test':
      demo.c:5:40: error: macro "LOG_2" requires 3 arguments, but only 2 given
      5 |   LOG_2 ("loading file: %s\n", filename);
        |                                        ^
      
      This patch adds a note showing the definition of the macro in
      question, giving:
      
      demo.c: In function 'test':
      demo.c:5:40: error: macro "LOG_2" requires 3 arguments, but only 2 given
      5 |   LOG_2 ("loading file: %s\n", filename);
        |                                        ^
      In file included from demo.c:1:
      logging.h:1: note: macro "LOG_2" defined here
      1 | #define LOG_2(FMT, ARG0, ARG1) do { fprintf (stderr, (FMT), (ARG0), (ARG1)); }
        | 
      
      gcc/testsuite/ChangeLog:
      	* g++.dg/diagnostic/macro-arg-count.C: Move to...
      	* c-c++-common/cpp/macro-arg-count-1.c: ...here, generalizing
      	output for C vs C++.  Expect notes showing the definitions of the
      	macros.
      	* c-c++-common/cpp/macro-arg-count-2.c: New test, adapted from the
      	above.
      
      libcpp/ChangeLog:
      	* macro.c (_cpp_arguments_ok): If the argument count is wrong, add
      	a note showing the definition of the macro.
      
      From-SVN: r265040
      David Malcolm committed
    • x86-tune-costs.h (bdver?_memcpy, [...]): Unify to ... · c727b835
      2018-10-11  Richard Biener  <rguenther@suse.de>
      
      	* config/i386/x86-tune-costs.h (bdver?_memcpy, bdver?_memset,
      	bdver?_cost): Unify to ...
      	(bdver_memcpy, bdver_memset, bdver_cost): ... this.
      	* config/i386/i386.c (processor_cost_table): Adjust.
      
      From-SVN: r265038
      Richard Biener committed