1. 16 Oct, 2018 5 commits
    • Fix tests that fail when compiled without optimisation · b57d432b
      	* testsuite/20_util/duration/literals/range_neg.cc: Adjust pruned
      	diagnostic to account for quotes around 'constexpr'.
      	* testsuite/23_containers/deque/capacity/max_size.cc: Define static
      	variable.
      	* testsuite/23_containers/vector/capacity/max_size.cc: Likewise.
      
      From-SVN: r265190
      Jonathan Wakely committed
    • PR libstdc++/87618 fix typos in linker script · d30096b4
      	PR libstdc++/87618
      	* config/abi/pre/gnu.ver: Fix typos in patterns for basic_stringbuf.
      	* testsuite/27_io/basic_stringbuf/cons/char/default.cc: Disable
      	optimisation to check constructor definition can be linked to.
      	* testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: Likewise.
      
      From-SVN: r265188
      Jonathan Wakely committed
    • fixincludes: vxworks: regs.h: Fix includes in regs.h wrapper · 92a7f46b
      A quick experiment reveals that this hack is needed for C code - simply
      removing this hack entirely breaks the build of libstdc++, since
      regs.h (more accurately, the cpu-specific header it pulls in) defines
      structs in terms of types from vxTypesOld. Those definitions are
      properly guarded by #ifndef _ASMLANGUAGE, but the cpu-files do not take
      care to include vxTypesOld.h for the types they depend on.
      
      But when using regs.h from some assembly file, the assembler chokes on
      the typedefs in vxTypesOld.h. We can fix that by guarding the include of
      vxTypesOld by !_ASMLANGUAGE. This should not affect existing C code.
      
      Now, the OS' regs.h contains preprocessor conditionals such as
      
      #if     CPU_FAMILY==I960
      ...
      #endif  /* CPU_FAMILY==I960 */
      #if     CPU_FAMILY==MC680X0
      ...
      #endif  /* CPU_FAMILY==MC680X0 */
      
      Without definitions of CPU_FAMILY, I960 etc., these would all be true,
      which will not end well. Code using the fix-included regs.h
      automatically get vxCpu.h via a chain of includes from vxTypesOld.h, but
      we can make regs.h a little more self-contained for both C and asm users
      by doing an explicit include of vxCpu.h.
      
      From-SVN: r265187
      Rasmus Villemoes committed
    • Obsolete Solaris 10 support · ca3a27b6
      	contrib:
      	* config-list.mk (LIST): Switch to i686-solaris2.11,
      	sparc64-sun-solaris2.11.
      
      	gcc:
      	* config.gcc: Obsolete *-*-solaris2.10*.
      	* doc/install.texi (Specific, *-*-solaris2*): Document it.
      
      From-SVN: r265186
      Rainer Orth committed
    • Daily bump. · 7bb031ed
      From-SVN: r265183
      GCC Administrator committed
  2. 15 Oct, 2018 14 commits
    • ft32.md (ft32_general_movsrc_operand): Disable reg + sym +- const_int addressing modes. · 95debbf1
      	* config/ft32/ft32.md (ft32_general_movsrc_operand): Disable
      	reg + sym +- const_int addressing modes.
      
      From-SVN: r265179
      Jeff Law committed
    • diagnostics: add minimum width to left margin for line numbers · 0141ab44
      This patch adds a minimum width to the left margin used for printing
      line numbers.   I set the default to 6.  Hence rather than:
      
      some-filename:9:1: some message
      9 | some source text
        | ^~~~~~~~~~~~~~~~
      some-filename:10:1: another message
      10 | more source text
         | ^~~~~~~~~~~~~~~~
      
      we now print:
      
      some-filename:9:42: some message
          9 | some source text
            | ^~~~~~~~~~~~~~~~
      some-filename:10:42: another message
         10 | more source text
            | ^~~~~~~~~~~~~~~~
      
      This implicitly fixes issues with margins failing to line up due
      to different lengths of the number when we haven't read the full
      file yet and so don't know the highest possible line number, for
      line numbers up to 99999.
      
      Doing so adds some whitespace on the left-hand side, for non-huge
      files, at least.  I believe that this makes it easier to see where each
      diagnostic starts, by visually breaking things up at the leftmost
      column; my hope is to make it easier for the eye to see the different
      diagnostics as if they were different "paragraphs".
      
      gcc/ChangeLog:
      	* common.opt (fdiagnostics-minimum-margin-width=): New option.
      	* diagnostic-show-locus.c (layout::layout): Apply the minimum
      	margin width.
      	(layout::start_annotation_line): Only print up to 3 of the
      	margin character, to avoid touching the left-hand side.
      	(selftest::test_diagnostic_show_locus_fixit_lines): Update for
      	minimum margin width, as set by test_diagnostic_context's ctor.
      	(selftest::test_fixit_insert_containing_newline): Likewise.
      	(selftest::test_fixit_insert_containing_newline_2): Likewise.
      	(selftest::test_line_numbers_multiline_range): Clear
      	dc.min_margin_width.
      	* diagnostic.c (diagnostic_initialize): Initialize
      	min_margin_width.
      	* diagnostic.h (struct diagnostic_context): Add field
      	"min_margin_width".
      	* doc/invoke.texi: Add -fdiagnostics-minimum-margin-width=.
      	* opts.c (common_handle_option): Handle
      	OPT_fdiagnostics_minimum_margin_width_.
      	* selftest-diagnostic.c
      	(selftest::test_diagnostic_context::test_diagnostic_context):
      	Initialize min_margin_width to 6.
      	* toplev.c (general_init): Initialize global_dc->min_margin_width.
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/missing-header-fixit-3.c: Update expected indentation
      	to reflect minimum margin width.
      	* gcc.dg/missing-header-fixit-4.c: Likewise.
      	* gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers.c:
      	Likewise.
      	* gcc.dg/plugin/diagnostic-test-show-locus-color-line-numbers.c:
      	Likewise.
      	* gcc.dg/plugin/diagnostic-test-show-locus-bw-line-numbers-2.c:
      	New test.
      	* gcc.dg/plugin/plugin.exp (plugin_test_list): Add it.
      
      From-SVN: r265178
      David Malcolm committed
    • Remove stray reference to error_at_rich_loc · 95baaced
      "error_at_rich_loc" went away in r254280 (in favor of overloading
      "error_at"), but there was a stray reference in a comment.
      
      Remove it.
      
      gcc/ChangeLog:
      	* gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
      	Fix usage of "error_at_rich_loc" in the comment.
      
      From-SVN: r265177
      David Malcolm committed
    • re PR fortran/87597 (wrong result with matmul inlining) · 91fe8d06
      2018-10-15  Tobias Burnus  <burnus@net-b.de>
      
             PR fortran/87597
             * gfortran.dg/inline_matmul_24.f90: Tweak scan-tree.
      
      From-SVN: r265175
      Tobias Burnus committed
    • [PR87563][AARCH64-SVE]: Don't keep ifcvt loop when COND_<OP> ifn could not be vectorized. · 41241199
      ifcvt will created versioned loop and it will permissively generate
      scalar COND_<OP> ifn.
      
      If in the loop vectorize pass, COND_<OP> could not get vectoized,
      the if-converted loop should be abandoned when the target doesn't support
      such ifn.
      
      
      gcc/
      
      2018-10-12  Renlin Li  <renlin.li@arm.com>
      
      	PR target/87563
      	* tree-vectorizer.c (try_vectorize_loop_1): Don't use
      	if-conversioned loop when it contains ifn with types not
      	supported by backend.
      	* internal-fn.c (expand_direct_optab_fn): Add an assert.
      	(direct_internal_fn_supported_p): New helper function.
      	* internal-fn.h (direct_internal_fn_supported_p): Declare.
      
      gcc/testsuite/
      
      2018-10-12  Renlin Li  <renlin.li@arm.com>
      
      	PR target/87563
      	* gcc.target/aarch64/sve/pr87563.c: New.
      
      From-SVN: r265172
      Renlin Li committed
    • re PR fortran/87566 (ICE with class(*) and select) · e60f68ec
      2018-10-15  Paul Thomas  <pault@gcc.gnu.org>
      	    Tobias Burnus  <burnus@gcc.gnu.org>
      
      	PR fortran/87566
      	* resolve.c (resolve_assoc_var): Add missing array spec for
      	class associate names.
      	(resolve_select_type): Handle case where last typed component
      	of the selector has a different type to the expression.
      	* trans-expr.c (gfc_find_and_cut_at_last_class_ref): Replace
      	call to gfc_expr_to_initialize with call to gfc_copy_expr.
      	(gfc_conv_class_to_class): Guard assignment to 'len' field
      	against case where zero constant is supplied.
      
      2018-10-15  Paul Thomas  <pault@gcc.gnu.org>
      	    Tobias Burnus  <burnus@gcc.gnu.org>
      
      	PR fortran/87566
      	* gfortran.dg/select_type_44.f90: New test.
      	* gfortran.dg/associate_42.f90: New test.
      
      
      Co-Authored-By: Tobias Burnus <burnus@gcc.gnu.org>
      
      From-SVN: r265171
      Paul Thomas committed
    • re PR target/87572 (ICE in emit_move_insn, at expr.c:3722) · 72551c68
      	PR target/87572
      	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET):
      	Remove OPTION_MASK_ISA_AVX5124FMAPS_UNSET and
      	OPTION_MASK_ISA_AVX5124VNNIW_UNSET.
      
      From-SVN: r265169
      Jakub Jelinek committed
    • Adjust test to pass with latest glibc · b219eb03
      Glibc changed the it_IT locales to use thousands separators,
      invalidating this test. Use nl_NL instead, as Dutch only uses grouping
      for money not numbers.
      
      	* testsuite/22_locale/numpunct/members/char/3.cc: Adjust test to
      	account for change to glibc it_IT localedata (glibc bz#10797).
      
      From-SVN: r265165
      Jonathan Wakely committed
    • PR libstdc++/87587 prevent -Wabi warnings · f9bd185f
      The warnings about changes to empty struct parameter passing can be
      ignored because the callers are all internal to the library, and so
      compiled with the same -fabi-version as the function definitions.
      
      It would be preferable to use #pragma GCC diagnostic warning "-Wabi=12"
      to get warnings about any other ABI changes in future versions, but
      until PR c++/87611 is fixed the warnings must be completely disabled
      with #pragma GCC diagnostic ignroed "-Wabi".
      
      	PR libstdc++/87587
      	* src/c++11/cxx11-shim_facets.cc: Suppress -Wabi warnings.
      
      From-SVN: r265163
      Jonathan Wakely committed
    • re PR tree-optimization/87022 (miscompilation with -ftree-loop-distribution) · 0df7c778
      	PR tree-optimization/87022
      	* tree-loop-distribution.c (pg_add_dependence_edges): Check all
      	bits in dist vector rather than the first one.
      	
      	gcc/testsuite
      	PR tree-optimization/87022
      	* gcc.dg/tree-ssa/pr87022.c: New test.
      
      From-SVN: r265161
      Bin Cheng committed
    • re PR middle-end/87610 (wrong-code with restrict) · 61e189a8
      2018-10-15  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/87610
      	* tree-ssa-structalias.c (struct vls_data): Add escaped_p member.
      	(visit_loadstore): When a used restrict tag escaped verify that
      	the points-to solution of "other" pointers do not include
      	escaped.
      	(compute_dependence_clique): If a used restrict tag escaped
      	communicated that down to visit_loadstore.
      
      	* gcc.dg/torture/restrict-6.c: New testcase.
      
      From-SVN: r265160
      Richard Biener committed
    • S/390: Fix problem with vec_init expander · cab5fe16
      gcc/ChangeLog:
      
      2018-10-15  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/s390.c (s390_expand_vec_init): Force vector element
      	into reg if it isn't a general operand.
      
      gcc/testsuite/ChangeLog:
      
      2018-10-15  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* g++.dg/vec-init-1.C: New test.
      
      From-SVN: r265158
      Andreas Krebbel committed
    • vector (vector<>::cbegin()): Use C++11 direct initialization. · 4b186707
      2018-10-15  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/debug/vector (vector<>::cbegin()): Use C++11 direct
      	initialization.
      	(vector<>::cend()): Likewise.
      	(vector<>::emplace(const_iterator, _Args&&...)): Likewise and use
      	consistent iterator comparison.
      	(vector<>::insert(const_iterator, size_type, const _Tp&)): Likewise.
      	(vector<>::insert(const_iterator, _InputIterator, _InputIterator)):
      	Likewise.
      	(vector<>::erase(const_iterator)): Likewise.
      	(vector<>::erase(const_iterator, const_iterator)): Likewise.
      
      From-SVN: r265156
      François Dumont committed
    • Daily bump. · 524af591
      From-SVN: r265155
      GCC Administrator committed
  3. 14 Oct, 2018 6 commits
  4. 13 Oct, 2018 3 commits
  5. 12 Oct, 2018 12 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