156539 Commits

Author SHA1 Message Date
Nathan Sidwell
b419102c12 [C++ PATCH] Move mangling alias out of ::
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00199.html
	gcc/cp/
	Move mangling aliases out of global namespace.
	* cp-tree.h (record_mangling): New.
	(maybe_remove_implicit_alias): Delete.
	* decl2.c (mangled_decls): New hash map.
	(generate_mangling_alias): Reimplement using mangled_decls.
	(record_mangling): New.
	* mangle.c (decl_implicit_alias_p,
	maybe_remove_implicit_alias): Delete.
	(mangle_decl): Use record_mangling.
	* name-lookup.c (supplement_binding_1): Remove
	maybe_remove_implicit_alias check.

	* call.c (convert_arg_to_ellipsis): Correct comment about passing
	by reference.

	gcc/testsuite/
	* g++.dg/abi/mangle41.C: Adjust diagnostics.

	libcc1/
	* libcp1plugin.cc (supplement_binding): Don't use
	maybe_remove_implicit_alias.

From-SVN: r253421
2017-10-04 16:55:54 +00:00
Andreas Krebbel
baf20d8df2 S/390: Fix mode in vector merge pattern.
vec_unpacks_hi_v4sf/vec_unpacks_lo_v4sf expand vec_mergeh and vec_mergel
patterns also for z13 with V4SF modes so the patterns should better
accept this.  Fixed by changing the mode iterator to V_128_NOSINGLE
which accepts V4SF unconditionally.

gcc/ChangeLog:

2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/vx-builtins.md ("vec_mergeh<mode>")
	("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.

From-SVN: r253420
2017-10-04 16:43:09 +00:00
Wilco Dijkstra
748d9390b9 Revert r253399:
PR rtl-optimization/82396
	* haifa-sched.c (autopref_multipass_init): Simplify
	initialization.
	(autopref_rank_data): Simplify sort order.
	* sched-int.h (autopref_multipass_data_): Remove
	multi_mem_insn_p, min_offset and max_offset.

From-SVN: r253419
2017-10-04 16:40:44 +00:00
Jakub Jelinek
420db57431 re PR c++/82373 (syntax error in error message)
PR c++/82373
	* error.c (dump_function_decl): If show_return, call dump_type_suffix
	on the same return type dump_type_prefix has been called on.

	* g++.dg/cpp1y/pr82373.C: New test.

From-SVN: r253418
2017-10-04 18:15:36 +02:00
Petr Ovtchenkov
4e91452412 2017-10-04 Petr Ovtchenkov <ptr@void-ptr.info>
François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/streambuf_iterator.h
	(istreambuf_iterator<>::operator*()): Do not capture iterator state
	in Debug assertion.
	(istreambuf_iterator<>::operator++()): Likewise and remove _M_sbuf check.
	(istreambuf_iterator<>::operator++(int)): Likewise.
	(istreambuf_iterator<>::_M_get()): Remove _M_c assignment.
	(istreambuf_iterator<>::_S_is_eof()): New.
	(istreambuf_iterator<>::_M_at_eof()): Adapt, use latter.
	(find(istreambuf_iterator<>, istreambuf_iterator<>, _CharT)):
	Return an iterator with _M_c set to eof to capture streambuf state
	on evaluation.
	(testsuite/24_iterators/istreambuf_iterator/2.cc): Add checks.

Co-Authored-By: François Dumont <fdumont@gcc.gnu.org>

From-SVN: r253417
2017-10-04 16:15:18 +00:00
Jason Merrill
6411847fcf PR c++/81525 - broken handling of auto in generic lambda.
* pt.c (tsubst_decl) [VAR_DECL]: Use strip_innermost_template_args.

From-SVN: r253414
2017-10-04 11:37:09 -04:00
David Malcolm
8139a48e67 C: underline parameters in mismatching function calls
In r253096
  ("C++: underline parameters in mismatching function calls"
  aka 5d78d423a5f7a1d135c7bb678e82007678d1313c
    https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01546.html )
I updated the C++ FE's handling of mismatched types in function calls
so that it underlines the pertinent param of the callee, rather than
just the function name.

The following patch does the same for the C frontend.

Given e.g. this type mismatch:

  extern int callee (int one, const char *two, float three);

  int caller (int first, int second, float third)
  {
    return callee (first, second, third);
  }

the C FE currently emits (trunk):

  test.c: In function 'caller':
  test.c:5:25: warning: passing argument 2 of 'callee' makes pointer from
  integer without a cast [-Wint-conversion]
     return callee (first, second, third);
                           ^~~~~~
  test.c:1:12: note: expected 'const char *' but argument is of type 'int'
   extern int callee (int one, const char *two, float three);
              ^~~~~~

whereas with this patch the note underlines the pertinent param of
the callee:

  test.c: In function 'caller':
  test.c:5:25: warning: passing argument 2 of 'callee' makes pointer from
  integer without a cast [-Wint-conversion]
     return callee (first, second, third);
                           ^~~~~~
  test.c:1:41: note: expected 'const char *' but argument is of type 'int'
   extern int callee (int one, const char *two, float three);
                               ~~~~~~~~~~~~^~~

making the problem more obvious to the user.

As with the C++ patch, the patch:

(a) updates the locations of the params to cover the range of all
of their tokens, putting the caret on the first character of the
param name (if present), otherwise at the start of the first token
(doing so requires adding a last_token_location to the c_parser, so
we can determine the location of the last consumed token).

(b) updates the "note" to use the param location, rather than the
fndecl location

gcc/c/ChangeLog:
	* c-decl.c (push_parm_decl): Store c_parm's location into the
	PARAM_DECL.
	(build_c_parm): Add "loc" param and store it within the c_parm.
	* c-parser.c (struct c_parser): Add "last_token_location" field.
	(c_parser_consume_token): Store location of the token into the
	new field.
	(c_parser_declaration_or_fndef): Store params into DECL_ARGUMENTS
	when handling a FUNCTION_DECL, if it doesn't already have them.
	(c_parser_parameter_declaration): Generate a location for the
	parameter, and pass it to the call to build_c_parm.
	* c-tree.h (struct c_parm): Add field "loc".
	(build_c_parm): Add location_t param.
	* c-typeck.c (get_fndecl_argument_location): New function.
	(inform_for_arg): New function.
	(convert_for_assignment): Use inform_for_arg when dealing with
	ic_argpass.

gcc/testsuite/ChangeLog:
	* gcc.dg/diagnostic-range-bad-called-object.c: Update expected
	underlining for param.
	* gcc.dg/param-type-mismatch.c: Update expected results to reflect
	highlighting of parameters; add test coverage for trivial
	parameter decls, and for callback parameters.
	* gcc.dg/pr68533.c: Update location of two errors to reflect
	location of params.

From-SVN: r253411
2017-10-04 14:10:59 +00:00
Nathan Sidwell
bed8a1e4d6 call.c (convert_arg_to_ellipsis): Correct comment about passing by reference.
* call.c (convert_arg_to_ellipsis): Correct comment about passing
	by reference.

From-SVN: r253410
2017-10-04 14:06:41 +00:00
David Malcolm
6069fe7287 jit: implement gcc_jit_context_new_rvalue_from_vector
This patch implements a new API entrypoint:

/* Build a vector rvalue from an array of elements.

   "vec_type" should be a vector type, created using gcc_jit_type_get_vector.

   This API entrypoint was added in LIBGCCJIT_ABI_10; you can test for its
   presence using
     #ifdef LIBGCCJIT_HAVE_gcc_jit_context_new_rvalue_from_vector
*/
extern gcc_jit_rvalue *
gcc_jit_context_new_rvalue_from_vector (gcc_jit_context *ctxt,
                                        gcc_jit_location *loc,
                                        gcc_jit_type *vec_type,
                                        size_t num_elements,
                                        gcc_jit_rvalue **elements);


gcc/jit/ChangeLog:
	* docs/cp/topics/expressions.rst (Vector expressions): New
	section.
	* docs/topics/compatibility.rst (LIBGCCJIT_ABI_10): New ABI tag.
	* docs/topics/expressions.rst (Vector expressions): New section.
	* docs/topics/types.rst (gcc_jit_type_get_vector): Add link to
	gcc_jit_context_new_rvalue_from_vector.
	* jit-common.h (gcc::jit:recording::vector_type): New forward
	decl.
	* jit-playback.c
	(gcc::jit::playback::context::new_rvalue_from_vector): New method.
	* jit-playback.h
	(gcc::jit::playback::context::new_rvalue_from_vector): New method.
	* jit-recording.c: In namespace gcc::jit::
	(class comma_separated_string): New class.
	(comma_separated_string::comma_separated_string): New ctor,
	adapted from recording::call::make_debug_string.
	(comma_separated_string::~comma_separated_string): New dtor.
	In namespace gcc::jit::recording::
	(context::new_rvalue_from_vector): New method.
	(type::get_vector): Update for renaming of memento_of_get_vector.
	(class memento_of_get_vector): Rename to...
	(class vector_type): ..this.
	(memento_of_new_rvalue_from_vector::memento_of_new_rvalue_from_vector):
	New ctor.
	(memento_of_new_rvalue_from_vector::replay_into): New method.
	(memento_of_new_rvalue_from_vector::visit_children): New method.
	(memento_of_new_rvalue_from_vector::make_debug_string): New
	method.
	(memento_of_new_rvalue_from_vector::write_reproducer): New method.
	(call::make_debug_string): Split out arg-printing code into ctor
	for comma_separated_string.
	* jit-recording.h: In namespace gcc::jit::recording::
	(context::new_rvalue_from_vector): New method.
	(type::dyn_cast_vector_type): New virtual function.
	(class memento_of_get_vector): Rename to...
	(class vector_type): ...this.
	(vector_type::unqualified): Remove this vfunc override in favor
	of...
	(vector_type::get_element_type): ...this new method.
	(vector_type::get_num_units): New method.
	(vector_type::dyn_cast_vector_type): New vfunc override.
	(class memento_of_new_rvalue_from_vector): New class.
	* libgccjit++.h (gccjit::context::new_rvalue): Add overload for
	vector of rvalue.
	* libgccjit.c (gcc_jit_context_new_binary_op): Strip off type
	qualifications when checking that both operands have same type.
	(gcc_jit_context_new_rvalue_from_vector): New API entrypoint.
	* libgccjit.h
	(LIBGCCJIT_HAVE_gcc_jit_context_new_rvalue_from_vector): New
	macro.
	(gcc_jit_context_new_rvalue_from_vector): New API entrypoint.
	* libgccjit.map (LIBGCCJIT_ABI_10): New ABI tag.

gcc/testsuite/ChangeLog:
	* jit.dg/test-expressions.c (make_test_of_vectors): New function.
	(create_code): Call it.
	* jit.dg/test-vector-rvalues.cc: New test case.

From-SVN: r253409
2017-10-04 13:41:01 +00:00
Andreas Krebbel
4f15b6a282 New target check: vect_peeling_profitable
gcc/ChangeLog:

2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* doc/sourcebuild.texi: Document vect_peeling_profitable.

gcc/testsuite/ChangeLog:

2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* g++.dg/vect/slp-pr56812.cc: xfail for targets which don't want
	vector loop peeling.
	* lib/target-supports.exp (check_effective_target_vect_peeling_profitable):
	New proc.

From-SVN: r253407
2017-10-04 12:00:34 +00:00
Andreas Krebbel
30d027da83 New target check for double<->int conversions
gcc/ChangeLog:

2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* doc/sourcebuild.texi: Document vect_intdouble_cvt and
	vect_doubleint_cvt.

gcc/testsuite/ChangeLog:

2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gcc.dg/vect/pr66251.c: Replace vect_floatint_cvt with
	vect_doubleint_cvt and vect_intfloat_cvt with vect_intdouble_cvt.
	* gcc.dg/vect/vect-floatint-conversion-2.c: Replace
	vect_floatint_cvt with vect_doubleint_cvt.
	* gcc.dg/vect/vect-intfloat-conversion-3.c: Replace
	vect_intfloat_cvt with vect_intdouble_cvt.
	* gfortran.dg/vect/pr60510.f: Require vect_intdouble_cvt.
	* gfortran.dg/vect/vect-8.f90: Make number of vectorized loops
	depend on vect_intdouble_cvt.
	* lib/target-supports.exp
	(check_effective_target_vect_doubleint_cvt)
	(check_effective_target_vect_intdouble_cvt): New procs.

From-SVN: r253406
2017-10-04 11:59:30 +00:00
Andreas Krebbel
c059a92ecc New target check: vect_long_mult
We don't have a 64 bit vector integer multiply on z.  Add a specific
check for that.

gcc/ChangeLog:

2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* doc/sourcebuild.texi: Document vect_long_mult.

gcc/testsuite/ChangeLog:

2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gcc.dg/vect/pr60656.c: Check vect_long_mult.
	* lib/target-supports.exp (check_effective_target_vect_long_mult):
	New proc.

From-SVN: r253405
2017-10-04 11:58:22 +00:00
Andreas Krebbel
a46461133e Testcases using dg-options require at least -mzarch.
Testcases which override the vect default options using dg-options
need at least -mzarch on S/390 32 bit.

gcc/testsuite/ChangeLog:

2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gfortran.dg/vect/fast-math-mgrid-resid.f: Use -mzarch on S/390.
	* gfortran.dg/vect/pr77848.f: Likewise.

From-SVN: r253404
2017-10-04 11:57:16 +00:00
Andreas Krebbel
2641277312 Enable vect_float with S/390 VXE and adjust testcases
The target supports routines provide vect_double and vect_float but
these do not appear to be used consequently in the vect testcases.
With z13 we only have support for vector double but with z14 also for
vector float.  This patch adds vect_float to the testcases using the
float data type and make the vect_float target check to return 1 only
on z14.

gcc/testsuite/ChangeLog:

2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* lib/target-supports.exp (check_effective_target_vect_float):
	Return 1 being on a S/390 with VXE.
	* gcc.dg/vect/pr31699.c: Require vec_float.
	* gcc.dg/vect/pr61194.c: Likewise.
	* gcc.dg/vect/pr65947-10.c: Likewise.
	* gcc.dg/vect/pr66142.c: Likewise.
	* gcc.dg/vect/slp-10.c: Likewise.
	* gcc.dg/vect/slp-11c.c: Likewise.
	* gcc.dg/vect/slp-12b.c: Likewise.
	* gcc.dg/vect/slp-18.c: Likewise.
	* gcc.dg/vect/slp-33.c: Likewise.
	* gcc.dg/vect/slp-cond-2-big-array.c: Likewise.
	* gcc.dg/vect/slp-cond-2.c: Likewise.
	* gcc.dg/vect/vect-cond-10.c: Likewise.
	* gcc.dg/vect/vect-cond-8.c: Likewise.
	* gcc.dg/vect/vect-cond-9.c: Likewise.
	* gcc.dg/vect/vect-float-extend-1.c: Likewise.
	* gcc.dg/vect/vect-float-truncate-1.c: Likewise.

From-SVN: r253403
2017-10-04 11:56:28 +00:00
Thomas Schwinge
ebb4badd5e Adjust test cases for attributes propagation changes for OMP outlined regions
PR tree-optimization/82374
	* c-c++-common/goacc/kernels-double-reduction-n.c: Adjust for
	attributes propagation changes for OMP outlined regions.
	* c-c++-common/goacc/kernels-double-reduction.c: Likewise.
	* c-c++-common/goacc/kernels-reduction.c: Likewise.

From-SVN: r253402
2017-10-04 13:13:24 +02:00
Richard Sandiford
f95810b50b PR82413: Mismatched precisions in build_range_check
build_range_check explicitly allows LOW and HIGH to be a different type
from EXP, so we need to use w::to_widest when comparing a value based on
HIGH with a value based on EXP's type.

2017-10-04  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	PR tree-optimization/82413
	* fold-const.c (build_range_check): Use widest_int when comparing
	the maximum ETYPE value with HIGH.

gcc/testsuite/
	PR tree-optimization/82413
	* g++.dg/pr82413.C: New test.

From-SVN: r253401
2017-10-04 10:50:19 +00:00
Paul Thomas
707905d077 re PR fortran/60458 (Error message on associate: deferred type parameter and requires either the pointer or allocatable attribute)
2017-10-04  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/60458
	PR fortran/77296
	* resolve.c (resolve_assoc_var): Deferred character type
	associate names must not receive an integer conatant length.
	* symbol.c (gfc_is_associate_pointer): Deferred character
	length functions also require an associate pointer.
	* trans-decl.c (gfc_get_symbol_decl): Deferred character
	length functions or derived type components require the assoc
	name to have variable string length.
	* trans-stmt.c (trans_associate_var): Set the string length of
	deferred string length associate names. The address expression
	is not needed for allocatable, pointer or dummy targets. Change
	the comment about defered string length targets.

2017-10-04  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/77296
	* gfortran.dg/associate_32.f03 : New test.

From-SVN: r253400
2017-10-04 10:43:45 +00:00
Wilco Dijkstra
3e3d1b2326 Fix PR82396: qsort comparator non-negative on sorted output
r253236 broke AArch64 bootstrap. Earlier revision r253071 changed scheduling
behaviour on AArch64 as autopref scheduling no longer checks the base.

This patch fixes the bootstrap failure and cleans up autopref scheduling.
The code is greatly simplified.  Sort accesses on the offset first, and
only if the offsets are the same fall back to other comparisons in
rank_for_schedule.  This doesn't at all restore the original behaviour
since we no longer compare the base address, but it now defines a total
sorting order.  More work will be required to improve the sorting so
that only loads/stores with the same base are affected.

    gcc/
        PR rtl-optimization/82396
        * haifa-sched.c (autopref_multipass_init): Simplify
        initialization.
        (autopref_rank_data): Simplify sort order.
        * sched-int.h (autopref_multipass_data_): Remove
        multi_mem_insn_p, min_offset and max_offset.

From-SVN: r253399
2017-10-04 10:27:26 +00:00
Tom de Vries
26596ee50d Fix openacc float reduction testcases
2017-10-04  Tom de Vries  <tom@codesourcery.com>

	* testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c
	(main): Reduce sum of arr elements.  Assert that hres is exactly
	representable in 32-bit floating point.
	* testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c
	(main): Reduce sum of arr elements.  Assert that hres and hmres are
	exactly representable in 32-bit floating point.
	* testsuite/libgomp.oacc-c-c++-common/reduction-7.c (gwv_np_4): Same.

From-SVN: r253398
2017-10-04 08:39:09 +00:00
Paolo Carlini
8bca3f592c re PR c++/78816 ([c++14] Static auto variable usage in generic/variadic lambda fails to compile)
2017-10-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/78816
	* g++.dg/cpp1y/lambda-generic-variadic6.C: New.

From-SVN: r253397
2017-10-04 08:34:40 +00:00
Jakub Jelinek
8a8e744eb2 re PR tree-optimization/82381 (internal compiler error: qsort checking failed)
PR tree-optimization/82381
	* tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
	oeN->rank first.  Return 1 or -1 if one op is SSA_NAME and the other
	is not.

From-SVN: r253396
2017-10-04 09:52:26 +02:00
Jakub Jelinek
5c38262d95 re PR tree-optimization/82374 (#pragma GCC optimize is not applied to openmp-generated functions)
PR tree-optimization/82374
	* omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
	DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
	DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
	current_function_decl to the new decl.

	* gcc.dg/gomp/pr82374.c: New test.

From-SVN: r253395
2017-10-04 09:50:38 +02:00
Richard Biener
21375f0ded id-17.f: For ilp32 allow graphite codegen errors and scan for one.
2017-10-04  Richard Biener  <rguenther@suse.de>

	* gfortran.dg/graphite/id-17.f: For ilp32 allow graphite codegen
	errors and scan for one.
	* gfortran.dg/graphite/id-19.f: Likewise.
	* gfortran.dg/graphite/pr29832.f90: Likewise.
	* gfortran.dg/graphite/pr42326-1.f90: Likewise.
	* gfortran.dg/graphite/pr42326.f90: Likewise.
	* gfortran.dg/graphite/pr68550-2.f90: Likewise.
	* gfortran.dg/graphite/run-id-2.f90: Likewise.
	* gfortran.dg/graphite/run-id-3.f90: Likewise.
	* gfortran.dg/graphite/pr42393-1.f90: Dump graphite.

From-SVN: r253394
2017-10-04 07:43:54 +00:00
GCC Administrator
86a865a0a1 Daily bump.
From-SVN: r253393
2017-10-04 00:16:21 +00:00
Michael Meissner
944e08418b rs6000-builtin.def (BU_FLOAT128_2_HW): Define new helper macro for IEEE float128 hardware built-in functions.
[gcc]
2017-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
	helper macro for IEEE float128 hardware built-in functions.
	(SQRTF128_ODD): Add built-in functions with the round-to-odd
	semantics.
	(TRUNCF128_ODD): Likewise.
	(ADDF128_ODD): Likewise.
	(SUBF128_ODD): Likewise.
	(MULF128_ODD): Likewise.
	(DIVF128_ODD): Likewise.
	(FMAF128_ODD): Likewise.
	* config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
	UNSPEC_TRUNC_ROUND_TO_ODD.
	(UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
	(UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
	floating point round to odd instructions.
	(UNSPEC_SUB_ROUND_TO_ODD): Likewise.
	(UNSPEC_MUL_ROUND_TO_ODD): Likewise.
	(UNSPEC_DIV_ROUND_TO_ODD): Likewise.
	(UNSPEC_FMA_ROUND_TO_ODD): Likewise.
	(UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
	(trunc<mode>sf2_hw): Change the truncate with round to odd
	expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
	(add<mode>3_odd): Add insns for IEEE 128-bit floating point round
	to odd hardware instructions.
	(sub<mode>3_odd): Likewise.
	(mul<mode>3_odd): Likewise.
	(div<mode>3_odd): Likewise.
	(sqrt<mode>2_odd): Likewise.
	(fma<mode>4_odd): Likewise.
	(fms<mode>4_odd): Likewise.
	(nfma<mode>4_odd): Likewise.
	(nfms<mode>4_odd): Likewise.
	(trunc<mode>df2_odd): Change the truncate with round to odd
	expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.  Add a generator
	function.
	* doc/extend.texi (PowerPC built-in functions): Update documentation
	for existing IEEE float128-bit built-in functions.  Add built-in
	functions that generate the IEEE 128-bit floating point round to
	odd instructions.

[gcc/testsuite]
2017-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/float128-odd.c: New test.

From-SVN: r253389
2017-10-03 23:08:16 +00:00
Paolo Carlini
5bd8ff41eb re PR c++/70343 (internal compiler error: in tsubst_copy, wrong code with lambda in template fn)
2017-10-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/70343
	* g++.dg/cpp0x/lambda/lambda-70343.C: New.

From-SVN: r253388
2017-10-03 21:15:56 +00:00
Tony Reix
fbdc37805a Import from libffi master repository.
2017-08-31  Tony Reix  <tony.reix@atos.net>

        * src/powerpc/aix.S (ffi_call_AIX): Add debugging pseudo-op and
        labels for EH.
        (ffi_call_go_AIX): New function.
        (_GLOBAL__F_libffi_src_powerpc_aix): New EH frame.
        * src/powerpc/aix_closure.S (ffi_closure_ASM): Add debugging
        pseudo-op and labels for EH.
        (ffi_go_closure_ASM): New function.
        (_GLOBAL__F_libffi_src_powerpc_aix_closure): New EH frame.
        * src/powrpc/ffi_darwin.c (ffi_call_go): New function.
        (ffi_prep_go_closure): New function.
        (ffi_closure_helper_common): Rename from ffi_closure_helper_DARWIN.
        (ffi_closure_helper_DARWIN): Call ffi_closure_helper_common.
        (ffi_go_closure_helper_DARWIN): Call ffi_closure_helper_common.
        * src/powerpc/ffitarget.h (FFI_GO_CLOSURES): Define.

From-SVN: r253386
2017-10-03 14:26:31 -04:00
Jeff Law
11e3d45c7e re PR target/82358 (i386/stack-check-11.c fail)
PR target/82358
	* gcc.target/i386/stack-check-11.c: Use -mtune=generic.

From-SVN: r253385
2017-10-03 11:09:54 -06:00
Segher Boessenkool
a8ccdfa8ea simplify-rtx: Remove non-simplifying simplification (PR77729)
If we have (X&C1)|C2 simplify_binary_operation_1 makes C1 as small as
possible.  This makes worse code in common cases like when the AND with
C1 is from a zero-extension.  This patch fixes it by removing this
transformation (twice).


	PR rtl-optimization/77729
	* simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
	to (X&(C1&~C2))|C2 transformations.

From-SVN: r253384
2017-10-03 18:02:38 +02:00
Henry Linjamäki
9c53f040cb [BRIGFE] Fix (more) crash with calls with more than 4 args.
It missed a reference which is required because vector expansion
can move the object to another location.

From-SVN: r253382
2017-10-03 15:16:34 +00:00
Thomas Koenig
4f8d1d3268 io.c (match_wait_element): Correctly match END and EOR tags.
2017-10-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* io.c (match_wait_element): Correctly match END and EOR tags.
	* dump-parse-tree.c (show_code_node): Handle EXEC_WAIT.

From-SVN: r253381
2017-10-03 13:49:39 +00:00
Martin Jambor
3b7511f921 [PR 82363] Fix thinko in SRA subaccess propagation
2017-10-03  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/82363
	* tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
	mismatch, mark lacc written regardless of racc.

	testsuite/
	* gcc.dg/tree-ssa/pr82363.c: New test.

From-SVN: r253380
2017-10-03 13:43:45 +02:00
Jakub Jelinek
33ff5dda9f re PR tree-optimization/82381 (internal compiler error: qsort checking failed)
PR tree-optimization/82381
	* tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
	stmt_to_insert nor wheather SSA_NAMEs are default defs.
	Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
	fallthrough into reassoc_stmt_dominates_stmt_p.

	* gcc.c-torture/compile/pr82381.c: New test.

From-SVN: r253379
2017-10-03 13:24:39 +02:00
Jakub Jelinek
bb81a576f2 re PR target/82386 (internal compiler error: Segmentation fault on 32-bit powerpc BE targets)
PR target/82386
	* combine.c (combine_instructions): Don't combine in unreachable
	basic blocks.

	* gcc.dg/pr82386.c: New test.

From-SVN: r253378
2017-10-03 11:49:37 +02:00
Ian Lance Taylor
8398c1dfe2 ztest.c: #include <errno.h>.
* ztest.c: #include <errno.h>.
	(TEST_TIMING): Don't define, don't test.
	(xclock_gettime, xclockid_t): Define if !HAVE_CLOCK_GETTIME.
	(clockid_t, clock_gettime, CLOCK_REALTIME): Likewise.
	(ZLIB_CLOCK_GETTIME_ARG): Define.
	* configure.ac: Change clock_gettime_link to CLOCK_GETTIME_LINK.
	* Makefile.am: Likewise.
	* configure, Makefile.in: Rebuild.

From-SVN: r253377
2017-10-03 02:27:33 +00:00
GCC Administrator
0adaaf009b Daily bump.
From-SVN: r253376
2017-10-03 00:16:16 +00:00
Martin Sebor
bc437a5699 Clean up more fallout from r252976.
libatomic/ChangeLog:
2017-10-02  Martin Sebor  <msebor@redhat.com>

	PR c/81854
	* acinclude.m4 (LIBAT_CHECK_IFUNC): Have ifunc resolver return
	a function pointer rather than void* to avoid GCC 8 warnings.
	* configure: Regenerate.
	* libatomic_i.h: Declare ifunc resolvers to return function
	pointers rather than void*.

From-SVN: r253372
2017-10-02 17:57:19 -06:00
Jakub Jelinek
9a741aee62 charconv (__unsigned_least_t): Fix number of closing >s for !_GLIBCXX_USE_INT128.
* include/std/charconv (__unsigned_least_t): Fix number of closing >s for
	!_GLIBCXX_USE_INT128.

From-SVN: r253371
2017-10-03 01:28:54 +02:00
Paolo Carlini
5aab83d53f re PR c++/70570 (Assembler error "symbol already defined" from nested lambdas and function-static variable)
2017-10-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/70570
	* g++.dg/cpp1y/lambda-generic-70570.C: New.

From-SVN: r253370
2017-10-02 22:21:16 +00:00
Paolo Carlini
70c894ea64 re PR c++/79590 (ICE (internal compiler error) in nothrow_spec_p with generic lambda and noexcept(noexcept(...)) expression)
2017-10-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/79590
	* g++.dg/cpp1y/lambda-generic-noexcept1.C: New.

From-SVN: r253369
2017-10-02 22:02:03 +00:00
Paolo Carlini
603841eb29 re PR c++/79005 (Use of a captured variable within nested generic lambdas provokes internal compiler error.)
2017-10-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/79005
	* g++.dg/cpp1y/lambda-generic-79005.C: New.

From-SVN: r253368
2017-10-02 21:44:55 +00:00
Eric Botcazou
de87f2d04a re PR ada/82384 (s-taprop.adb failed to compile for x32)
PR ada/82384
	* libgnarl/s-linux__x32.ads (suseconds_t): New subtype.
	(time_t): Change from derived type to subtype.
	(timeval): Use suseconds_t for tv_usec.
	* libgnarl/s-osinte__x32.adb (To_Timespec): Remove use type clause.

From-SVN: r253366
2017-10-02 19:38:06 +00:00
Paul Thomas
da3723a8d5 re PR fortran/82312 ([OOP] Pointer assignment to component of class variable results wrong vptr for the variable.)
2017-10-02  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/82312
	* resolve.c (gfc_resolve_code): Simplify condition for class
	pointer assignments becoming regular assignments by asserting
	that only class valued targets are permitted.
	* trans-expr.c (trans_class_pointer_fcn): New function using a
	block of code from gfc_trans_pointer_assignment.
	(gfc_trans_pointer_assignment): Call the new function. Tidy up
	a minor whitespace issue.

2017-10-02  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/82312
	* gfortran.dg/typebound_proc_36.f90 : New test.

From-SVN: r253362
2017-10-02 18:17:39 +00:00
Peter Bergner
20a7e14aad re PR target/80210 (ICE in in extract_insn, at recog.c:2311 on ppc64 for with __builtin_pow)
gcc/
	PR target/80210
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
	function to not use the have_cpu variable.  Do not set cpu_index,
	rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
	or the default cpu.
	(rs6000_valid_attribute_p): Remove duplicate initializations of
	old_optimize and func_optimize.
	(rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
	(rs6000_activate_target_options): Make global.
	* config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
	prototype.

gcc/testsuite/
	PR target/80210
	* gcc.target/powerpc/pr80210-2.c: New test.

From-SVN: r253358
2017-10-02 11:56:58 -05:00
Jakub Jelinek
476dec785d tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1 if *poffset + *pmax_size overflows in HOST_WIDE_INT.
* tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
	if *poffset + *pmax_size overflows in HOST_WIDE_INT.
	Set *poffset to 0 and *psize and *pmax_size to -1 if
	*poffset + *psize overflows in HOST_WIDE_INT.

	* gcc.dg/pr82389.c: New test.

From-SVN: r253357
2017-10-02 17:48:55 +02:00
Jakub Jelinek
f240a23075 re PR tree-optimization/82387 (wrong code at -O1 and -Os on x86_64-linux-gnu in 64-bit mode)
PR tree-optimization/82387
	PR tree-optimization/82388
	PR tree-optimization/82389
	* tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
	instead of live_bytes non-NULL.

	* gcc.c-torture/compile/pr82389.c: New test.
	* gcc.c-torture/execute/pr82387.c: New test.
	* gcc.c-torture/execute/pr82388.c: New test.

From-SVN: r253356
2017-10-02 17:44:10 +02:00
Jonathan Wakely
804b7cc438 C++17 P0067R5 std::to_chars and std::from_chars (partial)
This adds the integral overloads of std::to_chars and std::from_chars,
including the changes made by P0682R0. Support for floating point types
is absent.

	* include/Makefile.am: Add new <charconv> header.
	* include/Makefile.in: Regenerate.
	* include/precompiled/stdc++.h: Include <charconv>.
	* include/std/charconv: New file.
	(to_chars_result, to_chars, from_chars_result, from_chars): Define.
	* testsuite/20_util/from_chars/1.cc: New test.
	* testsuite/20_util/from_chars/1_neg.cc: New test.
	* testsuite/20_util/from_chars/2.cc: New test.
	* testsuite/20_util/from_chars/requirements.cc: New test.
	* testsuite/20_util/to_chars/1.cc: New test.
	* testsuite/20_util/to_chars/1_neg.cc: New test.
	* testsuite/20_util/to_chars/2.cc: New test.
	* testsuite/20_util/to_chars/requirements.cc: New test.

From-SVN: r253353
2017-10-02 15:06:40 +01:00
Jakub Jelinek
d1453bec27 backtrace-rename.h (backtrace_uncompress_zdebug): Define.
* libbacktrace/backtrace-rename.h (backtrace_uncompress_zdebug):
	Define.

From-SVN: r253351
2017-10-02 16:00:53 +02:00
Paolo Carlini
bac1187dad re PR c++/79180 (Nested lambda-capture causes segfault for parameter pack)
2017-10-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/79180
	* g++.dg/cpp0x/lambda/lambda-nested8.C: New.
	* g++.dg/torture/pr79180.C: Likewise.

	PR c++/71386
	* g++.dg/cpp1y/lambda-generic-nested1.C: New.

From-SVN: r253350
2017-10-02 12:40:26 +00:00
Thomas Schwinge
22381c22b4 Handle libbacktrace in contrib/gcc_update
contrib/
	* gcc_update (files_and_dependencies): Handle libbacktrace.

From-SVN: r253346
2017-10-02 13:56:50 +02:00