gcc.git
7 years ago[PATCH][AArch64] Add BIC-imm and ORR-imm SIMD pattern
Sudakshina Das [Wed, 4 Oct 2017 16:59:40 +0000 (16:59 +0000)]
[PATCH][AArch64] Add BIC-imm and ORR-imm SIMD pattern

This patch adds the support for BIC (vector, immediate) and
ORR (vector, immediate) SIMD patterns to the AArch64 backend.

Committed on behalf of Sudi Das.

Reviewed-by: Richard Earnshaw <Richard.Earnshaw@arm.com>
Reviewed-by: James Greenhalgh <james.greenhalgh@arm.com>
gcc/

* config/aarch64/aarch64-protos.h (enum simd_immediate_check): New
check type for aarch64_simd_valid_immediate.
(aarch64_output_simd_mov_immediate): Update prototype.
(aarch64_simd_valid_immediate): Update prototype.
* config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add
support for ORR-immediate.
(and<mode>3): modified pattern to add support for BIC-immediate.
* config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function
now checks for valid immediate for BIC and ORR based on new enum
argument.
(aarch64_output_simd_mov_immediate): Function now used to output
BIC/ORR imm as well based on new enum argument.
* config/aarch64/constraints.md (Do): New vector immediate constraint.
(Db) : Likewise.
* config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate.
(aarch64_reg_or_bic_imm): Likewise.

gcc/testsuite/

* gcc.target/aarch64/bic_imm_1.c: New test.
* gcc.target/aarch64/orr_imm_1.c: Likewise.

From-SVN: r253422

7 years ago[C++ PATCH] Move mangling alias out of ::
Nathan Sidwell [Wed, 4 Oct 2017 16:55:54 +0000 (16:55 +0000)]
[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

7 years agoS/390: Fix mode in vector merge pattern.
Andreas Krebbel [Wed, 4 Oct 2017 16:43:09 +0000 (16:43 +0000)]
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

7 years agoRevert r253399:
Wilco Dijkstra [Wed, 4 Oct 2017 16:40:44 +0000 (16:40 +0000)]
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

7 years agore PR c++/82373 (syntax error in error message)
Jakub Jelinek [Wed, 4 Oct 2017 16:15:36 +0000 (18:15 +0200)]
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

7 years ago2017-10-04 Petr Ovtchenkov <ptr@void-ptr.info>
Petr Ovtchenkov [Wed, 4 Oct 2017 16:15:18 +0000 (16:15 +0000)]
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

7 years agoPR c++/81525 - broken handling of auto in generic lambda.
Jason Merrill [Wed, 4 Oct 2017 15:37:09 +0000 (11:37 -0400)]
PR c++/81525 - broken handling of auto in generic lambda.

* pt.c (tsubst_decl) [VAR_DECL]: Use strip_innermost_template_args.

From-SVN: r253414

7 years agoC: underline parameters in mismatching function calls
David Malcolm [Wed, 4 Oct 2017 14:10:59 +0000 (14:10 +0000)]
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

7 years agocall.c (convert_arg_to_ellipsis): Correct comment about passing by reference.
Nathan Sidwell [Wed, 4 Oct 2017 14:06:41 +0000 (14:06 +0000)]
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

7 years agojit: implement gcc_jit_context_new_rvalue_from_vector
David Malcolm [Wed, 4 Oct 2017 13:41:01 +0000 (13:41 +0000)]
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

7 years agoNew target check: vect_peeling_profitable
Andreas Krebbel [Wed, 4 Oct 2017 12:00:34 +0000 (12:00 +0000)]
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

7 years agoNew target check for double<->int conversions
Andreas Krebbel [Wed, 4 Oct 2017 11:59:30 +0000 (11:59 +0000)]
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

7 years agoNew target check: vect_long_mult
Andreas Krebbel [Wed, 4 Oct 2017 11:58:22 +0000 (11:58 +0000)]
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

7 years agoTestcases using dg-options require at least -mzarch.
Andreas Krebbel [Wed, 4 Oct 2017 11:57:16 +0000 (11:57 +0000)]
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

7 years agoEnable vect_float with S/390 VXE and adjust testcases
Andreas Krebbel [Wed, 4 Oct 2017 11:56:28 +0000 (11:56 +0000)]
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

7 years agoAdjust test cases for attributes propagation changes for OMP outlined regions
Thomas Schwinge [Wed, 4 Oct 2017 11:13:24 +0000 (13:13 +0200)]
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

7 years agoPR82413: Mismatched precisions in build_range_check
Richard Sandiford [Wed, 4 Oct 2017 10:50:19 +0000 (10:50 +0000)]
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

7 years agore PR fortran/60458 (Error message on associate: deferred type parameter and requires...
Paul Thomas [Wed, 4 Oct 2017 10:43:45 +0000 (10:43 +0000)]
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

7 years agoFix PR82396: qsort comparator non-negative on sorted output
Wilco Dijkstra [Wed, 4 Oct 2017 10:27:26 +0000 (10:27 +0000)]
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

7 years agoFix openacc float reduction testcases
Tom de Vries [Wed, 4 Oct 2017 08:39:09 +0000 (08:39 +0000)]
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

7 years agore PR c++/78816 ([c++14] Static auto variable usage in generic/variadic lambda fails...
Paolo Carlini [Wed, 4 Oct 2017 08:34:40 +0000 (08:34 +0000)]
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

7 years agore PR tree-optimization/82381 (internal compiler error: qsort checking failed)
Jakub Jelinek [Wed, 4 Oct 2017 07:52:26 +0000 (09:52 +0200)]
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

7 years agore PR tree-optimization/82374 (#pragma GCC optimize is not applied to openmp-generate...
Jakub Jelinek [Wed, 4 Oct 2017 07:50:38 +0000 (09:50 +0200)]
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

7 years agoid-17.f: For ilp32 allow graphite codegen errors and scan for one.
Richard Biener [Wed, 4 Oct 2017 07:43:54 +0000 (07:43 +0000)]
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

7 years agoDaily bump.
GCC Administrator [Wed, 4 Oct 2017 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253393

7 years agors6000-builtin.def (BU_FLOAT128_2_HW): Define new helper macro for IEEE float128...
Michael Meissner [Tue, 3 Oct 2017 23:08:16 +0000 (23:08 +0000)]
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

7 years agore PR c++/70343 (internal compiler error: in tsubst_copy, wrong code with lambda...
Paolo Carlini [Tue, 3 Oct 2017 21:15:56 +0000 (21:15 +0000)]
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

7 years agoImport from libffi master repository.
Tony Reix [Tue, 3 Oct 2017 18:26:31 +0000 (18:26 +0000)]
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

7 years agore PR target/82358 (i386/stack-check-11.c fail)
Jeff Law [Tue, 3 Oct 2017 17:09:54 +0000 (11:09 -0600)]
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

7 years agosimplify-rtx: Remove non-simplifying simplification (PR77729)
Segher Boessenkool [Tue, 3 Oct 2017 16:02:38 +0000 (18:02 +0200)]
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

7 years ago[BRIGFE] Fix (more) crash with calls with more than 4 args.
Henry Linjamäki [Tue, 3 Oct 2017 15:16:34 +0000 (15:16 +0000)]
[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

7 years agoio.c (match_wait_element): Correctly match END and EOR tags.
Thomas Koenig [Tue, 3 Oct 2017 13:49:39 +0000 (13:49 +0000)]
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

7 years ago[PR 82363] Fix thinko in SRA subaccess propagation
Martin Jambor [Tue, 3 Oct 2017 11:43:45 +0000 (13:43 +0200)]
[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

7 years agore PR tree-optimization/82381 (internal compiler error: qsort checking failed)
Jakub Jelinek [Tue, 3 Oct 2017 11:24:39 +0000 (13:24 +0200)]
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

7 years agore PR target/82386 (internal compiler error: Segmentation fault on 32-bit powerpc...
Jakub Jelinek [Tue, 3 Oct 2017 09:49:37 +0000 (11:49 +0200)]
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

7 years agoztest.c: #include <errno.h>.
Ian Lance Taylor [Tue, 3 Oct 2017 02:27:33 +0000 (02:27 +0000)]
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

7 years agoDaily bump.
GCC Administrator [Tue, 3 Oct 2017 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253376

7 years agoClean up more fallout from r252976.
Martin Sebor [Mon, 2 Oct 2017 23:57:19 +0000 (23:57 +0000)]
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

7 years agocharconv (__unsigned_least_t): Fix number of closing >s for !_GLIBCXX_USE_INT128.
Jakub Jelinek [Mon, 2 Oct 2017 23:28:54 +0000 (01:28 +0200)]
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

7 years agore PR c++/70570 (Assembler error "symbol already defined" from nested lambdas and...
Paolo Carlini [Mon, 2 Oct 2017 22:21:16 +0000 (22:21 +0000)]
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

7 years agore PR c++/79590 (ICE (internal compiler error) in nothrow_spec_p with generic lambda...
Paolo Carlini [Mon, 2 Oct 2017 22:02:03 +0000 (22:02 +0000)]
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

7 years agore PR c++/79005 (Use of a captured variable within nested generic lambdas provokes...
Paolo Carlini [Mon, 2 Oct 2017 21:44:55 +0000 (21:44 +0000)]
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

7 years agore PR ada/82384 (s-taprop.adb failed to compile for x32)
Eric Botcazou [Mon, 2 Oct 2017 19:38:06 +0000 (19:38 +0000)]
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

7 years agore PR fortran/82312 ([OOP] Pointer assignment to component of class variable results...
Paul Thomas [Mon, 2 Oct 2017 18:17:39 +0000 (18:17 +0000)]
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

7 years agore PR target/80210 (ICE in in extract_insn, at recog.c:2311 on ppc64 for with __built...
Peter Bergner [Mon, 2 Oct 2017 16:56:58 +0000 (11:56 -0500)]
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

7 years agotree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1 if *poffset + *pmax_size...
Jakub Jelinek [Mon, 2 Oct 2017 15:48:55 +0000 (17:48 +0200)]
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

7 years agore PR tree-optimization/82387 (wrong code at -O1 and -Os on x86_64-linux-gnu in 64...
Jakub Jelinek [Mon, 2 Oct 2017 15:44:10 +0000 (17:44 +0200)]
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

7 years agoC++17 P0067R5 std::to_chars and std::from_chars (partial)
Jonathan Wakely [Mon, 2 Oct 2017 14:06:40 +0000 (15:06 +0100)]
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

7 years agobacktrace-rename.h (backtrace_uncompress_zdebug): Define.
Jakub Jelinek [Mon, 2 Oct 2017 14:00:53 +0000 (16:00 +0200)]
backtrace-rename.h (backtrace_uncompress_zdebug): Define.

* libbacktrace/backtrace-rename.h (backtrace_uncompress_zdebug):
Define.

From-SVN: r253351

7 years agore PR c++/79180 (Nested lambda-capture causes segfault for parameter pack)
Paolo Carlini [Mon, 2 Oct 2017 12:40:26 +0000 (12:40 +0000)]
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

7 years agoHandle libbacktrace in contrib/gcc_update
Thomas Schwinge [Mon, 2 Oct 2017 11:56:50 +0000 (13:56 +0200)]
Handle libbacktrace in contrib/gcc_update

contrib/
* gcc_update (files_and_dependencies): Handle libbacktrace.

From-SVN: r253346

7 years agolibbacktrace: Support the case that clock_gettime is in librt
Thomas Schwinge [Mon, 2 Oct 2017 11:56:39 +0000 (13:56 +0200)]
libbacktrace: Support the case that clock_gettime is in librt

libbacktrace/
PR other/67165
* Makefile.am: Append the content of clock_gettime_link to
ztest_LDADD.
* configure.ac: Test for the case that clock_gettime is in librt.
* Makefile.in: Regenerate.
* configure: Likewise.

From-SVN: r253345

7 years agolibbacktrace: Conditionalize test timing on clock_gettime availability
Thomas Schwinge [Mon, 2 Oct 2017 11:56:25 +0000 (13:56 +0200)]
libbacktrace: Conditionalize test timing on clock_gettime availability

libbacktrace/
PR other/67165
* configure.ac: Check for clock_gettime.
* config.h.in: Regenerate.
* configure: Likewise.
* ztest.c (average_time, test_large): Conditionalize test timing
on clock_gettime availability.

From-SVN: r253344

7 years agore PR target/41076 ([avr] pessimal code for logical OR of 8-bit fields)
Georg-Johann Lay [Mon, 2 Oct 2017 11:31:03 +0000 (11:31 +0000)]
re PR target/41076 ([avr] pessimal code for logical OR of 8-bit fields)

PR target/41076
* confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
alternative.

From-SVN: r253343

7 years agographite-isl-ast-to-gimple.c (set_codegen_error): With -fchecking and --param graphit...
Richard Biener [Mon, 2 Oct 2017 10:04:00 +0000 (10:04 +0000)]
graphite-isl-ast-to-gimple.c (set_codegen_error): With -fchecking and --param graphite-allow-codegen-errors=0 ICE.

2017-10-02  Richard Biener  <rguenther@suse.de>

* graphite-isl-ast-to-gimple.c (set_codegen_error): With
-fchecking and --param graphite-allow-codegen-errors=0 ICE.
* params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.

* gcc.dg/graphite/graphite.exp: Add -fdump-tree-graphite-details.
* gcc.dg/graphite/id-15.c: Adjust for existing codegen errors.
* gcc.dg/graphite/id-16.c: Likewise.
* gcc.dg/graphite/pr46168.c: Likewise.
* gcc.dg/graphite/pr68756.c: Likewise.
* gcc.dg/graphite/pr69728.c: Likewise.
* gcc.dg/graphite/pr71575-2.c: Likewise.
* gcc.dg/graphite/pr77362.c: Likewise.
* gcc.dg/graphite/pr81373.c: Likewise.
* gcc.dg/graphite/run-id-pr67700-1.c: Likewise.
* gfortran.dg/graphite/interchange-1.f: Likewise.
* gfortran.dg/graphite/pr29581.f90: Likewise.
* gfortran.dg/graphite/pr42334-1.f: Likewise.
* gfortran.dg/graphite/pr42393-1.f90: Likewise.
* gfortran.dg/graphite/pr42393.f90: Likewise.
* gfortran.dg/graphite/pr47019.f: Likewise.

From-SVN: r253342

7 years agoFix mismatched precisions in tree arithmetic
Richard Sandiford [Mon, 2 Oct 2017 09:45:40 +0000 (09:45 +0000)]
Fix mismatched precisions in tree arithmetic

The tree wi:: decompose routine wasn't asserting that the requested
precision matched the tree's precision.  This could make a difference
for unsigned trees that are exactly N HWIs wide and that have the upper
bit set, since we then need an extra zero HWI when extending it to wider
precisions (as for wi::to_widest).

This patch adds the assert and fixes the fallout shown by the testsuite.
Go seems to be unaffected.

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

gcc/
* tree.h (wi::int_traits <const_tree>::decompose): Assert that the
requested precision matches the type's.
* calls.c (alloc_max_size): Calculate the new candidate size as
a widest_int and use wi::to_widest when comparing it with the
current candidate size.
* gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
zero rather than integer_zero_node.
* match.pd: Check for a no-op conversion before using wi::add
rather than after.  Use tree_to_uhwi when summing small shift
counts into an unsigned int.

gcc/c-family/
* c-warn.c (warn_tautological_bitwise_comparison): Use wi::to_widest
when combining the original unconverted comparison operands.

gcc/cp/
* constexpr.c (cxx_eval_store_expression): Use wi::to_widest
when comparing the array bounds with an ARRAY_REF index.

gcc/ada/
* gcc-interface/decl.c (annotate_value): Use wi::to_widest when
handling the form (plus/mult (convert @0) @1).

From-SVN: r253341

7 years agore PR c++/69977 (internal compiler error: Segmentation fault when using generic lambdas)
Paolo Carlini [Mon, 2 Oct 2017 09:41:36 +0000 (09:41 +0000)]
re PR c++/69977 (internal compiler error: Segmentation fault when using generic lambdas)

2017-10-02  Paolo Carlini  <paolo.carlini@oracle.com>

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

From-SVN: r253340

7 years agore PR c++/59991 (Recursive lambda capture in C++1y constexpr function template causes...
Paolo Carlini [Mon, 2 Oct 2017 09:03:32 +0000 (09:03 +0000)]
re PR c++/59991 (Recursive lambda capture in C++1y constexpr function template causes internal compiler error)

2017-10-02  Paolo Carlini  <paolo.carlini@oracle.com>

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

From-SVN: r253339

7 years agoRequire nonlocal_goto for gcc.c-torture/compile/pr82337.c
Tom de Vries [Mon, 2 Oct 2017 09:02:05 +0000 (09:02 +0000)]
Require nonlocal_goto for gcc.c-torture/compile/pr82337.c

2017-10-02  Tom de Vries  <tom@codesourcery.com>

* gcc.c-torture/compile/pr82337.c: Add
dg-require-effective-target nonlocal_goto.

From-SVN: r253338

7 years ago[AArch64] PR71307: Define union class of POINTER+FP
Richard Sandiford [Mon, 2 Oct 2017 08:11:07 +0000 (08:11 +0000)]
[AArch64] PR71307: Define union class of POINTER+FP

ALL_REGS doesn't function as a union class of POINTER_REGS and FP_REGS
since it includes the CC register as well.  REGNO_REG_CLASS (CC_REGNUM)
is NO_REGS, but of course NO_REGS rightly doesn't include CC_REGNUM.

Adding a union class for POINTER+FP allows the RA to use it as the
preferred or alternative class of a pseudo.  It also works as a
union class of GENERAL+FP for modes that aren't allowed in SP.

This is also needed for the SVE port, which adds predicate registers
to the mix.

2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

gcc/
PR target/71307
* config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class.
(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
* config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
POINTER_AND_FP_REGS.

gcc/testsuite/
PR target/71307
* gcc.target/aarch64/vect_copy_lane_1.c: Remove XFAIL.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r253337

7 years agore PR tree-optimization/82355 (ICE in outermost_loop_in_sese, at sese.c:301)
Richard Biener [Mon, 2 Oct 2017 07:32:52 +0000 (07:32 +0000)]
re PR tree-optimization/82355 (ICE in outermost_loop_in_sese, at sese.c:301)

2017-10-02  Richard Biener  <rguenther@suse.de>

PR tree-optimization/82355
* graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
a mapping for the enclosing loop but avoid generating one for
the loop tree root.
(copy_bb_and_scalar_dependences): Remove premature codegen
error on PHIs in blocks duplicated into multiple places.
* graphite-scop-detection.c
(scop_detection::stmt_has_simple_data_refs_p): For a loop not
in the region use it as loop and nest to analyze the DR in.
(try_generate_gimple_bb): Likewise.
* graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
(add_loop_constraints): For blocks in a loop not in the region
create a dimension with a single iteration.
* sese.h (gbb_loop_at_index): Remove assert.

* gcc.dg/graphite/fuse-1.c: Adjust.
* gcc.dg/graphite/fuse-2.c: Likewise.
* gcc.dg/graphite/pr82355.c: New testcase.

From-SVN: r253336

7 years agoomp-expand.c (adjust_context_scope): New function.
Kevin Buettner [Mon, 2 Oct 2017 00:27:21 +0000 (00:27 +0000)]
omp-expand.c (adjust_context_scope): New function.

* omp-expand.c (adjust_context_scope): New function.
(expand_parallel_call): Call adjust_context_scope.

From-SVN: r253335

7 years agoDaily bump.
GCC Administrator [Mon, 2 Oct 2017 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253334

7 years agoMAINTAINERS: Add a note that maintainership also includes web pages...
Gerald Pfeifer [Sun, 1 Oct 2017 18:36:37 +0000 (18:36 +0000)]
MAINTAINERS: Add a note that maintainership also includes web pages...

* MAINTAINERS: Add a note that maintainership also includes web
pages, docs, and testsuite related to that area.

From-SVN: r253330

7 years agotree-ssa-dom.c (optimize_stmt): Make this a method within the dom_opt_dom_walker...
Jeff Law [Sun, 1 Oct 2017 15:22:39 +0000 (09:22 -0600)]
tree-ssa-dom.c (optimize_stmt): Make this a method within the dom_opt_dom_walker class with direct access to...

* tree-ssa-dom.c (optimize_stmt): Make this a method within the
dom_opt_dom_walker class with direct access to private members.
Add comments.  Call test_for_singularity.
(dom_opt_dom_walker::before_dom_children): Corresponding changes.
(dom_opt_dom_walker::after_dom_children): Do not lazily initialize
m_dummy_cond anymore.
(class dom_opt_dom_walker): Initialize m_dummy_cond member in the
class ctor.
(pass_dominator:execute): Build the dummy_cond here and pass it
to the dom_opt_dom_walker ctor.
(test_for_singularity): New function.

* gcc.dg/tree-ssa/ssa-dom-simplify-1.c: New test.

2017-09-30  Paolo Carlini  <paolo.carlini@oracle.com>

From-SVN: r253329

7 years agore PR fortran/61450 (ICE in gfc_global_used())
Dominique d'Humieres [Sun, 1 Oct 2017 09:49:48 +0000 (11:49 +0200)]
re PR fortran/61450 (ICE in gfc_global_used())

2017-10-01  Dominique d'Humieres  <dominiq@lps.ens.fr>

PR fortran/61450
* parse.c (gfc_global_used): Replace the gfc_internal_error
with an error.

2017-10-01  Dominique d'Humieres  <dominiq@lps.ens.fr>

PR fortran/61450
* gfortran.dg/binding_label_tests_28.f90: New test.

From-SVN: r253328

7 years agoDaily bump.
GCC Administrator [Sun, 1 Oct 2017 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253327

7 years agoconfig.gcc (*-*-netbsd*): New variable nbsd_tm_file containing netbsd.h, netbsd-stdin...
Krister Walfridsson [Sat, 30 Sep 2017 20:45:59 +0000 (20:45 +0000)]
config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing netbsd.h, netbsd-stdint.h, and netbsd-elf.h.

2017-09-30  Krister Walfridsson  <krister.walfridsson@gmail.com>
    Maya Rashish  <coypu@sdf.org>

* config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing
netbsd.h, netbsd-stdint.h, and netbsd-elf.h.
(alpha*-*-netbsd*) Use nbsd_tm_file.
(arm*-*-netbsdelf*) Likewise.
(i[34567]86-*-netbsdelf*) Likewise.
(x86_64-*-netbsd*) Likewise.
(mips*-*-netbsd*) Likewise.
(powerpc-*-netbsd*) Likewise.
(sh*-*-netbsd*) Likewise.
(sparc-*-netbsdelf*) Likewise.
(sparc64-*-netbsd*) Likewise.
(m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16
to tm_defines.
(vax-*-netbsdelf*) Likewise.
* config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8.
(UINT_FAST8_TYPE) Likewise.
(INT_FAST16_TYPE) Check CHAR_FAST16.
(UINT_FAST16_TYPE) Likewise.

Co-Authored-By: Maya Rashish <coypu@sdf.org>
From-SVN: r253323

7 years agore PR c++/65949 (Compiler can not deduce auto type in lambda)
Paolo Carlini [Sat, 30 Sep 2017 20:42:05 +0000 (20:42 +0000)]
re PR c++/65949 (Compiler can not deduce auto type in lambda)

2017-09-30  Paolo Carlini  <paolo.carlini@oracle.com>

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

From-SVN: r253322

7 years agore PR c++/68754 (Explicitly defaulted constexpr assignment operator fails to compile)
Paolo Carlini [Sat, 30 Sep 2017 17:00:32 +0000 (17:00 +0000)]
re PR c++/68754 (Explicitly defaulted constexpr assignment operator fails to compile)

/cp
2017-09-30  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/68754
* method.c (defaulted_late_check): Early return if the defaulted
declaration does not match the expected signature.

/testsuite
2017-09-30  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/68754
* g++.dg/cpp1y/constexpr-68754.C: Move...
* g++.dg/cpp0x/constexpr-68754.C: ... here, adjust.

From-SVN: r253321

7 years agore PR target/82361 (Useless "mov eax, eax" in generated code)
Jakub Jelinek [Sat, 30 Sep 2017 08:10:15 +0000 (10:10 +0200)]
re PR target/82361 (Useless "mov eax, eax" in generated code)

PR target/82361
* config/i386/i386.md
(TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split.
(divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1,
*divmodsi4_zext_2): New define_insn_and_split.
(*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn.
(TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split.
(udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1,
*udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2):
New define_insn_and_split.
(*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn.
* config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or
operands[1] having DImode when mode is SImode.

* gcc.target/i386/pr82361-1.c: New test.
* gcc.target/i386/pr82361-2.c: New test.

From-SVN: r253317

7 years agoi386.c (ix86_split_idivmod): Use mode instead of always SImode for DIV and MOD in...
Jakub Jelinek [Sat, 30 Sep 2017 07:59:27 +0000 (09:59 +0200)]
i386.c (ix86_split_idivmod): Use mode instead of always SImode for DIV and MOD in REG_EQUAL notes.

* config/i386/i386.c (ix86_split_idivmod): Use mode instead of
always SImode for DIV and MOD in REG_EQUAL notes.

From-SVN: r253316

7 years agoDaily bump.
GCC Administrator [Sat, 30 Sep 2017 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r253315

7 years agoOrder some filenames in a changelog entry.
Segher Boessenkool [Fri, 29 Sep 2017 22:49:24 +0000 (00:49 +0200)]
Order some filenames in a changelog entry.

From-SVN: r253311

7 years agoc-attribs.c (handle_noipa_attribute): Don't add "stack_protect" attribute.
Jakub Jelinek [Fri, 29 Sep 2017 21:06:28 +0000 (23:06 +0200)]
c-attribs.c (handle_noipa_attribute): Don't add "stack_protect" attribute.

* c-attribs.c (handle_noipa_attribute): Don't add "stack_protect"
attribute.

From-SVN: r253308

7 years agore PR middle-end/82319 (ICE in generic_simplify_148, at generic-match.c:6436)
Yury Gribov [Fri, 29 Sep 2017 19:40:16 +0000 (19:40 +0000)]
re PR middle-end/82319 (ICE in generic_simplify_148, at generic-match.c:6436)

2017-09-29  Yury Gribov  <tetra2005@gmail.com>

PR middle-end/82319
gcc/
* match.pd: Fix handling of NaNs in pattern.

gcc/testsuite/
* c-c++/common/pr57371-4.c: Test NaN comparisons.

From-SVN: r253307

7 years agoc-ada-spec.c (to_ada_name): Add index parameter.
Eric Botcazou [Fri, 29 Sep 2017 18:51:00 +0000 (18:51 +0000)]
c-ada-spec.c (to_ada_name): Add index parameter.

* c-ada-spec.c (to_ada_name): Add index parameter.
(pp_ada_tree_identifier): Likewise.
(dump_ada_macros): Adjust call to to_ada_name.
(struct overloaded_name_hash): New type.
(struct overloaded_name_hasher): Likewise.
(overloaded_names): New hash table.
(compute_overloading_index): New function.
(dump_ada_decl_name): Call it and pass the result to
pp_ada_tree_identifier.
(dump_ada_double_name): Adjust calls to pp_ada_tree_identifier.
(dump_ada_function_declaration): Likewise.
(dump_generic_ada_node): Likewise.
(print_constructor): Likewise.
(print_destructor): Likewise.
(dump_ada_specs): Delete overloaded_names table.

From-SVN: r253306

7 years agosbitmap.c (bitmap_bit_in_range_p): New function.
Jeff Law [Fri, 29 Sep 2017 18:20:41 +0000 (12:20 -0600)]
sbitmap.c (bitmap_bit_in_range_p): New function.

* sbitmap.c (bitmap_bit_in_range_p): New function.
* sbitmap.h (bitmap_bit_in_range_p): Prototype.
* tree-ssa-dse.c (live_bytes_read): New function.
(dse_classify_store): Ignore reads of dead bytes.

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

From-SVN: r253305

7 years agoc-ada-spec.c (max_ada_macros): Move around.
Eric Botcazou [Fri, 29 Sep 2017 18:17:47 +0000 (18:17 +0000)]
c-ada-spec.c (max_ada_macros): Move around.

* c-ada-spec.c (max_ada_macros): Move around.
(store_ada_macro_index): Likewise.
(source_file): Rename into...
(macro_source_file): ...this.
(count_ada_macro): Move around.
(store_ada_macro): Likewise.
(compare_macro): Likewise.
(print_ada_macros): Merge in...
(dump_ada_macros): ...this.
(source_file_base): Rename into...
(current_source_file): ...this.
(print_comment): Move around.
(dump_ada_nodes): Call dump_ada_declaration directly.
(struct with): Change type of limited field to bool.
(append_withs): Change type of limited_access parameter to bool.
(pp_ada_tree_identifie): Likewise.
(dump_ada_decl_nam): Likewise.
(dump_generic_ada_node): Likewise.  Do not print the return type.
(to_ada_name): Change type of space_found parameter to bool.
(dump_ada_function_declaration): Return void and change type of
parameters to bool.  Also print the return type for a function.
(print_ada_methods): Rename into...
(dump_ada_methods): ...this.
(print_ada_declaration): Rename into ...
(dump_ada_declaration): ...this.  Do not print the return type.
(print_ada_struct_decl): Rename into...
(dump_ada_struct_decl): ...this.

From-SVN: r253304

7 years agoi386.c (ix86_adjust_stack_and_probe_stack_clash): Fix typos and whitespace errors.
Jeff Law [Fri, 29 Sep 2017 18:11:40 +0000 (12:11 -0600)]
i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix typos and whitespace errors.

* config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix
typos and whitespace errors.
* config/i386/predicates.md (address_no_seg_operand): Likewise.
* config/s390/s390.c (s390_emit_prologue): Likewise.

From-SVN: r253303

7 years agoP0683R1 - default member initializers for bit-fields
Jakub Jelinek [Fri, 29 Sep 2017 17:53:50 +0000 (19:53 +0200)]
P0683R1 - default member initializers for bit-fields

P0683R1 - default member initializers for bit-fields
cp/
* cp-tree.h (grokbitfield): Add INIT parameter.
* parser.c (cp_parser_constant_expression): Add STRICT_P argument,
if true, parse a conditional-expression rather than
assignment-expression.
(cp_parser_member_declaration): For C++11 and later pass true
as STRICT_P to cp_parser_constant_expression.  Parse C++2A bitfield
NSDMIs.  Adjust grokbitfield caller.  Handle DECL_INITIAL also for
DECL_C_BIT_FIELDs.
(cp_parser_objc_class_ivars): Adjust grokbitfield caller.
* class.c (check_field_decl): Recurse even for DECL_C_BIT_FIELDs.
(check_field_decls): Call check_field_decl even for DECL_C_BIT_FIELDs.
* decl2.c (grokbitfield): Add INIT parameter, pass it to
cp_finish_decl.
* pt.c (tsubst_decl): Handle DECL_INITIAL for all FIELD_DECLs, not
just non-bitfields.
testsuite/
* g++.dg/ext/bitfield6.C: New test.
* g++.dg/cpp2a/bitfield1.C: New test.
* g++.dg/cpp2a/bitfield2.C: New test.
* g++.dg/cpp2a/bitfield3.C: New test.

From-SVN: r253302

7 years agoc-attribs.c (handle_packed_attribute): Test DECL_C_BIT_FIELD rather than DECL_INITIAL.
Jakub Jelinek [Fri, 29 Sep 2017 17:45:32 +0000 (19:45 +0200)]
c-attribs.c (handle_packed_attribute): Test DECL_C_BIT_FIELD rather than DECL_INITIAL.

c-family/
* c-attribs.c (handle_packed_attribute): Test DECL_C_BIT_FIELD
rather than DECL_INITIAL.
(common_handle_aligned_attribute): Likewise.
c/
* c-decl.c (grokfield): Use SET_DECL_C_BIT_FIELD here if
width is non-NULL.
(finish_struct): Test DECL_C_BIT_FIELD instead of DECL_INITIAL,
don't SET_DECL_C_BIT_FIELD here.
cp/
* class.c (check_bitfield_decl): Retrieve and clear width from
DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL.
(check_field_decls): Test DECL_BIT_FIELD_REPRESENTATIVE rather than
DECL_INITIAL.
(remove_zero_width_bit_fields): Adjust comment.
* decl2.c (grokbitfield): Stash width into
DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL.
* pt.c (tsubst_decl): For DECL_C_BIT_FIELD, tsubst_expr
DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL for width.
objc/
* objc-act.c (check_ivars, gen_declaration): For OBJCPLUS look at
DECL_BIT_FIELD_REPRESENTATIVE rather than DECL_INITIAL.

From-SVN: r253301

7 years agore PR target/81481 (Spills %xmm to stack in glibc strspn SSE 4.2 variant)
Vladimir Makarov [Fri, 29 Sep 2017 17:39:58 +0000 (17:39 +0000)]
re PR target/81481 (Spills %xmm to stack in glibc strspn SSE 4.2 variant)

2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>

PR target/81481
* ira-costs.c (scan_one_insn): Don't take into account PIC equiv
with a symbol for LRA.

2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>

PR target/81481
* gcc.target/i386/pr81481.c: New.

From-SVN: r253300

7 years agore PR rtl-optimization/82338 (valgrind error in inherit_in_ebb)
Vladimir Makarov [Fri, 29 Sep 2017 17:15:24 +0000 (17:15 +0000)]
re PR rtl-optimization/82338 (valgrind error in inherit_in_ebb)

2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/82338
* lra-constraints.c (inherit_in_ebb): Check usage_insns check.

From-SVN: r253299

7 years ago[BRIGFE] Fix crash with calls with more than 4 args.
Henry Linjamäki [Fri, 29 Sep 2017 16:57:18 +0000 (16:57 +0000)]
[BRIGFE] Fix crash with calls with more than 4 args.

Also fix a misexecution issue with kernels that have
both unexpanded ID functions and calls to subfunctions.

From-SVN: r253298

7 years agoxcoff.c: Initial support for DWARF debug sections in XCOFF.
Tony Reix [Fri, 29 Sep 2017 16:37:39 +0000 (16:37 +0000)]
xcoff.c: Initial support for DWARF debug sections in XCOFF.

* xcoff.c: Initial support for DWARF debug sections in XCOFF.
(STYP_DWARF, SSUBTYP_DW*): Define.
(enum dwarf_section): Define.
(struct dwsect_info): Define.
(xcoff_add): Look for DWARF sections, pass them to
backtrace_dwarf_add.

From-SVN: r253297

7 years agoswaps-p8-30.c: Exchange the order of dg-do and dg-require-effective-target directives...
Kelvin Nilsen [Fri, 29 Sep 2017 16:07:55 +0000 (16:07 +0000)]
swaps-p8-30.c: Exchange the order of dg-do and dg-require-effective-target directives to...

gcc/testsuite/ChangeLog:

2017-09-29  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* gcc.target/powerpc/swaps-p8-30.c: Exchange the order of dg-do
and dg-require-effective-target directives to correct testing
behavior.
* gcc.target/powerpc/swaps-p8-32.c: Likewise.
* gcc.target/powerpc/swaps-p8-41.c: Likewise.
* gcc.target/powerpc/swaps-p8-34.c: Likewise.
* gcc.target/powerpc/swaps-p8-43.c: Likewise.
* gcc.target/powerpc/swaps-p8-36.c: Likewise.
* gcc.target/powerpc/swaps-p8-45.c: Likewise.
* gcc.target/powerpc/swaps-p8-29.c: Likewise.
* gcc.target/powerpc/swaps-p8-38.c: Likewise.
* gcc.target/powerpc/swaps-p8-31.c: Likewise.
* gcc.target/powerpc/swaps-p8-40.c: Likewise.
* gcc.target/powerpc/swaps-p8-33.c: Likewise.
* gcc.target/powerpc/swaps-p8-42.c: Likewise.
* gcc.target/powerpc/swaps-p8-35.c: Likewise.
* gcc.target/powerpc/swaps-p8-44.c: Likewise.
* gcc.target/powerpc/swaps-p8-28.c: Likewise.
* gcc.target/powerpc/swaps-p8-37.c: Likewise.
* gcc.target/powerpc/swaps-p8-39.c: Likewise.

From-SVN: r253296

7 years agoqsort comparator consistency checking
Alexander Monakov [Fri, 29 Sep 2017 16:00:15 +0000 (19:00 +0300)]
qsort comparator consistency checking

* genmodes.c (calc_wider_mode): Suppress qsort macro.
* system.h [CHECKING_P] (qsort): Redirect to qsort_chk.
(qsort_chk): Declare.
* vec.c [CHECKING_P] (qsort_chk_error): New static function.
(qsort_chk): New function.

From-SVN: r253295

7 years ago[multiple changes]
Pierre-Marie de Rodat [Fri, 29 Sep 2017 15:33:23 +0000 (15:33 +0000)]
[multiple changes]

2017-09-29  Bob Duff  <duff@adacore.com>

* exp_ch6.adb (Expand_Call_Helper): Replace with code more similar to
what we had before.
(Make_Build_In_Place_Call_In_Object_Declaration): Back out previous
change. Set the Etype in the class-wide case. This fixes a regression
in the libadalang test suite.

2017-09-29  Joel Brobecker  <brobecker@adacore.com>

* doc/gnat_ugn/building_executable_programs_with_gnat.rst,
doc/gnat_ugn/the_gnat_compilation_model.rst: Avoid use of single colon
in comment markup.
* gnat_ugn.texi: Regenerate.

2017-09-29  Justin Squirek  <squirek@adacore.com>

* ali-util.adb, comperr.adb, cprint.adb, errout.adb, fmap.adb,
fname-sf.adb, frontend.adb, lib-xref-spark_specific.adb, gnat1drv.adb,
gnatls.adb, lib.adb, lib-load.adb, lib-writ.adb, prepcomp.adb,
sinput-d.adb, sinput-l.adb, sprint.adb, targparm.adb: Update comparison
for checking source file status and error message and/or call to
Read_Source_File.
* libgnat/s-os_lib.ads: Add new potential value constant for
uninitialized file descriptors.
* osint.adb, osint.ads (Read_Source_File): Add extra parameter to
return result of IO to encompass a read access failure in addition to a
file-not-found error.

From-SVN: r253294

7 years agore PR tree-optimization/82337 (ICE: SSA corruption at tree-ssa-coalesce.c:1010)
Bill Schmidt [Fri, 29 Sep 2017 14:55:14 +0000 (14:55 +0000)]
re PR tree-optimization/82337 (ICE: SSA corruption at tree-ssa-coalesce.c:1010)

[gcc]

2017-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/82337
* gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
phi definition if the PHI result appears in an abnormal PHI.
(find_basis_for_base_expr): Don't record a basis if the LHS of the
basis appears in an abnormal PHI.

[gcc]

2017-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/82337
* gcc.c-torture/compile/pr82337.c: New file.

From-SVN: r253293

7 years agodebug/elf: support 32-bit SPARC relocs
Ian Lance Taylor [Fri, 29 Sep 2017 14:35:58 +0000 (14:35 +0000)]
debug/elf: support 32-bit SPARC relocs

    Patch by Rainer Orth.

    Reviewed-on: https://go-review.googlesource.com/67111

From-SVN: r253292

7 years agomksysinfo: strip locale structs
Ian Lance Taylor [Fri, 29 Sep 2017 14:14:40 +0000 (14:14 +0000)]
mksysinfo: strip locale structs

    We don't need them, and this fixes the build when using uClibc-ng
    1.0.26 as originally reported at
    https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01930.html

    Reviewed-on: https://go-review.googlesource.com/67110

From-SVN: r253291

7 years agoexp_ch6.adb (Expand_Call_Helper): Handle case of build-in-place functions returning...
Bob Duff [Fri, 29 Sep 2017 13:48:57 +0000 (13:48 +0000)]
exp_ch6.adb (Expand_Call_Helper): Handle case of build-in-place functions returning nonlimited types.

2017-09-29  Bob Duff  <duff@adacore.com>

* exp_ch6.adb (Expand_Call_Helper): Handle case of build-in-place
functions returning nonlimited types. Allow for qualified expressions
and type conversions.
(Expand_N_Extended_Return_Statement): Correct the computation of
Func_Bod to allow for child units.
(Expand_Simple_Function_Return): Remove assumption that b-i-p implies
limited (initialization of In_Place_Expansion), and implies >= Ada
2005.
(Is_Build_In_Place_Result_Type): New function to accompany
Is_Build_In_Place_Function and Is_Build_In_Place_Function_Call, because
sometimes we just have the type on our hands, not the function.  For
now, does the same thing as the old version, so build-in-place is
disabled for nonlimited types, except that you can use -gnatd.9 to
enable it.
* exp_ch6.ads (Is_Build_In_Place_Result_Type): New function to
accompany Is_Build_In_Place_Function and
Is_Build_In_Place_Function_Call, because sometimes we just have the
type on our hands, not the function.
(Make_Build_In_Place_Call_In_...): Handle nonlimited build-in-place
cases.
(Make_Build_In_Place_Call_In_Object_Declaration): Remove the
questionable code at the end that was setting the Etype.
* exp_aggr.adb (Is_Build_In_Place_Aggregate_Return): New function to
determine whether "return (...agg...);" is returning from a
build-in-place function.
(Initialize_Ctrl_Array_Component, Initialize_Ctrl_Record_Component):
Remove assumption that b-i-p implies limited (initialization of
In_Place_Expansion).
(Build_Record_Aggr_Code): AI-287: fix comment; it can't be wrapped in
an unchecked conversion.  Add assertions.
(Convert_Aggr_In_Object_Decl): Establish_Transient_Scope -- no need for
secondary stack here, just because the type needs finalization.  That
code is obsolete.
(Convert_To_Assignments): Only set Unc_Decl if Nkind (N) = N_Aggregate.
For "return (...agg...);" don't assume b-i-p implies limited.
Needs_Finalization does not imply secondary stack.
(Expand_Array_Aggregate): Named notation.  Reverse the sense of
Component_OK_For_Backend -- more readability with fewer double
negatives.
* exp_attr.adb (Expand_N_Attribute_Reference): Remove assumptions that
b-i-p implies >= Ada 2005.
* exp_ch3.adb (Expand_N_Object_Declaration): Remove assumptions that
b-i-p implies >= Ada 2005.  Remove Adjust if we're building the return
object of an extended return statement in place.
* exp_ch4.adb (Expand_Allocator_Expression, Expand_N_Indexed_Component,
Expand_N_Selected_Component, Expand_N_Slice): Remove assumptions that
b-i-p implies >= Ada 2005.
* exp_ch5.adb (Expand_N_Assignment_Statement): Remove assumption that
b-i-p implies >= Ada 2005.
* exp_ch7.adb: Comment fix.
* exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Remove
assumptions that b-i-p implies >= Ada 2005.
* exp_disp.adb (Expand_Interface_Actuals): Remove assumptions that
b-i-p implies >= Ada 2005.
* exp_util.adb (Build_Allocate_Deallocate_Proc): Look at Storage_Pool
(Expr), in case Pool_Id is not set.
(Initialized_By_Aliased_BIP_Func_Call): Handle case where the call is
qualified or converted.
(Is_Secondary_Stack_BIP_Func_Call): Don't check if Nkind (Selector_Name
(Param)) = N_Identifier; that's all it could be.
* sinfo.ads: Comment fixes.
* snames.ads-tmpl: Comment fixes.
* debug.adb: Add flag gnatd.9, to enable the build-in-place machinery.

From-SVN: r253290

7 years agoAdd missing ChangeLog entries for previous commit
Javier Miranda [Fri, 29 Sep 2017 13:26:55 +0000 (13:26 +0000)]
Add missing ChangeLog entries for previous commit

From-SVN: r253289

7 years ago[multiple changes]
Pierre-Marie de Rodat [Fri, 29 Sep 2017 13:22:45 +0000 (13:22 +0000)]
[multiple changes]

2017-09-29  Justin Squirek  <squirek@adacore.com>

* sem_ch8.adb (Analyze_Use_Package): Add sanity check to avoid
circularities in the use-clause chain.

2017-09-29  Javier Miranda  <miranda@adacore.com>

* sem_ch3.adb (Replace_Components): Update references to discriminants
located in variant parts inherited from the parent type.

2017-09-29  Javier Miranda  <miranda@adacore.com>

* exp_ch5.adb (Expand_Assign_Record): Do not generate code to copy
discriminants if the target is an Unchecked_Union record type.

2017-09-29  Ed Schonberg  <schonberg@adacore.com>

* sem_aggr.adb (Resolve_Record_Aggregate): Reject the use of an
iterated component association in an aggregate for a record type.

2017-09-29  Piotr Trojanek  <trojanek@adacore.com>

* make.adb: Minor whitespace fixes.
* libgnat/s-resfil.ads: Minor reformatting.

From-SVN: r253288

7 years agore PR fortran/25071 (dummy argument larger than actual argument)
Dominique d'Humieres [Fri, 29 Sep 2017 13:19:21 +0000 (15:19 +0200)]
re PR fortran/25071 (dummy argument larger than actual argument)

2017-09-29  Dominique d'Humieres  <dominiq@lps.ens.fr>

PR fortran/25071
* gfortran.dg/argument_checking_3.f90: Change warnings to errors.
* gfortran.dg/argument_checking_4.f90: Likewise.
* gfortran.dg/argument_checking_5.f90: Likewise.
* gfortran.dg/argument_checking_6.f90: Likewise.
* gfortran.dg/argument_checking_10.f90: Likewise.
* gfortran.dg/argument_checking_13.f90: Likewise.
* gfortran.dg/argument_checking_15.f90: Likewise.
* gfortran.dg/argument_checking_18.f90: Likewise.
* gfortran.dg/gomp/udr8.f90: Likewise.
* gfortran.dg/warn_argument_mismatch_1.f90: Add -std=legacy to
the dg-options.

From-SVN: r253287

7 years agore PR fortran/25071 (dummy argument larger than actual argument)
Dominique d'Humieres [Fri, 29 Sep 2017 13:15:26 +0000 (15:15 +0200)]
re PR fortran/25071 (dummy argument larger than actual argument)

2017-09-29  Dominique d'Humieres  <dominiq@lps.ens.fr>

PR fortran/25071
* interface.c (compare_actual_formal): Change warnings to errors
when "Actual argument contains too few elements for dummy
argument", unless -std=legacy is used.

From-SVN: r253286

7 years ago[multiple changes]
Pierre-Marie de Rodat [Fri, 29 Sep 2017 13:04:47 +0000 (13:04 +0000)]
[multiple changes]

2017-09-29  Justin Squirek  <squirek@adacore.com>

* sem_ch8.adb (Mark_Use_Clauses): Add recursive call to properly handle
all cases related to marking entity identifiers.

2017-09-29  Vasiliy Fofanov  <fofanov@adacore.com>

* adaint.c (win32_wait): Properly handle error and take into account
the WIN32 limitation on the number of simultaneous wait objects.

2017-09-29  Vasiliy Fofanov  <fofanov@adacore.com>

* cal.c: Minor proofreading.

2017-09-29  Vasiliy Fofanov  <fofanov@adacore.com>

* doc/gnat_ugn/gnat_utility_programs.rst: Minor formatting fix.
* gnat_ugn.texi: Regenerate.

2017-09-29  Bob Duff  <duff@adacore.com>

* lib-xref.ads: Comment fix.

2017-09-29  Bob Duff  <duff@adacore.com>

* exp_aggr.adb: Remove calls to Set_No_Ctrl_Actions for discriminants.
Discriminants can't need finalization.

2017-09-29  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Analyze_Expression_Function): Do not emit freeze nodes
for types in expression if the function is within a generic unit.
* sem_res.adb (Resolve): In a generic context do not freeze an
expression, unless it is an entity. This exception is solely for the
purpose of detecting illegal uses of deferred constants in generic
units.
* sem_res.adb: Minor reformatting.

From-SVN: r253285

7 years ago[multiple changes]
Pierre-Marie de Rodat [Fri, 29 Sep 2017 12:53:24 +0000 (12:53 +0000)]
[multiple changes]

2017-09-29  Justin Squirek  <squirek@adacore.com>

* sem_ch8.adb (Note_Redundant_Use): Add guard to protect against false
redundant warnings.

2017-09-29  Yannick Moy  <moy@adacore.com>

* sinput-c.adb: Remove unused with-clause on Ada.Unchecked_Conversion.

2017-09-29  Eric Botcazou  <ebotcazou@adacore.com>

* doc/gnat_rm/representation_clauses_and_pragmas.rst: Minor rewording.
* doc/gnat_rm/implementation_defined_pragmas.rst (Optimize_Alignment):
Document the effect of pragma Optimize_Alignment (Space) on non-packed
record types.
* gnat_rm.texi: Regenerate.

From-SVN: r253284

7 years ago2017-09-29 Richard Biener <rguenther@suse.de>
Richard Biener [Fri, 29 Sep 2017 08:54:01 +0000 (08:54 +0000)]
2017-09-29  Richard Biener  <rguenther@suse.de>

* graphite-isl-ast-to-gimple.c
(translate_isl_ast_to_gimple::set_codegen_error): New function.
(binary_op_to_tree): Use it.
(get_rename_from_scev): Likewise.
(copy_loop_phi_nodes): Likewise.
(copy_bb_and_scalar_dependences): Likewise.
(translate_pending_phi_nodes): Likewise.

From-SVN: r253282