Commit Graph

164377 Commits

Author SHA1 Message Date
Jonathan Wakely
f9bd185f18 PR libstdc++/87587 prevent -Wabi warnings
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
2018-10-15 13:58:51 +01:00
Bin Cheng
0df7c778ed re PR tree-optimization/87022 (miscompilation with -ftree-loop-distribution)
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
2018-10-15 11:35:56 +00:00
Richard Biener
61e189a874 re PR middle-end/87610 (wrong-code with restrict)
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
2018-10-15 10:58:28 +00:00
Andreas Krebbel
cab5fe166d S/390: Fix problem with vec_init expander
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
2018-10-15 08:07:13 +00:00
François Dumont
4b186707ee vector (vector<>::cbegin()): Use C++11 direct initialization.
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
2018-10-15 05:24:51 +00:00
GCC Administrator
524af591fd Daily bump.
From-SVN: r265155
2018-10-15 00:16:53 +00:00
H.J. Lu
77919e6aff i386: Add register source to movddup
Add register source to movddup so that IRA will allow register source
for *vec_dupv2di when SSE3 is enabled.

gcc/

	PR target/87599
	* config/i386/sse.md (*vec_dupv2di): Add register source to
	movddup.

gcc/testsuite/

	PR target/87599
	* gcc.target/i386/pr87599.c: New test.

From-SVN: r265151
2018-10-14 13:39:05 -07:00
H.J. Lu
190667ae25 i386: Also disable AVX512IFMA/AVX5124FMAPS/AVX5124VNNIW
Also disable AVX512IFMA, AVX5124FMAPS and AVX5124VNNIW when disabling
AVX512F.

gcc/

	PR target/87572
	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET):
	Add OPTION_MASK_ISA_AVX512IFMA_UNSET,
	OPTION_MASK_ISA_AVX5124FMAPS_UNSET and
	OPTION_MASK_ISA_AVX5124VNNIW_UNSET.

gcc/testsuite/

	PR target/87572
	* gcc.target/i386/pr87572.c: New test.

From-SVN: r265150
2018-10-14 13:30:02 -07:00
Bin Cheng
fc7367ea77 * MAINTAINERS: Update my email address.
From-SVN: r265149
2018-10-14 09:45:35 +00:00
Paul Thomas
188a13e145 re PR fortran/83146 (ICE on SELECT CASE statement with associate name)
2018-10-14  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/83146
	* gfortran.dg/associate_43.f90: New test.

From-SVN: r265148
2018-10-14 09:25:13 +00:00
Anthony Green
049f5ef927 This patch adjusts one of the c-torture tests to account for the possible lack of divide-by-zero exceptions on certain moxie targets.
From-SVN: r265147
2018-10-14 09:21:51 +00:00
GCC Administrator
514d6f1746 Daily bump.
From-SVN: r265146
2018-10-14 00:16:37 +00:00
Eric Botcazou
464b6c1117 dwarf2cfi.c (struct dw_trace_info): Add args_size_defined_for_eh.
* dwarf2cfi.c (struct dw_trace_info): Add args_size_defined_for_eh.
	(notice_args_size): Set it in the current trace if no insn that can
	throw internally has been seen yet.
	(connect_traces): When connecting args_size between traces, allow the
	incoming values not to match if there is an insn setting it before the
	first insn that can throw internally; in that case, force the creation
	of a CFI note on this latter insn.

From-SVN: r265142
2018-10-13 17:32:07 +00:00
Jonathan Wakely
f77bca9ac3 Fix compilation failure with C++98 compilers
* opt-problem.h (opt_wrapper): Use template-argument-list when naming
	the base class, because using the injected-class-name was not clearly
	specified until DR 176.

From-SVN: r265140
2018-10-13 12:19:09 +01:00
GCC Administrator
3ea54ea16f Daily bump.
From-SVN: r265139
2018-10-13 00:16:39 +00:00
Olivier Hainque
87f918e380 tighten the toplevel guard on ibm-ldouble.c
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
2018-10-12 21:25:46 +00:00
Paul Koning
fe65151b14 pdp11.md (doloop_end): New expander.
* 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
2018-10-12 17:12:38 -04:00
Yury Gribov
e41ec71bd9 Add pattern to remove useless float casts in comparisons.
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
2018-10-12 20:35:20 +00:00
Alexandre Oliva
67aeaded2f introduce --enable-large-address-aware
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
2018-10-12 20:11:27 +00:00
Alexandre Oliva
9e41e97531 define HAVE_GAS_ALIGNED_COMM
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
2018-10-12 20:11:16 +00:00
Nathan Sidwell
7fa072dea5 [C++ PATCH] more TU parsing refactoring
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
2018-10-12 18:44:48 +00:00
Tobias Burnus
47b92d22d3 Fix off-by-one issue with inline matmul
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
2018-10-12 20:18:13 +02:00
Tobias Burnus
b4439561c4 Fix error-recovery ICE in check_proc_interface
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
2018-10-12 20:13:25 +02:00
Peter Bergner
d8d3cc098e re PR rtl-optimization/87600 (Fix for PRs 86939 and 87479 causes build issues for several targets)
PR rtl-optimization/87600
	* ira-lives (non_conflicting_reg_copy_p): Disable for non LRA targets.

From-SVN: r265113
2018-10-12 11:31:11 -05:00
Paul Koning
a01abe9d08 md.texi (doloop_end): Document that the pattern code may need to check operand mode.
* doc/md.texi (doloop_end): Document that the pattern code may
	need to check operand mode.

From-SVN: r265102
2018-10-12 09:50:15 -04:00
Jonathan Wakely
e5989e71ff Initial commit of Networking TS implementation
* 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
2018-10-12 11:50:15 +01:00
Wilco Dijkstra
0cfc095c8d [AArch64] Support zero-extended move to FP register
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
2018-10-12 10:49:27 +00:00
Christophe Lyon
4dc003fffa Fix typo in previous commit.
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
2018-10-12 09:38:05 +02:00
Will Wray
79371671cb 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
2018-10-11 21:35:48 -06:00
Martin Sebor
0b8c3649a5 extend.texi (attribute packed): Correct typos.
gcc/ChangeLog:

	* doc/extend.texi (attribute packed): Correct typos.

From-SVN: r265076
2018-10-11 21:18:23 -06:00
Martin Sebor
02f8305836 extend.texi (attribute flatten): Mention interaction with noinline.
gcc/ChangeLog:

	* doc/extend.texi (attribute flatten): Mention interaction with
	noinline.

From-SVN: r265075
2018-10-11 21:16:10 -06:00
Jan Hubicka
97ae2126ca re PR target/87156 (ICE building libstdc++ for mips64)
PR target/87156
	* cgraphclones.c (cgraph_node::create_version_clone_with_body):
	Set new_decl virtual flag to zero.

From-SVN: r265074
2018-10-11 20:40:17 -06:00
Martin Sebor
bf142d1570 PR middle-end/87593 - conflicting format_arg attributes on a declaration accepted
gcc/ChangeLog:

	* doc/extend.texi (attribute format_arg): Discuss using multiple
	attributes on a single function.

From-SVN: r265073
2018-10-11 19:42:08 -06:00
GCC Administrator
ccd20ab691 Daily bump.
From-SVN: r265072
2018-10-12 00:16:46 +00:00
Jonathan Wakely
49cb790a4c PR libstdc++/77691 increase allocation size to at least alignment
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
2018-10-12 00:21:11 +01:00
Will Schmidt
47d31f1aa4 fold-vec-insert-char-p8.c: New.
[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
2018-10-11 21:31:32 +00:00
Will Schmidt
3c32917793 fold-vec-extract-char.p7.c: New.
[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
2018-10-11 21:25:23 +00:00
Will Schmidt
d9519daf1e fold-vec-select-char.c: New.
[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
2018-10-11 21:10:12 +00:00
Giuliano Belinassi
121ef08b0b re PR tree-optimization/86829 (Missing sin(atan(x)) and cos(atan(x)) optimizations)
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
2018-10-11 15:06:12 -06:00
Will Schmidt
ea010af6b4 rs6000.c (map_to_integral_tree_type): New helper function.
[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
2018-10-11 21:03:30 +00:00
Will Schmidt
5746195cdc fold-vec-mergeeo-floatdouble.c: New.
[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
2018-10-11 20:59:15 +00:00
François Dumont
3e670ecf0b 2018-10-11 François Dumont <fdumont@gcc.gnu.org>
* 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
2018-10-11 20:47:13 +00:00
François Dumont
91febb0e2b 2018-10-11 François Dumont <fdumont@gcc.gnu.org>
* 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
2018-10-11 20:21:57 +00:00
Tobias Burnus
2c4f9ec162 revert: re PR fortran/83522 (ICE on allocatable string reference, string(:)(:))
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
2018-10-11 21:37:28 +02:00
Wilco Dijkstra
1b6acf2339 [AArch64] Fix PR87511
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
2018-10-11 19:10:12 +00:00
David Malcolm
03f6d32edb C++: suggestions for misspelled private members (PR c++/84993)
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
2018-10-11 19:03:33 +00:00
Nathan Sidwell
c7f45560c7 [C++ PATCH] parser simplification
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
2018-10-11 18:58:55 +00:00
Doug Rupp
13c4e4031a leverage linker relaxation on ppc vxworks RTPs
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
2018-10-11 18:36:34 +00:00
Jakub Jelinek
1cc6eecd5d re PR c++/85070 (ICE on C++ code: in lazily_declare_fn, at cp/method.c:2409)
PR c++/85070
	* g++.dg/cpp0x/pr85070.C: Change effective target for diagnostics from
	c++14_only to c++14.

From-SVN: r265052
2018-10-11 20:35:11 +02:00
David Malcolm
cbd8652b67 multiline.exp: complain about mismatched dg-{begin|end}-multiline-output
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
2018-10-11 17:05:23 +00:00