platform/upstream/gcc.git
7 years agore PR tree-optimization/49498 (gcc.dg/uninit-pred-8_b.c bogus warning (predicate...
Jeff Law [Fri, 31 Mar 2017 15:26:18 +0000 (09:26 -0600)]
re PR tree-optimization/49498 (gcc.dg/uninit-pred-8_b.c bogus warning (predicate analysis bugs))

PR tree-optimization/49498
* gcc.dg/uninit-pred-8_b.c: Reenable DOM.

From-SVN: r246618

7 years agoextend.texi (PowerPC AltiVec Built-in Functions): Add reference to the OpenPOWER...
Bill Schmidt [Fri, 31 Mar 2017 15:04:34 +0000 (15:04 +0000)]
extend.texi (PowerPC AltiVec Built-in Functions): Add reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.

2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.

From-SVN: r246617

7 years agoFix description of Wendif-labels (PR documentation/78732)
David Malcolm [Fri, 31 Mar 2017 14:24:27 +0000 (14:24 +0000)]
Fix description of Wendif-labels (PR documentation/78732)

gcc/c-family/ChangeLog:
PR documentation/78732
* c.opt (Wendif-labels): Fix description to refer to
#else rather than #elif.

From-SVN: r246616

7 years agoFix extraction from odd-numbered MSA registers
Matthew Fortune [Fri, 31 Mar 2017 09:21:57 +0000 (09:21 +0000)]
Fix extraction from odd-numbered MSA registers

This fixes a build-failure with gcc.c-torture/execute/20050604-1.c when
using -mabi=32 -mmsa -mno-odd-spreg.

gcc/
* config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
extraction from odd-numbered MSA register.

From-SVN: r246613

7 years agopr71347.c: Put back XFAIL on sparc.
Richard Biener [Fri, 31 Mar 2017 09:18:18 +0000 (09:18 +0000)]
pr71347.c: Put back XFAIL on sparc.

2017-03-31  Richard Biener  <rguenther@suse.de>

* gcc.dg/tree-ssa/pr71347.c: Put back XFAIL on sparc.

From-SVN: r246612

7 years agopr71347.c: Put back XFAIL.
Richard Biener [Fri, 31 Mar 2017 09:14:52 +0000 (09:14 +0000)]
pr71347.c: Put back XFAIL.

2017-03-31  Richard Biener  <rguenther@suse.de>

* gcc.dg/tree-ssa/pr71347.c: Put back XFAIL.

From-SVN: r246611

7 years agore PR libstdc++/80251 (Is the is_aggregate meta function missing?)
Jakub Jelinek [Fri, 31 Mar 2017 06:40:39 +0000 (08:40 +0200)]
re PR libstdc++/80251 (Is the is_aggregate meta function missing?)

PR libstdc++/80251
c-family/
* c-common.h (enum rid): Add RID_IS_AGGREGATE.
* c-common.c (c_common_reswords): Add __is_aggregate trait.
cp/
* cp-tree.h (enum cp_trait_kind): Add CPTK_IS_AGGREGATE.
* cxx-pretty-print.c (pp_cxx_trait_expression): Handle
CPTK_IS_AGGREGATE.
* semantics.c (trait_expr_value): Handle CPTK_IS_AGGREGATE.
Remove extraneous parens.
(finish_trait_expr): Handle CPTK_IS_AGGREGATE.
* parser.c (cp_parser_primary_expression): Handle RID_IS_AGGREGATE.
(cp_parser_trait_expr): Likewise.
testsuite/
* g++.dg/ext/is_aggregate.C: New test.

From-SVN: r246609

7 years agore PR middle-end/80173 (ICE in store_bit_field_1, at expmed.c:787)
Jakub Jelinek [Fri, 31 Mar 2017 06:38:35 +0000 (08:38 +0200)]
re PR middle-end/80173 (ICE in store_bit_field_1, at expmed.c:787)

PR middle-end/80173
* expmed.c (store_bit_field_1): Don't attempt to create
a word subreg out of hard registers wider than word if they
have HARD_REGNO_NREGS of 1 for their mode.

* gcc.target/i386/pr80173.c: New test.

From-SVN: r246608

7 years agore PR middle-end/80163 (ICE on hopefully valid code)
Jakub Jelinek [Fri, 31 Mar 2017 06:32:46 +0000 (08:32 +0200)]
re PR middle-end/80163 (ICE on hopefully valid code)

PR middle-end/80163
* varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
conversions to integer types wider than word and pointer.

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

From-SVN: r246607

7 years agore PR debug/80025 (ICE w/ -O2 (-O3, -Ofast) -g -ftracer (infinite recursion in rtx_eq...
Jakub Jelinek [Fri, 31 Mar 2017 06:05:47 +0000 (08:05 +0200)]
re PR debug/80025 (ICE w/ -O2 (-O3, -Ofast) -g -ftracer (infinite recursion in rtx_equal_for_cselib_1))

PR debug/80025
* cselib.h (rtx_equal_for_cselib_1): Add depth argument.
(rtx_equal_for_cselib_p): Pass 0 to it.
* cselib.c (cselib_hasher::equal): Likewise.
(rtx_equal_for_cselib_1): Add depth argument.  If depth
is 128, don't look up VALUE locs and punt.  Increment
depth in recursive calls when walking VALUE locs.

* gcc.dg/torture/pr80025.c: New test.

From-SVN: r246606

7 years agogcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
Bernd Edlinger [Fri, 31 Mar 2017 02:52:39 +0000 (02:52 +0000)]
gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.

2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
        (make_gcov_file_name): Use the canonical path name for generating
        the MD5 value.
        (read_line): Fix handling of files with ascii null bytes.

From-SVN: r246605

7 years agoDaily bump.
GCC Administrator [Fri, 31 Mar 2017 00:16:23 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r246604

7 years agoFix ICE when expanding MSA constant vectors with replicated values
Matthew Fortune [Thu, 30 Mar 2017 22:47:38 +0000 (22:47 +0000)]
Fix ICE when expanding MSA constant vectors with replicated values

gcc/
* config/mips/mips.c (mips_expand_vector_init): Create
a const_vector to initialise a vector register instead of
using a const_int.

From-SVN: r246601

7 years agoFix pr52125.c test when built as -mno-abicalls -mabi=64
Matthew Fortune [Thu, 30 Mar 2017 21:59:20 +0000 (21:59 +0000)]
Fix pr52125.c test when built as -mno-abicalls -mabi=64

gcc/testsuite/
* gcc.target/mips/pr52125.c: Add -msym32.

From-SVN: r246600

7 years agore PR translation/80189 (gimplify.c: check whether parallel/task/teams should be...
Jakub Jelinek [Thu, 30 Mar 2017 20:31:40 +0000 (22:31 +0200)]
re PR translation/80189 (gimplify.c: check whether parallel/task/teams should be translated)

PR translation/80189
* gimplify.c (omp_default_clause): Use %qs instead of %s in
diagnostic messages.
testsuite/
* g++.dg/gomp/predetermined-1.C: Adjust expected diagnostics.
* g++.dg/gomp/sharing-1.C: Likewise.
* gfortran.dg/gomp/pr44536.f90: Likewise.
* gfortran.dg/gomp/pr44036-1.f90: Likewise.
* gfortran.dg/gomp/sharing-3.f90: Likewise.
* gfortran.dg/gomp/crayptr3.f90: Likewise.
* gfortran.dg/gomp/pr33439.f90: Likewise.
* gfortran.dg/gomp/appendix-a/a.24.1.f90: Likewise.
* gfortran.dg/gomp/sharing-1.f90: Likewise.
* gfortran.dg/gomp/sharing-2.f90: Likewise.
* gcc.dg/gomp/appendix-a/a.24.1.c: Likewise.
* gcc.dg/gomp/sharing-1.c: Likewise.

From-SVN: r246599

7 years ago* env.c (initialize_env): Initialize stacksize to 0.
Jakub Jelinek [Thu, 30 Mar 2017 20:29:20 +0000 (22:29 +0200)]
* env.c (initialize_env): Initialize stacksize to 0.

From-SVN: r246598

7 years agore PR target/80246 (Builtin's for POWER's dxex[q] and diex[q] use the wrong types)
Peter Bergner [Thu, 30 Mar 2017 19:57:20 +0000 (14:57 -0500)]
re PR target/80246 (Builtin's for POWER's dxex[q] and diex[q] use the wrong types)

gcc/
PR target/80246
* config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
(dfp_diex_<mode>): Update mode of operand 1.
* doc/extend.texi (dxex, dxexq): Document change to return type.
(diex, diexq): Document change to argument type.

gcc/testsuite/
PR target/80246
* gcc.target/powerpc/dfp-builtin-1.c: Remove unneeded dg-skip-if for
Darwin and SPE.
(dxex, dxexq): Update return type.
(diex, diexq): Update argument type.
* gcc.target/powerpc/pr80246.c: New test.

From-SVN: r246594

7 years ago[PR 77333] Fixup fntypes of gimple calls of clones
Martin Jambor [Thu, 30 Mar 2017 13:51:02 +0000 (15:51 +0200)]
[PR 77333] Fixup fntypes of gimple calls of clones

2017-03-30  Martin Jambor  <mjambor@suse.cz>

PR ipa/77333
* cgraph.h (cgraph_build_function_type_skip_args): Declare.
* cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
it reflects the signature changes performed at the callee side.
* cgraphclones.c (build_function_type_skip_args): Make public, renamed
to cgraph_build_function_type_skip_args.
(build_function_decl_skip_args): Adjust call to the above function.

testsuite/
* g++.dg/ipa/pr77333.C: New test.

From-SVN: r246589

7 years agore PR target/80206 (ICE in extract_insn, at recog.c:2327)
Jakub Jelinek [Thu, 30 Mar 2017 13:29:28 +0000 (15:29 +0200)]
re PR target/80206 (ICE in extract_insn, at recog.c:2327)

PR target/80206
* config/i386/sse.md
(<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
register as dest whenever it is a MEM not rtx_equal_p to the
corresponding dup operand, and when forcing into reg move the
reg into the memory afterwards.
(<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
for the force_reg mode.
(avx512vl_vextractf128<mode>): Use register as dest either
always when a MEM, or when it is a MEM not rtx_equal_p to the
corresponding dup operand, or even not when it is a CONST_VECTOR
depending on the mode and lo vs. hi.
(avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
parens.
(avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
(<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
Likewise.  Require that operands[2] is even.
(<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
Remove extraneous parens.  Require that operands[2] is a multiple
of 4.
(vec_extract_lo_<mode><mask_name>): Don't bother testing if
operands[0] is a MEM if <mask_applied>, the predicates/constraints
disallow memory then.

* gcc.target/i386/pr80206.c: New test.

From-SVN: r246588

7 years agore PR tree-optimization/77498 (Performance drop after r239414 on spec2000/172mgrid)
Richard Biener [Thu, 30 Mar 2017 07:15:39 +0000 (07:15 +0000)]
re PR tree-optimization/77498 (Performance drop after r239414 on spec2000/172mgrid)

2017-03-30  Richard Biener  <rguenther@suse.de>

PR tree-optimization/77498
* tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
to non-constants over backedges.

* gfortran.dg/pr77498.f: New testcase.

From-SVN: r246583

7 years agoDaily bump.
GCC Administrator [Thu, 30 Mar 2017 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r246581

7 years agore PR c/79730 (ICE tree check: expected var_decl, have function_decl in finish_decl...
Marek Polacek [Wed, 29 Mar 2017 23:40:36 +0000 (23:40 +0000)]
re PR c/79730 (ICE tree check: expected var_decl, have function_decl in finish_decl, at c/c-decl.c:5063)

PR c/79730
* c-decl.c (finish_decl): Check VAR_P.

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

From-SVN: r246578

7 years agore PR fortran/78670 ([F03] Incorrect file position with namelist read under DTIO)
Jerry DeLisle [Wed, 29 Mar 2017 21:37:45 +0000 (21:37 +0000)]
re PR fortran/78670 ([F03] Incorrect file position with namelist read under DTIO)

2017-03-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/78670
* io/list_read.c (nml_get_obj_data): Delete code which calls the
child read procedure. (nml_read_obj): Insert the code which
calls the child procedure. Don't need to touch nodes if using
dtio since parent will not be traversing the components.

PR libgfortran/78670
* gfortran.dg/dtio_25.f90: Use 'a1' format when trying to read
a character of length 1. Update test for success.
* gfortran.dg/dtio_28.f03: New test.
* gfortran.dg/dtio_4.f90: Update to open test file with status =
'scratch' to delete the file when done.

From-SVN: r246576

7 years agocombine: Fix PR80233
Segher Boessenkool [Wed, 29 Mar 2017 20:53:59 +0000 (22:53 +0200)]
combine: Fix PR80233

If combine has added an unconditional trap there will be a new basic
block as well.  It will then end up considering the NOTE_INSN_BASIC_BLOCK
as the last_combined_insn, but then it tries to take the DF_INSN_LUID
of that and that dereferences a NULL pointer (since such a note is not
an INSN_P).

This fixes it by not taking non-insns as last_combined_insn.

PR rtl-optimization/80233
* combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
as last_combined_insn.  Do not test for BARRIER_P separately.

gcc/testsuite/
PR rtl-optimization/80233
* gcc.c-torture/compile/pr80233.c: New testcase.

From-SVN: r246575

7 years ago* fr.po: Update.
Joseph Myers [Wed, 29 Mar 2017 19:47:51 +0000 (20:47 +0100)]
* fr.po: Update.

From-SVN: r246574

7 years agore PR fortran/80254 (Windows test failure: dec_io_2.f90)
Thomas Koenig [Wed, 29 Mar 2017 17:30:58 +0000 (17:30 +0000)]
re PR fortran/80254 (Windows test failure: dec_io_2.f90)

2017-03-28  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/80254
* gfortran.dg/dec_io_2.f90:  Do not run on MINGW, run
* gfortran.dg/dec_io_2a.f90:  instead (new test).

From-SVN: r246573

7 years agore PR ada/80146 (ICE in copy_to_mode_reg, at explow.c:612)
Andreas Schwab [Wed, 29 Mar 2017 14:18:07 +0000 (14:18 +0000)]
re PR ada/80146 (ICE in copy_to_mode_reg, at explow.c:612)

PR ada/80146
* calls.c (prepare_call_address): Convert funexp to Pmode before
copying to temp reg.

From-SVN: r246570

7 years agoChange log cleanup from 2017-03-21
William Schmidt [Wed, 29 Mar 2017 13:00:56 +0000 (13:00 +0000)]
Change log cleanup from 2017-03-21

From-SVN: r246569

7 years agore PR tree-optimization/80158 (ICE in all_phi_incrs_profitable)
Bill Schmidt [Wed, 29 Mar 2017 12:56:26 +0000 (12:56 +0000)]
re PR tree-optimization/80158 (ICE in all_phi_incrs_profitable)

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

PR tree-optimization/80158
* gimple-ssa-strength-reduction.c (replace_mult_candidate):
Handle possible future case of more than one alternate
interpretation.
(replace_rhs_if_not_dup): Likewise.
(replace_one_candidate): Likewise.

Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r246567

7 years agoAdjust optional's pretty printer for LWG 2900.
Ville Voutilainen [Wed, 29 Mar 2017 12:05:50 +0000 (15:05 +0300)]
Adjust optional's pretty printer for LWG 2900.

* python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
Look at the nested payload in case of non-experimental optional.

From-SVN: r246566

7 years ago[g++, testsuite] XFAIL thread_local-order2.C on newlib
Jiong Wang [Wed, 29 Mar 2017 10:33:04 +0000 (10:33 +0000)]
[g++, testsuite] XFAIL thread_local-order2.C on newlib

testsuite/
* g++.dg/tls/thread_local-order2.C: XFAIL on newlib.

As commented by Mike, it's better that newlib support this feature, tracked by

  https://sourceware.org/bugzilla/show_bug.cgi?id=21325

From-SVN: r246563

7 years agoDaily bump.
GCC Administrator [Wed, 29 Mar 2017 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r246560

7 years ago* es.po: Update.
Joseph Myers [Tue, 28 Mar 2017 23:27:18 +0000 (00:27 +0100)]
* es.po: Update.

From-SVN: r246557

7 years agoImplement LWG 2900, The copy and move constructors of optional are not constexpr.
Ville Voutilainen [Tue, 28 Mar 2017 23:05:21 +0000 (02:05 +0300)]
Implement LWG 2900, The copy and move constructors of optional are not constexpr.

Implement LWG 2900, The copy and move constructors
of optional are not constexpr.
* include/std/optional (_Optional_payload): New.
(_Optional_base): Remove the bool parameter.
(_Optional_base<_Tp, false>): Remove.
(_Optional_base()): Adjust.
(_Optional_base(nullopt_t)): Likewise.
(_Optional_base(in_place_t, _Args&&...)): Likewise.
(_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
Likewise.
(_Optional_base(const _Optional_base&)): Likewise.
(_Optional_base(_Optional_base&&)): Likewise.
(operator=(const _Optional_base&)): Likewise.
(operator=(_Optional_base&&)): Likewise.
(~_Optional_base()): Remove.
(_M_is_engaged()): Adjust.
(_M_get()): Likewise.
(_M_construct(_Args&&...)): Likewise.
(_M_destruct()): Likewise.
(_M_reset()): Likewise.
(_Optional_base::_Empty_byte): Remove.
(_Optional_base::_M_empty): Remove.
(_Optional_base::_M_payload): Adjust.
* testsuite/20_util/optional/cons/value_neg.cc: Adjust.
* testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.

From-SVN: r246556

7 years agors6000: Fix gcc.target/powerpc/gcse-1.c for PIC (PR43496)
Segher Boessenkool [Tue, 28 Mar 2017 22:26:17 +0000 (00:26 +0200)]
rs6000: Fix gcc.target/powerpc/gcse-1.c for PIC (PR43496)

With PIC a @ha relocation isn't generated, so skip that test then.

PR testsuite/43496
* gcc.target/powerpc/gcse-1.c: Skip scan-assembler-times "@ha" if
generating PIC code.

From-SVN: r246555

7 years agore PR rtl-optimization/80193 (ICE on valid (but hairy) C code at -O3 on x86_64-linux...
Vladimir Makarov [Tue, 28 Mar 2017 20:55:38 +0000 (20:55 +0000)]
re PR rtl-optimization/80193 (ICE on valid (but hairy) C code at -O3 on x86_64-linux-gnu: in check_allocation, at ira.c:2563)

2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/80193
* ira.c (ira): Do not check allocation for LRA.

2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/80193
* gcc.target/i386/pr80193.c: New.

From-SVN: r246554

7 years agore PR go/80226 (ICE gimple-expr.c:474 on Go function returning multiple empty struct...
Than McIntosh [Tue, 28 Mar 2017 20:08:31 +0000 (20:08 +0000)]
re PR go/80226 (ICE gimple-expr.c:474 on Go function returning multiple empty struct/array values)

PR go/80226
* go-gcc.cc (Gcc_backend::return_statement): Check for
void_type_node when checking result size.

From-SVN: r246553

7 years agoOpenMP/PTX privatization in SIMD regions
Alexander Monakov [Tue, 28 Mar 2017 17:24:57 +0000 (20:24 +0300)]
OpenMP/PTX privatization in SIMD regions

* config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
(nvptx_output_simt_exit): Declare.
* config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
(init_softstack_frame): Move initialization of crtl->is_leaf to...
(nvptx_declare_function_name): ...here.  Emit declaration of local
memory space buffer for omp_simt_enter insn.
(nvptx_output_unisimt_switch): New.
(nvptx_output_softstack_switch): New.
(nvptx_output_simt_enter): New.
(nvptx_output_simt_exit): New.
* config/nvptx/nvptx.h (struct machine_function): New fields
has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
* config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
(UNSPECV_SIMT_EXIT): Ditto.
(omp_simt_enter_insn): New insn.
(omp_simt_enter): New expansion.
(omp_simt_exit): New insn.
* config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.

* internal-fn.c (expand_GOMP_SIMT_ENTER): New.
(expand_GOMP_SIMT_ENTER_ALLOC): New.
(expand_GOMP_SIMT_EXIT): New.
* internal-fn.def (GOMP_SIMT_ENTER): New internal function.
(GOMP_SIMT_ENTER_ALLOC): Ditto.
(GOMP_SIMT_EXIT): Ditto.
* target-insns.def (omp_simt_enter): New insn.
(omp_simt_exit): Ditto.
* omp-low.c (struct omplow_simd_context): New fields simt_eargs,
simt_dlist.
(lower_rec_simd_input_clauses): Implement SIMT privatization.
(lower_rec_input_clauses): Likewise.
(lower_lastprivate_clauses): Handle SIMT privatization.

* omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
(ompdevlow_adjust_simt_enter): New.
(find_simtpriv_var_op): New.
(execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.

* tree-inline.h (struct copy_body_data): New field dst_simt_vars.
* tree-inline.c (expand_call_inline): Handle SIMT privatization.
(copy_decl_for_dup_finish): Ditto.

* tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.

From-SVN: r246550

7 years agore PR fortran/78661 ([OOP] Namelist output missing object designator under DTIO)
Janus Weil [Tue, 28 Mar 2017 17:01:05 +0000 (19:01 +0200)]
re PR fortran/78661 ([OOP] Namelist output missing object designator under DTIO)

2017-03-28  Janus Weil  <janus@gcc.gnu.org>

PR fortran/78661
* trans-io.c (transfer_namelist_element): Perform a polymorphic call
to a DTIO procedure if necessary.

2017-03-28  Janus Weil  <janus@gcc.gnu.org>

PR fortran/78661
* gfortran.dg/dtio_25.f90: Modified test case.
* gfortran.dg/dtio_27.f90: New test case.

2017-03-28  Janus Weil  <janus@gcc.gnu.org>

PR fortran/78661
* io/write.c (nml_write_obj): Build a class container only if necessary.

From-SVN: r246546

7 years ago* ChangeLog: Fix my ChangeLog entry.
Uros Bizjak [Tue, 28 Mar 2017 16:53:50 +0000 (18:53 +0200)]
* ChangeLog: Fix my ChangeLog entry.

From-SVN: r246545

7 years agore PR target/53383 (Allow -mpreferred-stack-boundary=3 on x86-64)
Uros Bizjak [Tue, 28 Mar 2017 16:51:00 +0000 (18:51 +0200)]
re PR target/53383 (Allow -mpreferred-stack-boundary=3 on x86-64)

PR target/53383
* config/i386/i386.c (ix86_option_override_internal): Always
allow -mincoming-stack-boundary=3 for 64-bit targets.

testsuite/ChangeLog:

PR target/53383
* gcc.target/i386/pr53383-1.c (dg-options): Remove -mno-sse.
* gcc.target/i386/pr53383-2.c (dg-options): Ditto.
* gcc.target/i386/pr53383-3.c (dg-options): Ditto.

From-SVN: r246543

7 years agoPR libstdc++/80137 use std::nextafter instead of looping
Jonathan Wakely [Tue, 28 Mar 2017 16:09:49 +0000 (17:09 +0100)]
PR libstdc++/80137 use std::nextafter instead of looping

PR libstdc++/80137
* include/bits/random.tcc (generate_canonical): Use std::nextafter
or numeric_limits::epsilon() to reduce out-of-range values.
* testsuite/26_numerics/random/uniform_real_distribution/operators/
64351.cc: Verify complexity requirement is met.

From-SVN: r246542

7 years agotree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
Bin Cheng [Tue, 28 Mar 2017 15:35:56 +0000 (15:35 +0000)]
tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.

* tree-vect-loop.c (optimize_mask_stores): Add bb to the right
loop.

From-SVN: r246541

7 years agotree-vect-loop-manip.c (slpeel_add_loop_guard): New param and mark new edge's irreduc...
Bin Cheng [Tue, 28 Mar 2017 15:32:29 +0000 (15:32 +0000)]
tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and mark new edge's irreducible flag accordign to it.

* tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
mark new edge's irreducible flag accordign to it.
(vect_do_peeling): Check loop preheader edge's irreducible flag
and pass it to function slpeel_add_loop_guard.
gcc/testsuite
* gcc.c-torture/compile/irreducible-loop.c: New.

From-SVN: r246540

7 years agore PR tree-optimization/80218 (tree-call-cdce does not update block frequencies)
Richard Sandiford [Tue, 28 Mar 2017 15:14:36 +0000 (15:14 +0000)]
re PR tree-optimization/80218 (tree-call-cdce does not update block frequencies)

gcc/
PR tree-optimization/80218
* tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
Update block frequencies and counts.

gcc/testsuite/
PR tree-optimization/80218
* gcc.dg/pr80218.c: New test.

From-SVN: r246538

7 years agore PR ipa/78644 (ICE: SIGSEGV in is_gimple_reg_type with -Og -fipa-cp)
Richard Biener [Tue, 28 Mar 2017 13:57:43 +0000 (13:57 +0000)]
re PR ipa/78644 (ICE: SIGSEGV in is_gimple_reg_type with -Og -fipa-cp)

2017-03-28  Richard Biener  <rguenther@suse.de>

PR tree-optimization/78644
* tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
of a simplification result we may not use it at all.

* gcc.dg/pr78644-1.c: New testcase.
* gcc.dg/pr78644-2.c: Likewise.

From-SVN: r246534

7 years agoSkip pic-3,4.c and pie-3,4.c for mips*-*-linux-*.
Toma Tabacu [Tue, 28 Mar 2017 12:43:33 +0000 (12:43 +0000)]
Skip pic-3,4.c and pie-3,4.c for mips*-*-linux-*.

gcc/testsuite/

* gcc.dg/pic-3.c: Skip for mips*-*-linux-*.
* gcc.dg/pic-4.c: Likewise.
* gcc.dg/pie-3.c: Likewise.
* gcc.dg/pie-4.c: Likewise.

From-SVN: r246533

7 years agoAdd _GLIBCXX_RELEASE macro to "Using" section of manual
Jonathan Wakely [Tue, 28 Mar 2017 12:43:06 +0000 (13:43 +0100)]
Add _GLIBCXX_RELEASE macro to "Using" section of manual

* doc/xml/manual/abi.xml: Add xml:id anchor.
* doc/xml/manual/using.xml (manual.intro.using.macros): Document
_GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
(concurrency.io.structure): Add markup.
* doc/html/*: Regenerate.

From-SVN: r246532

7 years agoHandle PHI nodes w/o a argument (PR ipa/80205).
Martin Liska [Tue, 28 Mar 2017 11:37:22 +0000 (11:37 +0000)]
Handle PHI nodes w/o a argument (PR ipa/80205).

2017-03-28  Martin Liska  <mliska@suse.cz>

PR ipa/80205
* g++.dg/ipa/pr80205.C: New test.
2017-03-28  Richard Biener  <rguenther@suse.de>

PR ipa/80205
* tree-inline.c (copy_phis_for_bb): Do not create PHI node
without arguments, generate default definition of a SSA name.

From-SVN: r246530

7 years agoFix broken tests for avr target
Senthil Kumar Selvaraj [Tue, 28 Mar 2017 10:55:18 +0000 (10:55 +0000)]
Fix broken tests for avr target

These tests assume {unsigned,} ints are 32 bits or wider. Explicitly
specify __{U}INT32_TYPE__ for targets with __SIZEOF_INT__ < 4.

gcc/testsuite/

2017-03-28  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

* gcc.c-torture/execute/pr79121.c:Use __{U}INT32_TYPE__ for targets
with sizeof(int) < 4.
* gcc.c-torture/execute/pr79737-1.c (struct S): Likewise.
* gcc.c-torture/execute/pr79737-2.c: Likewise.
* gcc.dg/torture/pr79777.c: Likewise.
* gcc.dg/torture/pr79910.c: Likewise.

From-SVN: r246529

7 years agoSupport for Ada on aarch64 with -mabi=ilp32
Andreas Schwab [Tue, 28 Mar 2017 10:29:34 +0000 (10:29 +0000)]
Support for Ada on aarch64 with -mabi=ilp32

PR ada/80117
* system-linux-aarch64-ilp32.ads: New file.
* gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS_COMMON): Rename
from LIBGNAT_TARGET_PAIRS.
(LIBGNAT_TARGET_PAIRS_32, LIBGNAT_TARGET_PAIRS_64): Define.
(LIBGNAT_TARGET_PAIRS): Use LIBGNAT_TARGET_PAIRS_COMMON, and
LIBGNAT_TARGET_PAIRS_64 or LIBGNAT_TARGET_PAIRS_32 for -mabi=lp64
or -mabi=ilp32, resp.

From-SVN: r246528

7 years agore PR middle-end/80222 (may_alias folded away)
Richard Biener [Tue, 28 Mar 2017 10:10:01 +0000 (10:10 +0000)]
re PR middle-end/80222 (may_alias folded away)

2017-03-28  Richard Biener  <rguenther@suse.de>

PR middle-end/80222
* gimple-fold.c (gimple_fold_indirect_ref): Do not touch
TYPE_REF_CAN_ALIAS_ALL references.
* fold-const.c (fold_indirect_ref_1): Likewise.

* g++.dg/pr80222.C: New testcase.

From-SVN: r246527

7 years agoFix calls.c for a _complex type (PR ipa/80104).
Martin Liska [Tue, 28 Mar 2017 09:01:57 +0000 (11:01 +0200)]
Fix calls.c for a _complex type (PR ipa/80104).

2017-03-28  Martin Liska  <mliska@suse.cz>

PR ipa/80104
* cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
thunk call as DECL_GIMPLE_REG_P when vector or complex type.
2017-03-28  Martin Liska  <mliska@suse.cz>

PR ipa/80104
* gcc.dg/ipa/pr80104.c: New test.

From-SVN: r246525

7 years ago[ARC] Define _REENTRANT when -pthread is passed.
Claudiu Zissulescu [Tue, 28 Mar 2017 08:56:44 +0000 (10:56 +0200)]
[ARC] Define _REENTRANT when -pthread is passed.

The compiler is supposed to have the builtin defined _REENTRANT defined
when -pthread is passed, which wasn't done on the ARC architecture.

When _REENTRANT is not passed, the C library will not use reentrant
functions, and the latest version of ax_pthread.m4 from the
autoconf-archive will no longer detect that thread support is
available (see https://savannah.gnu.org/patch/?8186).

gcc/
2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
    Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

* config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
(EXTRA_SPECS): Define.
(SUBTARGET_EXTRA_SPECS): Likewise.
(SUBTARGET_CPP_SPEC): Likewise.
* config/arc/elf.h (EXTRA_SPECS): Renamed to
SUBTARGET_EXTRA_SPECS.
* config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.

Co-Authored-By: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
From-SVN: r246524

7 years ago[ARC] Update ARC SIMD patterns.
Claudiu Zissulescu [Tue, 28 Mar 2017 08:56:33 +0000 (10:56 +0200)]
[ARC] Update ARC SIMD patterns.

vec_select expects in selection a list of subparts. The old ARC SIMD
extension instructions were not up-to-date.

gcc/
2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/simdext.md (vst64_insn): Update pattern.
(vld32wh_insn): Likewise.
(vld32wl_insn): Likewise.
(vld64_insn): Likewise.
(vld32_insn): Likewise.

From-SVN: r246523

7 years agore PR sanitizer/80067 (ICE in fold_comparison with -fsanitize=undefined)
Marek Polacek [Tue, 28 Mar 2017 08:13:04 +0000 (08:13 +0000)]
re PR sanitizer/80067 (ICE in fold_comparison with -fsanitize=undefined)

PR sanitizer/80067
* fold-const.c (fold_comparison): Use protected_set_expr_location
instead of SET_EXPR_LOCATION.

* c-c++-common/ubsan/shift-10.c: New test.

From-SVN: r246521

7 years agoPR libstdc++/80229 restore support for shared_ptr<function type>
Jonathan Wakely [Tue, 28 Mar 2017 07:35:04 +0000 (08:35 +0100)]
PR libstdc++/80229 restore support for shared_ptr<function type>

PR libstdc++/80229
* include/bits/shared_ptr_base.h
(__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
non-const and then use remove_cv to get unqualified type.
* testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
cast away constness on object created const.
* testsuite/20_util/shared_ptr/cons/80229.cc: New test.

From-SVN: r246520

7 years agoAvoid name lookup warning
Markus Trippelsdorf [Tue, 28 Mar 2017 05:47:13 +0000 (05:47 +0000)]
Avoid name lookup warning

/home/markus/gcc/gcc/tree.c: In function â€˜void inchash::add_expr(const_tree, inchash::hash&, unsigned int)’:
/home/markus/gcc/gcc/tree.c:8013:11: warning: name lookup of â€˜i’ changed
      for (i = TREE_OPERAND_LENGTH (t) - 1; i >= 0; --i)
           ^
/home/markus/gcc/gcc/tree.c:7773:7: warning:   matches this â€˜i’ under ISO standard rules
   int i;
       ^
/home/markus/gcc/gcc/tree.c:7869:16: warning:   matches this â€˜i’ under old rules
       for (int i = 0; i < TREE_VEC_LENGTH (t); ++i)
                ^

From-SVN: r246519

7 years agoFix PR# in last commit
Jeff Law [Tue, 28 Mar 2017 03:30:35 +0000 (21:30 -0600)]
Fix PR# in last commit

From-SVN: r246518

7 years agore PR target/80162 (ICE on invalid code (address of register variable))
Jeff Law [Tue, 28 Mar 2017 03:22:25 +0000 (21:22 -0600)]
re PR target/80162 (ICE on invalid code (address of register variable))

        PR tree-optimization/80162
* tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
function name.  Limit recursion depth.
(record_temporary_equivalences): Corresponding changes.

PR tree-optimization/80162
* gcc.c-torture/compile/pr80216.c: New test.

From-SVN: r246517

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

From-SVN: r246516

7 years agoRestructure -Wno-narrowing documentation
Jonathan Wakely [Mon, 27 Mar 2017 22:00:45 +0000 (23:00 +0100)]
Restructure -Wno-narrowing documentation

* doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
covered first.

From-SVN: r246513

7 years agore PR target/80162 (ICE on invalid code (address of register variable))
Jakub Jelinek [Mon, 27 Mar 2017 21:07:21 +0000 (23:07 +0200)]
re PR target/80162 (ICE on invalid code (address of register variable))

PR middle-end/80162
c-family/
* c-common.c (c_common_mark_addressable_vec): Don't set
TREE_ADDRESSABLE on DECL_HARD_REGISTER.
c/
* c-tree.h (c_mark_addressable): Add array_ref_p argument.
* c-typeck.c (c_mark_addressable): Likewise.  Look through
VIEW_CONVERT_EXPR unless array_ref_p and VCE is from VECTOR_TYPE
to ARRAY_TYPE.
(build_array_ref): Pass true as array_ref_p to c_mark_addressable.
cp/
* cp-tree.h (cxx_mark_addressable): Add array_ref_p argument.
* typeck.c (cxx_mark_addressable): Likewise.  Look through
VIEW_CONVERT_EXPR unless array_ref_p and VCE is from VECTOR_TYPE
to ARRAY_TYPE.
(cp_build_array_ref): Pass true as array_ref_p to cxx_mark_addressable.
testsuite/
* c-c++-common/pr80162-1.c: New test.
* c-c++-common/pr80162-2.c: New test.
* c-c++-common/pr80162-3.c: New test.

From-SVN: r246512

7 years agore PR target/80102 (ICE in maybe_record_trace_start, at dwarf2cfi.c:2330)
Jakub Jelinek [Mon, 27 Mar 2017 21:00:35 +0000 (23:00 +0200)]
re PR target/80102 (ICE in maybe_record_trace_start, at dwarf2cfi.c:2330)

PR target/80102
* reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
notes.
* cfgcleanup.c (reg_note_cfa_p): New array.
(insns_have_identical_cfa_notes): New function.
(old_insns_match_p): Don't cross-jump in between /f
and non-/f instructions.  If both i1 and i2 are frame related,
verify all CFA notes, their order and content.

* g++.dg/opt/pr80102.C: New test.

From-SVN: r246511

7 years ago* de.po, fr.po: Update.
Joseph Myers [Mon, 27 Mar 2017 20:31:49 +0000 (21:31 +0100)]
* de.po, fr.po: Update.

From-SVN: r246510

7 years agore PR target/78543 (ICE in push_reload, at reload.c:1349 on powerpc64le-linux-gnu)
Michael Meissner [Mon, 27 Mar 2017 19:19:00 +0000 (19:19 +0000)]
re PR target/78543 (ICE in push_reload, at reload.c:1349 on powerpc64le-linux-gnu)

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

PR target/78543
* config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
HImode and SImode with zero extend to DImode to one insn.
(bswap<mode>2_extenddi): Likewise.
(bswapsi2_extenddi): Likewise.
(bswaphi2_extendsi): Likewise.
(bswaphi2): Combine bswap HImode and SImode into one insn.
Separate memory insns from swapping register.
(bswapsi2): Likewise.
(bswap<mode>2): Likewise.
(bswaphi2_internal): Delete, no longer used.
(bswapsi2_internal): Likewise.
(bswap<mode>2_load): Split bswap HImode/SImode into separate load,
store, and gpr<-gpr swap insns.
(bswap<mode>2_store): Likewise.
(bswaphi2_reg): Register only splitter, combine with the splitter.
(bswaphi2 splitter): Likewise.
(bswapsi2_reg): Likewise.
(bswapsi2 splitter): Likewise.
(bswapdi2): If we have the LDBRX and STDBRX instructions, split
the insns into load, store, and register/register insns.
(bswapdi2_ldbrx): Likewise.
(bswapdi2_load): Likewise.
(bswapdi2_store): Likewise.
(bswapdi2_reg): Likewise.

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

PR target/78543
* gcc.target/powerpc/pr78543.c: New test.

From-SVN: r246508

7 years agolist_read.c: Insert /* Fall through.
Dominique d'Humieres [Mon, 27 Mar 2017 18:51:58 +0000 (20:51 +0200)]
list_read.c: Insert /* Fall through.

2017-03-27  Dominique d'Humieres  <dominiq@lps.ens.fr>

* io/list_read.c: Insert /* Fall through. */ in the macro
CASE_SEPARATORS in order to silence warnings.

From-SVN: r246507

7 years agosystem.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
Gunther Nikl [Mon, 27 Mar 2017 17:53:35 +0000 (17:53 +0000)]
system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.

* system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
(HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.

From-SVN: r246506

7 years agore PR target/80103 (ICE in output_1144, at config/rs6000/vsx.md:2298)
Kelvin Nilsen [Mon, 27 Mar 2017 17:04:07 +0000 (17:04 +0000)]
re PR target/80103 (ICE in output_1144, at config/rs6000/vsx.md:2298)

gcc/testsuite/ChangeLog:

2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>

PR target/80103
* gcc.target/powerpc/pr80103-1.c: New test.

gcc/ChangeLog:

2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>

PR target/80103
* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
add comments.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Add
special handling for target option conflicts between dform
options (-mpower9-dform, -mpower9-dform-vector,
-mpower9-dform-scalar) and -mno-direct-move.

From-SVN: r246505

7 years agocplus_demangle_fill_component: Handle DEMANGLE_COMPONENT_RVALUE_REFERENCE
Pedro Alves [Mon, 27 Mar 2017 14:23:49 +0000 (14:23 +0000)]
cplus_demangle_fill_component: Handle DEMANGLE_COMPONENT_RVALUE_REFERENCE

This patch almost a decade ago:

...
    2007-08-31  Douglas Gregor  <doug.gregor@gmail.com>

        * cp-demangle.c (d_dump): Handle
        DEMANGLE_COMPONENT_RVALUE_REFERENCE.
        (d_make_comp): Ditto.
...

... missed doing the same change to cplus_demangle_fill_component that
was done to d_make_comp.  I.e., teach it to only validate that we're
not passing in a "right" subtree.  GDB has recently (finally) learned
about rvalue references, and a change to make it use
cplus_demangle_fill_component more ran into an assertion because of
this.

(GDB is the only user of cplus_demangle_fill_component in both the gcc
and binutils-gdb trees.)

libiberty/ChangeLog:
2017-03-27  Pedro Alves  <palves@redhat.com>

* cp-demint.c (cplus_demangle_fill_component): Handle
DEMANGLE_COMPONENT_RVALUE_REFERENCE.

From-SVN: r246502

7 years agore PR tree-optimization/80181 (ICE in set_lattice_value, at tree-ssa-ccp.c:505)
Richard Biener [Mon, 27 Mar 2017 12:52:13 +0000 (12:52 +0000)]
re PR tree-optimization/80181 (ICE in set_lattice_value, at tree-ssa-ccp.c:505)

2017-03-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80181
* tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.

* gcc.dg/torture/pr80181.c: New testcase.

From-SVN: r246500

7 years ago[ARC] Fix move_double_src_operand predicate.
Claudiu Zissulescu [Mon, 27 Mar 2017 10:56:46 +0000 (12:56 +0200)]
[ARC] Fix move_double_src_operand predicate.

Durring compilation process, (subreg (mem ...) ...) can occur. Hence,
we need to check if the address of mem is a valid one. This patch is
fixing this check by directly calling the address_operand, instead of
calling move_double_src_operand, as the latter is always checking
against the original mode, thus, returning false when the inner and
outer modes are different.

gcc/
2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/predicates.md (move_double_src_operand): Replace the
call to move_double_src_operand with a call to address_operand.

From-SVN: r246499

7 years ago[ARC] Fix divdf3 emulation for arcem.
Claudiu Zissulescu [Mon, 27 Mar 2017 10:56:35 +0000 (12:56 +0200)]
[ARC] Fix divdf3 emulation for arcem.

libgcc/
2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/ieee-754/divdf3.S (__divdf3): Use __ARCEM__.

From-SVN: r246498

7 years ago[ARC] Disable TP register when building for bare metal.
Claudiu Zissulescu [Mon, 27 Mar 2017 10:56:24 +0000 (12:56 +0200)]
[ARC] Disable TP register when building for bare metal.

gcc/
2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
* config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
* config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.

From-SVN: r246497

7 years ago[ARC] Fix detection of long immediate for load/store operands.
Claudiu Zissulescu [Mon, 27 Mar 2017 10:56:14 +0000 (12:56 +0200)]
[ARC] Fix detection of long immediate for load/store operands.

ARC can use scaled offsets when loading (i.e. ld.as rA,[base,
offset]).  Where base and offset can be a register or an immediate
operand.  The scaling only applies on the offset part of the
instruction.  The compiler can accept an address like this:

(plus:SI (mult:SI (reg:SI 2 r2 [orig:596 _2129 ] [596])
          (const_int 4 [0x4]))
 (const_int 60 [0x3c]))

Hence, to emit this instruction we place the (const_int 60) into base
and the register into offset to take advantage of the scaled offset
facility of the load instruction.  As a result the length of the load
instruction is 8 bytes.  However, the long_immediate_loadstore_operand
predicate used for calculating the length attribute doesn't recognize
this address and returns a wrong decision leading to a wrong length
computation for a load instruction using the above address.

gcc/
2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/predicates.md (long_immediate_loadstore_operand):
Consider scaled addresses cases.

From-SVN: r246496

7 years ago[ARC] Save/restore blink when in ISR.
Claudiu Zissulescu [Mon, 27 Mar 2017 10:56:04 +0000 (12:56 +0200)]
[ARC] Save/restore blink when in ISR.

gcc/
2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_epilogue_uses): BLINK should be also
restored when in interrupt.
* config/arc/arc.md (simple_return): ARCv2 rtie instruction
doesn't have delay slot.

2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>

* testsuite/gcc.target/arc/interrupt-4.c: New file.

From-SVN: r246495

7 years agore PR ipa/79776 (ICE on valid code in insert_vi_for_tree, at tree-ssa-structalias...
Richard Biener [Mon, 27 Mar 2017 10:50:55 +0000 (10:50 +0000)]
re PR ipa/79776 (ICE on valid code in insert_vi_for_tree, at tree-ssa-structalias.c:2807)

2017-03-27  Richard Biener  <rguenther@suse.de>

PR ipa/79776
* tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
inlined thunk clones.

* g++.dg/ipa/pr79776.C: New testcase.

From-SVN: r246494

7 years agore PR sanitizer/80168 (ICE in make_decl_rtl, at varasm.c:1311 w/ VLA and -fsanitize...
Jakub Jelinek [Mon, 27 Mar 2017 08:25:01 +0000 (10:25 +0200)]
re PR sanitizer/80168 (ICE in make_decl_rtl, at varasm.c:1311 w/ VLA and -fsanitize=address)

PR sanitizer/80168
* asan.c (instrument_derefs): Copy over last operand from
original COMPONENT_REF to the new COMPONENT_REF with
DECL_BIT_FIELD_REPRESENTATIVE.
* ubsan.c (instrument_object_size): Likewise.

* gcc.dg/asan/pr80168.c: New test.

From-SVN: r246492

7 years agore PR tree-optimization/80170 (SLP vectorization creates aligned access)
Richard Biener [Mon, 27 Mar 2017 08:07:49 +0000 (08:07 +0000)]
re PR tree-optimization/80170 (SLP vectorization creates aligned access)

2017-03-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80170
* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
sure DR/SCEV didnt fold in constants we do not see when looking
at the reference base alignment.

* gcc.dg/pr80170.c: New testcase.

From-SVN: r246491

7 years agore PR tree-optimization/80171 (ICE (Segmentation fault) with optimization)
Richard Biener [Mon, 27 Mar 2017 07:35:44 +0000 (07:35 +0000)]
re PR tree-optimization/80171 (ICE (Segmentation fault) with optimization)

2017-03-27  Richard Biener  <rguenther@suse.de>

PR middle-end/80171
* gimple-fold.c (fold_ctor_reference): Properly guard against
NULL return value from canonicalize_constructor_val.

* g++.dg/torture/pr80171.C: New testcase.

From-SVN: r246490

7 years agoDaily bump.
GCC Administrator [Mon, 27 Mar 2017 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r246489

7 years agopr79732.c: Require alias support.
John David Anglin [Sun, 26 Mar 2017 15:40:29 +0000 (15:40 +0000)]
pr79732.c: Require alias support.

* gcc.dg/torture/pr79732.c: Require alias support.
* gcc.dg/tree-ssa/pr56727.c: Move dg-require-alias after dg-do compile.

From-SVN: r246485

7 years agocoarray_failed_images_1.f08: Add "-latomic" option if libatomic_available.
John David Anglin [Sun, 26 Mar 2017 15:19:40 +0000 (15:19 +0000)]
coarray_failed_images_1.f08: Add "-latomic" option if libatomic_available.

* gfortran.dg/coarray_failed_images_1.f08: Add "-latomic" option if
libatomic_available.
* gfortran.dg/coarray_image_status_1.f08: Likewise.
* gfortran.dg/coarray_stopped_images_1.f08: Likewise.

From-SVN: r246484

7 years agoFix PR80183 : _M_color not moved
Markus Trippelsdorf [Sun, 26 Mar 2017 12:33:35 +0000 (12:33 +0000)]
Fix PR80183 : _M_color not moved

PR libstdc++/80183
* include/bits/stl_tree.h:
(_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.

From-SVN: r246483

7 years agoDaily bump.
GCC Administrator [Sun, 26 Mar 2017 00:16:11 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r246482

7 years agore PR fortran/78881 ([F03] reading from string with DTIO procedure does not work...
Jerry DeLisle [Sat, 25 Mar 2017 18:48:01 +0000 (18:48 +0000)]
re PR fortran/78881 ([F03] reading from string with DTIO procedure does not work properly)

2017-03-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/78881
* io/io.h (st_parameter_dt): Rename unused component last_char to
child_saved_iostat. Move comment to gfc_unit.
* io/list_read.c (list_formatted_read_scalar): After call to
child READ procedure, save the returned iostat value for later
check. (finish_list_read): Only finish READ if child_saved_iostat
was OK.
* io/transfer.c (read_sf_internal): If there is a saved character
in last character, seek back one. Add a new check for EOR
condition. (read_sf): If there is a saved character
in last character, seek back one. (formatted_transfer_scalar_read):
Initialize last character before invoking child procedure.
(data_transfer_init): If child dtio, set advance
status to nonadvancing. Move update of size and check for EOR
condition to before child dtio return.

* gfortran.dg/dtio_26.f90: New test.

From-SVN: r246478

7 years agore PR fortran/80156 (Generic DTIO interface reported missing if public statement...
Paul Thomas [Sat, 25 Mar 2017 17:38:17 +0000 (17:38 +0000)]
re PR fortran/80156 (Generic DTIO interface reported missing if public statement preceeds the interface block)

2017-03-25  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/80156
PR fortran/79382
* decl.c (access_attr_decl): Remove the error for an absent
generic DTIO interface and ensure that symbol has the flavor
FL_PROCEDURE.

2017-03-25  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/80156
PR fortran/79382
* gfortran.dg/dtio_23.f90 : Remove the dg-error and add the
testcase for PR80156. Add a main programme that tests that
the typebound generic is accessible.

From-SVN: r246476

7 years agore PR target/80180 (Incorrect codegen from rdseed intrinsic use (CVE-2017-11671))
Uros Bizjak [Sat, 25 Mar 2017 16:34:09 +0000 (17:34 +0100)]
re PR target/80180 (Incorrect codegen from rdseed intrinsic use (CVE-2017-11671))

PR target/80180
* config/i386/i386.c (ix86_expand_builtin)
<IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
flags reg setting and flags reg using instructions.
<IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
clobbering instructions to zero extend op2.

From-SVN: r246475

7 years agoinstall.texi (Configuration): Update link to AIX ld.
Gerald Pfeifer [Sat, 25 Mar 2017 14:17:55 +0000 (14:17 +0000)]
install.texi (Configuration): Update link to AIX ld.

* doc/install.texi (Configuration) <--with-aix-soname>:
Update link to AIX ld.

From-SVN: r246474

7 years agore PR target/80160 (operand has impossible constraints)
Bernd Schmidt [Sat, 25 Mar 2017 01:12:04 +0000 (01:12 +0000)]
re PR target/80160 (operand has impossible constraints)

PR rtl-optimization/80160
PR rtl-optimization/80159
* lra-assigns.c (must_not_spill_p): Tighten new test to also take
reg_alternate_class into account.

* gcc.target/i386/pr80160.c: New test.

From-SVN: r246473

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

From-SVN: r246472

7 years agore PR target/79904 (ICE in annotate_constant_pool_refs, at config/s390/s390.c:7909)
Jakub Jelinek [Fri, 24 Mar 2017 21:43:08 +0000 (22:43 +0100)]
re PR target/79904 (ICE in annotate_constant_pool_refs, at config/s390/s390.c:7909)

PR sanitizer/79904
* gcc.dg/ubsan/pr79904-2.c: Add -Wno-psabi to dg-options.

From-SVN: r246468

7 years agore PR target/80148 (operand has impossible constraints)
Vladimir Makarov [Fri, 24 Mar 2017 18:47:38 +0000 (18:47 +0000)]
re PR target/80148 (operand has impossible constraints)

2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>

PR target/80148
* lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
to consider in curr_insn_transform.

From-SVN: r246467

7 years agoPR c++/77339 - ICE with invalid use of alias template.
Jason Merrill [Fri, 24 Mar 2017 14:40:13 +0000 (10:40 -0400)]
PR c++/77339 - ICE with invalid use of alias template.

* pt.c (lookup_template_class_1): Don't try to enter the scope of an
alias template.

From-SVN: r246462

7 years agore PR c++/80119 (-Wmaybe-uninitialized wrongly flags the body of a short-circuited...
Marek Polacek [Fri, 24 Mar 2017 14:22:01 +0000 (14:22 +0000)]
re PR c++/80119 (-Wmaybe-uninitialized wrongly flags the body of a short-circuited if-clause)

PR c++/80119
* cp-gimplify.c (cp_fold): Strip CLEANUP_POINT_EXPR if the expression
doesn't have side effects.

* g++.dg/warn/Wuninitialized-9.C: New test.

From-SVN: r246461

7 years agogenrecog.c (validate_pattern): Add VEC_SELECT validation.
Jakub Jelinek [Fri, 24 Mar 2017 14:09:33 +0000 (15:09 +0100)]
genrecog.c (validate_pattern): Add VEC_SELECT validation.

* genrecog.c (validate_pattern): Add VEC_SELECT validation.
* genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
and emit_mode_inner.

From-SVN: r246460

7 years agoS/390: arch12: New builtins.
Andreas Krebbel [Fri, 24 Mar 2017 14:04:12 +0000 (14:04 +0000)]
S/390: arch12: New builtins.

This patch implements a set of low-level builtins for instruction
which would otherwise not be emitted by the compiler plus a set of
high-level builtins as defined by the IBM XL compiler.  The high-level
builtins will be described in a future revision of the z/OS XL C/C++
Programming Guide.

I'll try to come up with a documentation appropriate for the GCC
manual as well (sometimes in the future).

gcc/ChangeLog:

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
argument to the overloaded builtin variants.  Use the new flag to
deprecate certain builtin variants.
* config/s390/s390-builtin-types.def: Add new builtin types.
* config/s390/s390-builtins.h: Support new flags field for
overloaded builtins.
* config/s390/s390-c.c (OB_DEF_VAR): New flags field.
(s390_macro_to_expand): Enable vector float data type.
(s390_cpu_cpp_builtins_internal): Indicate support of the new
builtins by incrementing the __VEC__ version number.
(s390_expand_overloaded_builtin): Support expansion of vec_xl and
vec_xst.
(s390_resolve_overloaded_builtin): Emit error messages depending
on the builtin flags.
* config/s390/s390.c (s390_expand_builtin): Support additional
flags argument.  Change error message to match the messages
emitted in s390-c.c.
* config/s390/s390.md: New UNSPEC_* constants.
(op_type): Add new instruction types.
* config/s390/vecintrin.h: Add new builtins and test data class
constants.
* config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
(V_HW_4, VEC_HW, VECF_HW): New mode iterators.
(VEC_INEXACT, VEC_NOINEXACT): New constants.
("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
("vec_mergel<mode>"): V_HW -> VEC_HW.

("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.

("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.

("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...

("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
("vec_scatter_element<V_HW_4:mode>_DI")
("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
("vec_fpint<mode>", "vflls")
("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
("*vec_cmphe<mode>_cc"): ... these.

("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
mode constant instead of magic value.

gcc/testsuite/ChangeLog:

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/target-attribute/tattr-3.c: Adjust error message
and remove the high-level builtin.  The error message for the
would prevent compilation from reaching the second.
* gcc.target/s390/target-attribute/tattr-4.c: Likewise.

From-SVN: r246459

7 years agoS/390: arch12: Support new vector floating point modes.
Andreas Krebbel [Fri, 24 Mar 2017 14:03:24 +0000 (14:03 +0000)]
S/390: arch12: Support new vector floating point modes.

This patch adds support for the new floating point vector elements (SF
and TF) introduced with arch12.

gcc/ChangeLog:

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.c (s390_expand_vec_compare): Support other
vector floating point modes than just V2DF.
(s390_expand_vcond): Likewise.
(s390_hard_regno_mode_ok): Allow SFmode values in VRs.
(s390_cannot_change_mode_class): Prevent mode changes between TF
and V1TF in vector registers.
* config/s390/s390.md (DF, SF): New mode attributes.
("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
SFmode support for VRs.
* config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
vector fp modes.
(VFT, VF_HW): New mode iterators.
(vw, sdx): New mode attributes.
("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
("vec_unorderedv2df"): Adjust the v2df only patterns to support
also the new vector floating point modes.  Renaming to ...

("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
("abs<mode>2", "negabs<mode>2", "smax<mode>3")
("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
("vec_unordered<mode>"): ... these.

("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
("*vec_extendv2df"): New insn definitions.

gcc/testsuite/ChangeLog:

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/vxe/negfma-1.c: New test.

From-SVN: r246458

7 years agoS/390: arch12: Support the mul/add/subtract
Andreas Krebbel [Fri, 24 Mar 2017 14:02:51 +0000 (14:02 +0000)]
S/390: arch12: Support the mul/add/subtract
 instructions.

gcc/ChangeLog:

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
("mulditi3_2", "*muldi3_sign"): New patterns.
("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
rename the pattern definition.

gcc/testsuite/ChangeLog:

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/arch12/aghsghmgh-1.c: New test.
* gcc.target/s390/arch12/mul-1.c: New test.
* gcc.target/s390/arch12/mul-2.c: New test.

From-SVN: r246457

7 years agoS/390: arch12: Add indirect branch pattern
Andreas Krebbel [Fri, 24 Mar 2017 14:02:17 +0000 (14:02 +0000)]
S/390: arch12: Add indirect branch pattern

This adds support for the branch indirect instruction.

gcc/ChangeLog:

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.md ("indirect_jump"): Turn insn definition into
expander.
("*indirect_jump", "*indirect2_jump"): New pattern definitions.

From-SVN: r246456