platform/upstream/gcc.git
7 years agoruntime: don't build test files that use SetCgoTraceback for gccgo
Ian Lance Taylor [Thu, 22 Jun 2017 14:27:09 +0000 (14:27 +0000)]
runtime: don't build test files that use SetCgoTraceback for gccgo

    The gofrontend doesn't support the runtime.SetCgoTraceback function,
    which is specifically for handling mixed Go and C tracebacks.
    Use a build tag to avoid compiling the runtime/testdata/testprogcgo
    files that refer to SetCgoTraceback. These files are not currently
    compiled anyhow, but they will be with a future gotools patch.

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

From-SVN: r249556

7 years agoruntime: build testprogcgo with -pthread
Ian Lance Taylor [Thu, 22 Jun 2017 14:23:54 +0000 (14:23 +0000)]
runtime: build testprogcgo with -pthread

    Building this test with gccgo requires an explicit -pthread option to
    be passed to the C compiler, so that it links against -lpthread.
    This test is not built today, but it will be soon with a future patch.

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

From-SVN: r249555

7 years agoPR libstdc++/81173 fix undefined memset with null pointer
Jonathan Wakely [Thu, 22 Jun 2017 14:16:38 +0000 (15:16 +0100)]
PR libstdc++/81173 fix undefined memset with null pointer

PR libstdc++/81173
* include/bits/stl_bvector.h (vector<bool>::_M_initialize_value):
Do not pass null pointer to memset.

From-SVN: r249554

7 years agotree-vect-loop.c (vect_model_reduction_cost): Handle COND_REDUCTION and INTEGER_INDUC...
Richard Biener [Thu, 22 Jun 2017 12:07:07 +0000 (12:07 +0000)]
tree-vect-loop.c (vect_model_reduction_cost): Handle COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without REDUC_MAX_EXPR...

2016-06-22  Richard Biener  <rguenther@suse.de>

* tree-vect-loop.c (vect_model_reduction_cost): Handle
COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
REDUC_MAX_EXPR support.
(vectorizable_reduction): Likewise.
(vect_create_epilog_for_reduction): Likewise.

* gcc.dg/vect/pr65947-1.c: Remove xfail.
* gcc.dg/vect/pr65947-2.c: Likewise.
* gcc.dg/vect/pr65947-3.c: Likewise.
* gcc.dg/vect/pr65947-4.c: Likewise.
* gcc.dg/vect/pr65947-5.c: Likewise.
* gcc.dg/vect/pr65947-6.c: Likewise.
* gcc.dg/vect/pr65947-8.c: Likewise.
* gcc.dg/vect/pr65947-9.c: Likewise.
* gcc.dg/vect/pr65947-10.c: Likewise.
* gcc.dg/vect/pr65947-12.c: Likewise.
* gcc.dg/vect/pr65947-13.c: Likewise.
* gcc.dg/vect/pr65947-14.c: Likewise.
* gcc.dg/vect/vect-cond-2.c: Likewise.
* gcc.dg/vect/vect-pr69848.c: Likewise.

From-SVN: r249553

7 years agoFix ipa-split-5.c test-case.
Martin Liska [Thu, 22 Jun 2017 10:54:40 +0000 (12:54 +0200)]
Fix ipa-split-5.c test-case.

2017-06-22  Martin Liska  <mliska@suse.cz>

* gcc.dg/tree-ssa/ipa-split-5.c: Make function bigger in order
to not inline it.

From-SVN: r249503

7 years ago[Patch match.pd] Fold (A / (1 << B)) to (A >> B)
James Greenhalgh [Thu, 22 Jun 2017 08:39:04 +0000 (08:39 +0000)]
[Patch match.pd] Fold (A / (1 << B)) to (A >> B)

For the testcase in the patch:

  unsigned long
  f2 (unsigned long a, int b)
  {
    unsigned long x = 1UL << b;
    return a / x;
  }

We currently generate an unsigned division and a left shift, where
we could instead generate a right shift.

gcc/

2017-06-21  James Greenhalgh  <james.greenhalgh@arm.com>

* match.pd (A / (1 << B) -> A >> B): New.
* generic-match-head.c: Include optabs-tree.h.
* gimple-match-head.c: Likewise.
* optabs-tree.h (target_supports_op_p): New.
* optabs-tree.c (target_supports_op_p): New.

gcc/testsuite/

2017-06-21  James Greenhalgh  <james.greenhalgh@arm.com>

* gcc.dg/tree-ssa/forwprop-37.c: New.

From-SVN: r249502

7 years agopr65947-14.c: Fix missing brace.
Richard Biener [Thu, 22 Jun 2017 08:33:28 +0000 (08:33 +0000)]
pr65947-14.c: Fix missing brace.

2017-06-22  Richard Biener  <rguenther@suse.de>

* gcc.dg/vect/pr65947-14.c: Fix missing brace.

From-SVN: r249501

7 years agopr65947-14.c: New testcase.
Richard Biener [Thu, 22 Jun 2017 08:14:21 +0000 (08:14 +0000)]
pr65947-14.c: New testcase.

2017-06-22  Richard Biener  <rguenther@suse.de>

* gcc.dg/vect/pr65947-14.c: New testcase.

From-SVN: r249500

7 years agoSupport --sysroot with Solaris ld
Rainer Orth [Thu, 22 Jun 2017 06:54:04 +0000 (06:54 +0000)]
Support --sysroot with Solaris ld

* configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
$gcc_cv_ld --help output.
(gcc_cv_ld_demangle): Likewise.
(gcc_cv_ld_eh_frame_hdr): Likewise.
(gcc_cv_ld_pie): Likewise.
(gcc_cv_ld_as_needed): Likewise.  Prefer native forms unless $gnu_ld.
(gcc_cv_ld_buildid): Likewise.
(gcc_cv_ld_sysroot): Likewise.
(ld_bndplt_support): Likewise.
(ld_pushpopstate_support): Likewise.
* configure: Regenerate.
* config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.

From-SVN: r249496

7 years agoruntime: in traceback, print panic rather than runtime.gopanic
Ian Lance Taylor [Thu, 22 Jun 2017 04:16:23 +0000 (04:16 +0000)]
runtime: in traceback, print panic rather than runtime.gopanic

    The gc toolchain does the same thing, in gentraceback in
    runtime/traceback.go.

    The test for this is TestPanicTraceback in runtime/crash_test.go.  We
    don't yet run that test, but we will in a future change.

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

From-SVN: r249495

7 years agocompiler, runtime: better stack trace for `go f()` where f is nil
Ian Lance Taylor [Thu, 22 Jun 2017 04:13:36 +0000 (04:13 +0000)]
compiler, runtime: better stack trace for `go f()` where f is nil

    The test for this is TestGoNil in the runtime package, which we don't
    run yet but will run with a subsequent gotools patch.

    Updates golang/go#8045

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

From-SVN: r249494

7 years agoDaily bump.
GCC Administrator [Thu, 22 Jun 2017 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r249492

7 years agodebug/elf: handle Alpha relocs
Ian Lance Taylor [Wed, 21 Jun 2017 22:39:36 +0000 (22:39 +0000)]
debug/elf: handle Alpha relocs

    Patch by Uros Bizjak.

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

From-SVN: r249487

7 years agocompiler: fix missing case in Array_type::get_value_pointer
Ian Lance Taylor [Wed, 21 Jun 2017 22:29:58 +0000 (22:29 +0000)]
compiler: fix missing case in Array_type::get_value_pointer

    Update the code in Array_type::get_value_pointer that handles
    "lvalue" context to look for both regular var expressions
    and temp var expressions, since both can appear in array/slice
    index expressions on the left hand side of assignments.

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

From-SVN: r249486

7 years agoForgot to remove this file in the last libgo commit.
Ian Lance Taylor [Wed, 21 Jun 2017 22:29:36 +0000 (22:29 +0000)]
Forgot to remove this file in the last libgo commit.

libgo: remove old MIPS architecture names

    This removes the old names for the 3 main MIPS ABIs: mipso32, mipsn32
    and mipsn64. It also removes the mipso64 ABI which has no equivalent
    architecture name in go. This ABI has been dead for sometime and I doubt
    anyone will miss it.

    Change-Id: I087b243784edf6705fdaf9c32e3233da5e387283

From-SVN: r249485

7 years agolibgo: remove old MIPS architecture names
Ian Lance Taylor [Wed, 21 Jun 2017 22:11:04 +0000 (22:11 +0000)]
libgo: remove old MIPS architecture names

    This removes the old names for the 3 main MIPS ABIs: mipso32, mipsn32
    and mipsn64. It also removes the mipso64 ABI which has no equivalent
    architecture name in go. This ABI has been dead for sometime and I doubt
    anyone will miss it.

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

From-SVN: r249477

7 years agolibgo: use gc's arch names as the default GOARCHs on MIPS
Ian Lance Taylor [Wed, 21 Jun 2017 21:55:34 +0000 (21:55 +0000)]
libgo: use gc's arch names as the default GOARCHs on MIPS

    This means that the gc tools and gofrontend agree on the architecture names
    for the 3 MIPS ABIs which should allow a gofrontend compiler to build go.

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

From-SVN: r249476

7 years agocmd/cgo: add mips64p32* to ptrSizeMap and intSizeMap
Ian Lance Taylor [Wed, 21 Jun 2017 21:50:52 +0000 (21:50 +0000)]
cmd/cgo: add mips64p32* to ptrSizeMap and intSizeMap

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

From-SVN: r249475

7 years agointernal/syscall/unix: implement randomTrap on mips64p32*
Ian Lance Taylor [Wed, 21 Jun 2017 21:47:35 +0000 (21:47 +0000)]
internal/syscall/unix: implement randomTrap on mips64p32*

    Rename getrandom_linux_mipsn32.go to use the new architecture name for
    the n32 ABI and enable building it on mips64p32 and mips64p32le.

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

From-SVN: r249474

7 years agolibgo, syscall: fix ptrace implementation on MIPS
Ian Lance Taylor [Wed, 21 Jun 2017 21:46:03 +0000 (21:46 +0000)]
libgo, syscall: fix ptrace implementation on MIPS

    On MIPS, the correct structure for PtraceRegs is 'struct pt_regs' which
    is declared in linux/ptrace.h. Previously no PtraceRegs structure was
    created on MIPS because 'struct user_regs_struct' doesn't exist there.

    Fallback to using pt_regs when the PtraceRegs structure is generated in
    mksysinfo.sh, then adjust syscall_linux_mipsx.go to read the program
    counter from the correct field.

    In addition, implement PtraceGetRegs and PtraceSetRegs on all 3 ABI
    variants.

    syscall_linux_mips64x.go can now be removed since the ptrace code on
    all 3 ABIs is identical.

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

From-SVN: r249473

7 years agolibgo, syscall: fix ptrace implementation on MIPS
Ian Lance Taylor [Wed, 21 Jun 2017 21:42:41 +0000 (21:42 +0000)]
libgo, syscall: fix ptrace implementation on MIPS

    On MIPS, the correct structure for PtraceRegs is 'struct pt_regs' which
    is declared in linux/ptrace.h. Previously no PtraceRegs structure was
    created on MIPS because 'struct user_regs_struct' doesn't exist there.

    Fallback to using pt_regs when the PtraceRegs structure is generated in
    mksysinfo.sh, then adjust syscall_linux_mipsx.go to read the program
    counter from the correct field.

    In addition, implement PtraceGetRegs and PtraceSetRegs on all 3 ABI
    variants.

    syscall_linux_mips64x.go can now be removed since the ptrace code on
    all 3 ABIs is identical.

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

From-SVN: r249472

7 years agore PR target/80510 (Optimize Power7/power8 Altivec load/stores)
Michael Meissner [Wed, 21 Jun 2017 21:08:40 +0000 (21:08 +0000)]
re PR target/80510 (Optimize Power7/power8 Altivec load/stores)

2017-06-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/80510
* gcc.target/powerpc/pr80510-1.c: Restrict test to 64-bit until
32-bit support is added.  Change ITYPE size to 64-bit integer.
* gcc.target/powerpc/pr80510-2.c: Likewise.

From-SVN: r249470

7 years agore PR target/81151 (-Wmaybe-uninitialized in insn-emit.c)
Jakub Jelinek [Wed, 21 Jun 2017 20:02:00 +0000 (22:02 +0200)]
re PR target/81151 (-Wmaybe-uninitialized in insn-emit.c)

PR target/81151
* config/i386/sse.md (round<mode>2): Renumber match_dup and
operands indexes to avoid gap between operands and match_dups.

From-SVN: r249469

7 years agoPR libstdc++/80675, PR libstdc++/80940
Ville Voutilainen [Wed, 21 Jun 2017 19:53:26 +0000 (22:53 +0300)]
PR libstdc++/80675, PR libstdc++/80940

* include/std/istream:
(__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New.
(__do_is_convertible_to_basic_istream_impl): Likewise.
(__is_convertible_to_basic_istream_impl): Likewise.
(__is_convertible_to_basic_istream): Use the new base.
(__rvalue_istream_type): New.
(operator>>(_Istream&&, _Tp&&)): Use the new helper alias
for the SFINAE check, convert to the helper alias type before
doing the actual extraction.
* include/std/ostream:
(__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New.
(__do_is_convertible_to_basic_ostream_impl): Likewise.
(__is_convertible_to_basic_ostream_impl): Likewise.
(__is_convertible_to_basic_ostream): Use the new base.
(__rvalue_ostream_type): New.
(operator<<(_Ostream&&, const _Tp&)): Use the new helper alias
for the SFINAE check, convert to the helper alias type before
doing the actual insertion.
* testsuite/27_io/rvalue_streams-2.cc: Add new tests.

From-SVN: r249468

7 years agore PR c++/81154 (OpenMP with shared variable in a template class crash)
Jakub Jelinek [Wed, 21 Jun 2017 18:30:32 +0000 (20:30 +0200)]
re PR c++/81154 (OpenMP with shared variable in a template class crash)

PR c++/81154
* semantics.c (handle_omp_array_sections_1, finish_omp_clauses):
Complain about t not being a variable if t is OVERLOAD even
when processing_template_decl.

* g++.dg/gomp/pr81154.C: New test.

From-SVN: r249467

7 years agoFix variant selection in dg-cmp-results.sh
Thomas Preud'homme [Wed, 21 Jun 2017 16:20:57 +0000 (16:20 +0000)]
Fix variant selection in dg-cmp-results.sh

2017-06-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    contrib/
    * dg-cmp-results.sh: Restore filtering on target variant.

From-SVN: r249463

7 years agoMAINTAINERS: Add myself as maintainer for PowerPC SPE port.
Andrew Jenner [Wed, 21 Jun 2017 16:17:24 +0000 (16:17 +0000)]
MAINTAINERS: Add myself as maintainer for PowerPC SPE port.

       * MAINTAINERS: Add myself as maintainer for PowerPC SPE port.

From-SVN: r249462

7 years agoC++: Add fix-it hints for -Wold-style-cast
David Malcolm [Wed, 21 Jun 2017 16:11:36 +0000 (16:11 +0000)]
C++: Add fix-it hints for -Wold-style-cast

gcc/cp/ChangeLog:
* parser.c (get_cast_suggestion): New function.
(maybe_add_cast_fixit): New function.
(cp_parser_cast_expression): Capture the location of the closing
parenthesis.  Call maybe_add_cast_fixit when emitting warnings
about old-style casts.

gcc/testsuite/ChangeLog:
* g++.dg/other/old-style-cast-fixits.C: New test case.

From-SVN: r249461

7 years agoaarch64-cost-tables.h (thunderx_extra_costs): Increment Arith_shift and Arith_shift_r...
Andrew Pinski [Wed, 21 Jun 2017 15:58:12 +0000 (15:58 +0000)]
aarch64-cost-tables.h (thunderx_extra_costs): Increment Arith_shift and Arith_shift_reg by 1.

2017-06-21  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
        Increment Arith_shift and Arith_shift_reg by 1.
        * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
        New tuning flag.
        * config/aarch64/aarch64.c (thunderx_tunings): Enable
        AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
        (aarch64_strip_extend): Add new argument and test for it.
        (aarch64_cheap_mult_shift_p): New function.
        (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
        add a cost if it is true.
        Update calls to aarch64_strip_extend.
        (aarch64_rtx_costs): Update calls to aarch64_strip_extend.

From-SVN: r249459

7 years agoaarch64-cores.def (thunderxt88p1): Use thunderxt88 tunings.
Andrew Pinski [Wed, 21 Jun 2017 15:35:14 +0000 (15:35 +0000)]
aarch64-cores.def (thunderxt88p1): Use thunderxt88 tunings.

2017-06-21  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
        tunings.
        (thunderxt88): Likewise.
        * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
        (thunderx_prefetch_tune): New variable.
        (thunderx2t99_prefetch_tune): Update for the correct values.
        (thunderxt88_tunings): New variable.
        (thunderx_tunings): Use thunderx_prefetch_tune instead of
        generic_prefetch_tune.
        (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.

From-SVN: r249458

7 years ago[AArch64] Fix atomic_cmp_exchange_zero_reg_1.c with +lse
Kyrylo Tkachov [Wed, 21 Jun 2017 15:26:21 +0000 (15:26 +0000)]
[AArch64] Fix atomic_cmp_exchange_zero_reg_1.c with +lse

* config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
(aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
(aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
(aarch64_atomic_cas<mode>, GPI): Likewise.

From-SVN: r249457

7 years ago* g++.dg/cpp0x/constexpr-cast.C: Adjust dg-error for ILP32.
Jakub Jelinek [Wed, 21 Jun 2017 14:55:40 +0000 (16:55 +0200)]
* g++.dg/cpp0x/constexpr-cast.C: Adjust dg-error for ILP32.

From-SVN: r249455

7 years agoUpdate baseline symbols for aarch64-none-linux-gnu
Ramana Radhakrishnan [Wed, 21 Jun 2017 14:38:56 +0000 (14:38 +0000)]
Update baseline symbols for aarch64-none-linux-gnu

       * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Regenerate

From-SVN: r249454

7 years agoSupport dg-add-options in profopt.exp
Tom de Vries [Wed, 21 Jun 2017 14:14:31 +0000 (14:14 +0000)]
Support dg-add-options in profopt.exp

2017-06-21  Tom de Vries  <tom@codesourcery.com>

* lib/profopt.exp (profopt-get-options): Support dg-add-options.

From-SVN: r249453

7 years agoFix warning in gcc.dg/tree-prof/comp-goto-1.c
Tom de Vries [Wed, 21 Jun 2017 14:14:16 +0000 (14:14 +0000)]
Fix warning in gcc.dg/tree-prof/comp-goto-1.c

2017-06-21  Tom de Vries  <tom@codesourcery.com>

* gcc.dg/tree-prof/comp-goto-1.c: Fix 'return type defaults to int'
warning.

From-SVN: r249452

7 years agoRework cold and hot label attributes in predict.c.
Martin Liska [Wed, 21 Jun 2017 12:52:14 +0000 (14:52 +0200)]
Rework cold and hot label attributes in predict.c.

2017-06-21  Martin Liska  <mliska@suse.cz>

* gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
statements on cold and hot labels.
* predict.c (tree_estimate_probability_bb): Remove the
prediction from this place.
2017-06-21  Martin Liska  <mliska@suse.cz>

* gcc.dg/tree-ssa/attr-hotcold-2.c: Update scanned patterns.

From-SVN: r249451

7 years agoMake early return predictor more precise.
Martin Liska [Wed, 21 Jun 2017 12:51:46 +0000 (14:51 +0200)]
Make early return predictor more precise.

2017-06-21  Martin Liska  <mliska@suse.cz>

PR tree-optimization/79489
* gimplify.c (maybe_add_early_return_predict_stmt): New
function.
(gimplify_return_expr): Call the function.
* predict.c (tree_estimate_probability_bb): Remove handling
of early return.
* predict.def: Update comment about early return predictor.
* gimple-predict.h (is_gimple_predict): New function.
* predict.def: Change default value of early return to 66.
* tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
statements.
* passes.def: Put pass_strip_predict_hints to the beginning of
IPA passes.

From-SVN: r249450

7 years agoDWARF: make it possible to emit debug info for declarations only
Pierre-Marie de Rodat [Wed, 21 Jun 2017 11:24:51 +0000 (11:24 +0000)]
DWARF: make it possible to emit debug info for declarations only

The DWARF back-end used to systematically ignore file-scope function and
variable declarations.  While this is justified in language like C/C++,
where such declarations can appear in several translation units and thus
bloat uselessly the debug info, this behavior is counter-productive in
languages with a well-defined module system.  Specifically, it prevents
the description of imported entities, that belong to foreign languages,
making them unavailable from debuggers.

Take for instance:

    package C_Binding is
        function My_C_Function (I : Integer) return Integer;
        pragma Import (C, My_C_Function, "my_c_function");
    end C_Binding;

This makes available for Ada programs the C function "my_c_function"
under the following name: C_Binding.My_C_Function.  When GCC compiles
it, though, it is represented as a FUNCTION_DECL node with DECL_EXTERNAL
set and a null DECL_INITIAL, which used to be discarded unconditionally
in the DWARF back-end.

This patch moves such filter from the DWARF back-end to the relevant
callers: passes.c:rest_of_decl_compilation and
godump.c:go_early_global_decl. It also This patch also updates the Ada
front-end to call debug hooks for functions such as in the above
example, so that we do generate debugging information for them.

gcc/
* dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
FUNCTION_DECL declarations.
(dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
declarations.
(dwaf2out_decl): Likewise.
* godump.c (go_early_global_decl): Skip call to the real debug hook
for FUNCTION_DECL declarations.
* passes.c (rest_of_decl_compilation): Skip call to the
early_global_decl debug hook for FUNCTION_DECL declarations, unless
-fdump-go-spec is passed.

gcc/ada/
* gcc-interface/ada-tree.h (DECL_FUNCTION_IS_DEF): Update copyright
notice.  New macro.
* gcc-interface/trans.c (Subprogram_Body_to_gnu): Tag the subprogram
as a definition.
(Compilation_Unit_to_gnu): Tag the elaboration procedure as a
definition.
* gcc-interface/decl.c (gnat_to_gnu_entity): Tag declarations of
imported subprograms for the current compilation unit as
definitions.  Disable debug info for references to variables.
* gcc-interface/gigi.h (create_subprog_decl): Update declaration.
* gcc-interface/utils.c (gnat_pushdecl): Add external DECLs that are
not built-in functions to their binding scope.
(create_subprog_decl): Add a DEFINITION parameter.  If it is true, tag
the function as a definition.  Update all callers.
(gnat_write_global_declarations): Emit debug info for imported
functions.  Filter out external variables for which debug info
is disabled.

gcc/testsuite/
* gnat.dg/debug11_pkg.adb, gnat.dg/debug11_pkg.ads,
gnat.dg/debug11_pkg2.ads: New testcase.

From-SVN: r249449

7 years ago[i386] __builtin_ia32_stmxcsr could be pure
Marc Glisse [Wed, 21 Jun 2017 11:20:41 +0000 (13:20 +0200)]
[i386] __builtin_ia32_stmxcsr could be pure

2017-06-21  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* config/i386/i386.c (struct builtin_isa): New field pure_p.
Reorder for compactness.
(def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
(def_builtin_pure, def_builtin_pure2): New functions.
(ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.

gcc/testsuite/
* gcc.target/i386/getround.c: New file.

From-SVN: r249448

7 years agoNOP conversions in X+CST+CST
Marc Glisse [Wed, 21 Jun 2017 11:16:27 +0000 (13:16 +0200)]
NOP conversions in X+CST+CST

2017-06-21  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* match.pd (nop_convert): New predicate.
((A +- CST1) +- CST2): Allow some NOP conversions.

gcc/testsuite/
* gcc.dg/tree-ssa/addadd.c: Un-XFAIL.
* gcc.dg/tree-ssa/addadd-2.c: New file.

From-SVN: r249447

7 years agoline-map.c (location_adhoc_data_update): Perform addition in uintptr_t type rather...
Jakub Jelinek [Wed, 21 Jun 2017 10:59:12 +0000 (12:59 +0200)]
line-map.c (location_adhoc_data_update): Perform addition in uintptr_t type rather than char * type.

* line-map.c (location_adhoc_data_update): Perform addition in
uintptr_t type rather than char * type.  Read *data using
ptrdiff_t type instead of int64_t.
(get_combined_adhoc_loc): Change offset type to ptrdiff_t from
int64_t.

From-SVN: r249446

7 years agore PR c++/81130 (ICE OpenMP shared clause in gimplify_var_or_parm_decl, at gimplify...
Jakub Jelinek [Wed, 21 Jun 2017 10:58:00 +0000 (12:58 +0200)]
re PR c++/81130 (ICE OpenMP shared clause in gimplify_var_or_parm_decl, at gimplify.c:2584)

PR c++/81130
* gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
with ctors/dtors if GOVD_SHARED is set.

* testsuite/libgomp.c++/pr81130.C: New test.

From-SVN: r249445

7 years agoEmit SIMD moves as mov
Wilco Dijkstra [Wed, 21 Jun 2017 10:48:51 +0000 (10:48 +0000)]
Emit SIMD moves as mov

SIMD moves are currently emitted as ORR.  Change this to use the MOV
pseudo instruction just like integer moves (the ARM-ARM states MOV is the
preferred disassembly), improving readability of -S output.

    gcc/
* config/aarch64/aarch64.md (movti_aarch64):
Emit mov rather than orr.
(movtf_aarch64): Likewise.
* config/aarch64/aarch64-simd.md (aarch64_simd_mov):
Emit mov rather than orr.

From-SVN: r249444

7 years agoImprove dup pattern
Wilco Dijkstra [Wed, 21 Jun 2017 10:46:02 +0000 (10:46 +0000)]
Improve dup pattern

Improve the dup pattern to prefer vector registers.  When doing a dup
after a load, the register allocator thinks the costs are identical
and chooses an integer load.  However a dup from an integer register
includes an int->fp transfer which is not modelled.  Adding a '?' to
the integer variant means the cost is increased slightly so we prefer
using a vector register.  This improves the following example:

#include <arm_neon.h>
void f(unsigned *a, uint32x4_t *b)
{
  b[0] = vdupq_n_u32(a[1]);
  b[1] = vdupq_n_u32(a[2]);
}

to:
        ldr     s0, [x0, 4]
        dup     v0.4s, v0.s[0]
        str     q0, [x1]
        ldr     s0, [x0, 8]
        dup     v0.4s, v0.s[0]
        str     q0, [x1, 16]
        ret

    gcc/
* config/aarch64/aarch64-simd.md (aarch64_simd_dup):
Swap alternatives, make integer dup more expensive.

From-SVN: r249443

7 years agoMark symbols as constant
Wilco Dijkstra [Wed, 21 Jun 2017 10:40:21 +0000 (10:40 +0000)]
Mark symbols as constant

Aarch64_legitimate_constant_p currently returns false for symbols,
eventhough they are always valid constants.  This means LOSYM isn't
CSEd correctly.  If we return true CSE works better, resulting in
smaller/faster code (0.3% smaller code on SPEC2006).  Avoid this
for TLS symbols since their sequence is complex.

    gcc/
* config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
Return true for non-tls symbols.

From-SVN: r249442

7 years ago[Patch AArch64] Add initial tuning support for Cortex-A55 and Cortex-A75
James Greenhalgh [Wed, 21 Jun 2017 09:58:57 +0000 (09:58 +0000)]
[Patch AArch64] Add initial tuning support for Cortex-A55 and Cortex-A75

This patch adds support for the ARM Cortex-A75 and
Cortex-A55 processors through the -mcpu/-mtune values cortex-a55 and
cortex-a75, and an ARM DynamIQ big.LITTLE configuration of these two
processors through the -mcpu/-mtune value cortex-a75.cortex-a55

The ARM Cortex-A75 is ARM's latest and highest performance applications
processor. For the initial tuning provided in this patch, I have chosen to
share the tuning structure with its predecessor, the Cortex-A73.

The ARM Cortex-A55 delivers the best combination of power efficiency
and performance in its class. For the initial tuning provided in this patch,
I have chosen to share the tuning structure with its predecessor, the
Cortex-A53.

Both Cortex-A55 and Cortex-A75 support ARMv8-A with the ARM8.1-A and
ARMv8.2-A extensions, along with the cryptography extension, and
the RCPC extensions from ARMv8.3-A. This is reflected in the patch,
-mcpu=cortex-a75 is treated as equivalent to passing -mtune=cortex-a75
-march=armv8.2-a+rcpc .

2017-06-21  James Greenhalgh  <james.greenhalgh@arm.com>

* config/aarch64/aarch64-cores.def (cortex-a55): New.
(cortex-a75): Likewise.
(cortex-a75.cortex-a55): Likewise.
* config/aarch64/aarch64-tune.md: Regenerate.
* doc/invoke.texi (-mtune): Document new values for -mtune.

From-SVN: r249441

7 years agoAdd dg-add-options feature stack_size
Tom de Vries [Wed, 21 Jun 2017 09:10:16 +0000 (09:10 +0000)]
Add dg-add-options feature stack_size

2017-06-21  Tom de Vries  <tom@codesourcery.com>

* doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
stack_size feature.
(Effective-Target Keywords, Other attributes): Suggest using
dg-add-options stack_size feature to get stack limit in stack_size
effective target documentation.

* lib/target-supports.exp (add_options_for_stack_size): New proc.
* gcc.c-torture/execute/920501-7.c: Use dg-add-options stack_size.
* gcc.c-torture/compile/20080806-1.c: Same.
* gcc.c-torture/compile/920723-1.c: Same.
* gcc.c-torture/compile/930621-1.c: Same.
* gcc.c-torture/compile/991214-2.c: Same.
* gcc.c-torture/compile/bcopy.c: Same.
* gcc.c-torture/compile/memtst.c: Same.
* gcc.c-torture/compile/msp.c: Same.
* gcc.c-torture/compile/stuct.c: Same.
* gcc.c-torture/execute/20011008-3.c: Same.
* gcc.c-torture/execute/20030209-1.c: Same.
* gcc.c-torture/execute/20031012-1.c: Same.
* gcc.c-torture/execute/20040805-1.c: Same.
* gcc.c-torture/execute/920410-1.c: Same.
* gcc.c-torture/execute/921113-1.c: Same.
* gcc.c-torture/execute/921202-1.c: Same.
* gcc.c-torture/execute/921208-2.c: Same.
* gcc.c-torture/execute/930106-1.c: Same.
* gcc.c-torture/execute/930406-1.c: Same.
* gcc.c-torture/execute/950221-1.c: Same.
* gcc.c-torture/execute/960521-1.c: Same.
* gcc.c-torture/execute/980605-1.c: Same.
* gcc.c-torture/execute/comp-goto-1.c: Same.
* gcc.c-torture/execute/comp-goto-2.c: Same.
* gcc.c-torture/execute/memcpy-1.c: Same.
* gcc.c-torture/execute/multi-ix.c: Same.
* gcc.c-torture/execute/nestfunc-4.c: Same.
* gcc.c-torture/execute/pr20621-1.c: Same.
* gcc.c-torture/execute/pr23135.c: Same.
* gcc.c-torture/execute/pr28982b.c: Same.
* gcc.dg/loop-3.c: Same.
* gcc.dg/struct-ret-3.c: Same.
* gcc.dg/torture/stackalign/comp-goto-1.c: Same.
* gcc.dg/torture/stackalign/non-local-goto-4.c: Same.
* gcc.dg/tree-prof/comp-goto-1.c: Same.
* gcc.dg/tree-prof/pr44777.c: Same.

From-SVN: r249440

7 years agoPR libstdc++/81092 Regenerate configure for libtool_VERSION change
Jonathan Wakely [Wed, 21 Jun 2017 08:55:26 +0000 (09:55 +0100)]
PR libstdc++/81092 Regenerate configure for libtool_VERSION change

PR libstdc++/81092
* configure: Regenerate.

From-SVN: r249438

7 years agoconfigure.ac: Add AC_SYS_LARGEFILE.
Richard Biener [Wed, 21 Jun 2017 07:04:13 +0000 (07:04 +0000)]
configure.ac: Add AC_SYS_LARGEFILE.

2017-06-21  Richard Biener  <rguenther@suse.de>

* configure.ac: Add AC_SYS_LARGEFILE.
* config.h.in: Regenerate.
* configure: Likewise.

From-SVN: r249436

7 years agore PR gcov-profile/81080 (target libgcov not built with large file support)
Richard Biener [Wed, 21 Jun 2017 07:01:34 +0000 (07:01 +0000)]
re PR gcov-profile/81080 (target libgcov not built with large file support)

2017-06-21  Richard Biener  <rguenther@suse.de>

PR gcov-profile/81080
* configure.ac: Add AC_SYS_LARGEFILE.
* libgcov.h: Include auto-target.h before tsystem.h to pick
up _FILE_OFFSET_BITS which might differ for multilibs.
* config.in: Regenerate.
* configure: Likewise.

From-SVN: r249435

7 years agoUpdate the ChangeLog to include config/arm/cortex-a53.md
Naveen H.S [Wed, 21 Jun 2017 05:47:24 +0000 (05:47 +0000)]
Update the ChangeLog to include config/arm/cortex-a53.md
and config/arm/exynos-m1.md modifications

From-SVN: r249434

7 years ago* config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
Julian Brown [Wed, 21 Jun 2017 05:36:03 +0000 (05:36 +0000)]
* config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
(aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
* config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
reservation.
* config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
attribute type list for neon_multiply.
* config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
* config/arm/types.md (crypto_pmull): Add.
* config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
attribute type list.

Co-Authored-By: Naveen H.S <Naveen.Hurugalawadi@cavium.com>
From-SVN: r249433

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

From-SVN: r249432

7 years agoconfig.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to arm1176jzf-s.
Andreas Tobler [Tue, 20 Jun 2017 21:28:15 +0000 (23:28 +0200)]
config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to arm1176jzf-s.

2017-06-20  Andreas Tobler  <andreast@gcc.gnu.org>

    * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
    arm1176jzf-s.

From-SVN: r249428

7 years agoFix -Werror=class-memaccess failures in jit testsuite (PR jit/81144)
David Malcolm [Tue, 20 Jun 2017 20:37:28 +0000 (20:37 +0000)]
Fix -Werror=class-memaccess failures in jit testsuite (PR jit/81144)

gcc/testsuite/ChangeLog:
PR jit/81144
* jit.dg/test-operator-overloading.cc (make_test_quadratic): Replace
memset call with zero-initialization.
* jit.dg/test-quadratic.cc (make_test_quadratic): Likewise.

From-SVN: r249427

7 years agoira-costs.c (find_costs_and_classes): Initialize cost_classes later to make sure...
Jakub Jelinek [Tue, 20 Jun 2017 19:43:29 +0000 (21:43 +0200)]
ira-costs.c (find_costs_and_classes): Initialize cost_classes later to make sure not to dereference a NULL...

* ira-costs.c (find_costs_and_classes): Initialize cost_classes later
to make sure not to dereference a NULL cost_classes_ptr pointer.

From-SVN: r249426

7 years agopr80732.c: Include fma4-check.h.
Uros Bizjak [Tue, 20 Jun 2017 19:04:07 +0000 (21:04 +0200)]
pr80732.c: Include fma4-check.h.

* gcc.target/i386/pr80732.c: Include fma4-check.h.
(main): Renamed to ...
(fma4_test): ... this.

From-SVN: r249425

7 years agors6000-c.c (altivec_overloaded_builtins): Add ALTIVEC_BUILTIN_VMULESW...
Carl Love [Tue, 20 Jun 2017 18:27:48 +0000 (18:27 +0000)]
rs6000-c.c (altivec_overloaded_builtins): Add ALTIVEC_BUILTIN_VMULESW...

gcc/ChangeLog:

2017-06-20  Carl Love  <cel@us.ibm.com>

* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
* config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
VMULOSW): New enum "unspec" values.
(vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
altivec_vmulosw): New patterns.
* config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
VMULOSW): Add definitions.

From-SVN: r249424

7 years agoFix rounding pattern similar to PR73350.
Julia Koval [Tue, 20 Jun 2017 18:20:51 +0000 (20:20 +0200)]
Fix rounding pattern similar to PR73350.

gcc/
* config/i386/i386.c: Fix rounding expand for new pattern.
* config/i386/subst.md: Fix pattern (parallel -> unspec).
gcc/testsuite/
* gcc.target/i386/pr73350-2.c: New test.

From-SVN: r249423

7 years agoSupport multi-tool sum files in dg-cmp-results.sh
Thomas Preud'homme [Tue, 20 Jun 2017 16:52:53 +0000 (16:52 +0000)]
Support multi-tool sum files in dg-cmp-results.sh

2017-06-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    contrib/
    * dg-cmp-results.sh: Keep test result lines rather than throwing
    header and summary to support sum files with multiple tools.

From-SVN: r249422

7 years agoPR c++/80972 - C++17 ICE with attribute packed.
Jason Merrill [Tue, 20 Jun 2017 16:47:17 +0000 (12:47 -0400)]
PR c++/80972 - C++17 ICE with attribute packed.

* call.c (build_over_call): Allow a TARGET_EXPR from reference
binding.

From-SVN: r249420

7 years agocp-tree.h (CPTI_NELTS_IDENTIFIER): Delete.
Nathan Sidwell [Tue, 20 Jun 2017 16:27:55 +0000 (16:27 +0000)]
cp-tree.h (CPTI_NELTS_IDENTIFIER): Delete.

* cp-tree.h (CPTI_NELTS_IDENTIFIER): Delete.
(nelts_identifier): Delete.
* decl.c (initialize_predefined_identifiers): Remove nelts.

From-SVN: r249419

7 years agobaseline_symbols.txt: Update.
Uros Bizjak [Tue, 20 Jun 2017 15:50:57 +0000 (17:50 +0200)]
baseline_symbols.txt: Update.

* config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.

From-SVN: r249418

7 years ago[Patch AArch64] Add rcpc extension
James Greenhalgh [Tue, 20 Jun 2017 14:49:13 +0000 (14:49 +0000)]
[Patch AArch64] Add rcpc extension

gcc/

* config/aarch64/aarch64-option-extensions.def (rcpc): New.
* config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.

From-SVN: r249414

7 years ago[Patch AArch64 obvious] Fix expected string for fp16 extensions
James Greenhalgh [Tue, 20 Jun 2017 13:36:46 +0000 (13:36 +0000)]
[Patch AArch64 obvious] Fix expected string for fp16 extensions

gcc/

* config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
feature string.

From-SVN: r249411

7 years ago[Patch AArch64 obvious] Rearrange the processors in aarch64-cores.def
James Greenhalgh [Tue, 20 Jun 2017 13:31:38 +0000 (13:31 +0000)]
[Patch AArch64 obvious] Rearrange the processors in aarch64-cores.def

gcc/

* config/aarch64/aarch64-cores.def: Rearrange to sort by
architecture, then by implementer ID.
* config/aarch64/aarch64-tune.md: Regenerate.

From-SVN: r249410

7 years agoAlways check for target i?86 and x86_64
Rainer Orth [Tue, 20 Jun 2017 13:01:32 +0000 (13:01 +0000)]
Always check for target i?86 and x86_64

libstdc++-v3:
* testsuite/20_util/variant/index_type.cc: Allow for all ilp32 and
lp64 targets.

gcc/testsuite:
* c-c++-common/fold-masked-cmp-1.c: Allow for i?86-*-* target.
* c-c++-common/fold-masked-cmp-2.c: Likewise.
* c-c++-common/fold-masked-cmp-3.c: Likewise.
* g++.dg/cpp0x/alignas4.C: Allow for i?86-*-* target, don't
restrict to x86_64-*-*-gnu.
Skip scan-assembler on *-*-darwin*.
* g++.dg/vect/pr70944.cc: Allow for i?86-*-* target.
* gcc.dg/loop-invariant.c: Likewise.
* gcc.dg/lto/pr70955_0.c: Likewise.
* gcc.dg/tree-ssa/pr69196-1.c: Likewise.
* gcc.dg/tree-ssa/pr79803.c: Likewise.
* gfortran.dg/pr68078.f90: Allow for i?86-*-linux*.

* g++.dg/debug/dwarf2/const2b.C: Allow for x86_64-*-* target.
* gcc.dg/attr-ms_struct-1.c: Allow for all i?86-*-*, x86_64-*-*
targets.
* gcc.dg/attr-ms_struct-2.c: Likewise.
* gcc.dg/attr-ms_struct-packed1.c: Likewise.
* gcc.dg/bf-ms-layout.c: Likewise.
* gcc.dg/bf-ms-layout-2.c: Likewise.
* gcc.dg/pic-macro-define.c: Remove target restrictions.
Require fpic support.
* gcc.target/i386/bitfield1.c: Allow for all i?86-*-*, x86_64-*-*
targets.
* gcc.target/i386/bitfield2.c: Likewise.
* gcc.target/i386/darwin-fpmath.c: Allow for x86_64-*-darwin*
targets.
* gfortran.dg/fmt_pf.f90: Remove i?86-*-solaris2.9* from xfail.

From-SVN: r249409

7 years agoPR c++/67074 - namespace aliases
Nathan Sidwell [Tue, 20 Jun 2017 12:53:11 +0000 (12:53 +0000)]
PR c++/67074 - namespace aliases

PR c++/67074 - namespace aliases
* decl.c (duplicate_decls): Don't error here on mismatched
namespace alias.
* name-lookup.c (name_lookup::add_value): Matching namespaces are
not ambiguous.
(diagnose_name_conflict): Namespaces are never redeclarations.
(update_binding): An alias can match a real namespace.

PR c++/67074
* g++.dg/lookup/pr67074.C: New.
* g++.dg/parse/namespace-alias-1.C: Adjust.

From-SVN: r249408

7 years agore PR sanitizer/81097 (UBSAN: false positive for not existing negation operator and...
Richard Biener [Tue, 20 Jun 2017 12:46:46 +0000 (12:46 +0000)]
re PR sanitizer/81097 (UBSAN: false positive for not existing negation operator and a bogus message)

2017-06-20  Richard Biener  <rguenther@suse.de>

PR middle-end/81097
* fold-const.c (split_tree): Fold to type before negating.

* c-c++-common/ubsan/pr81097.c: New testcase.

From-SVN: r249407

7 years agoPrevent fix-it hints from affecting more than one line
David Malcolm [Tue, 20 Jun 2017 10:40:38 +0000 (10:40 +0000)]
Prevent fix-it hints from affecting more than one line

Attempts to apply a removal or replacement fix-it hint to a source
range that covers multiple lines currently lead to nonsensical
results from the printing code in diagnostic-show-locus.c.

We were already filtering them out in edit-context.c (leading
to -fdiagnostics-generate-patch not generating any output for
the whole TU).

Reject attempts to add such fix-it hints within rich_location,
fixing the diagnostic-show-locus.c issue.

gcc/ChangeLog:
* diagnostic-show-locus.c
(selftest::test_fixit_deletion_affecting_newline): New function.
(selftest::diagnostic_show_locus_c_tests): Call it.

libcpp/ChangeLog:
* include/line-map.h (class rich_location): Document that attempts
to delete or replace a range *affecting* multiple lines will fail.
* line-map.c (rich_location::maybe_add_fixit): Implement this
restriction.

From-SVN: r249403

7 years agore PR target/80970 (internal compiler error in find_reloads, at reload.c:4077)
Andreas Schwab [Tue, 20 Jun 2017 10:15:47 +0000 (10:15 +0000)]
re PR target/80970 (internal compiler error in find_reloads, at reload.c:4077)

PR target/80970
* config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
instead of "+d".

From-SVN: r249401

7 years agopr65947-9.c: Adjust.
Richard Biener [Tue, 20 Jun 2017 09:53:29 +0000 (09:53 +0000)]
pr65947-9.c: Adjust.

2017-06-20  Richard Biener  <rguenther@suse.de>

* gcc.dg/vect/pr65947-9.c: Adjust.

From-SVN: r249400

7 years ago[ARM] Implement __ARM_FEATURE_COPROC coprocessor intrinsic feature macro
Thomas Preud'homme [Tue, 20 Jun 2017 09:25:08 +0000 (09:25 +0000)]
[ARM] Implement __ARM_FEATURE_COPROC coprocessor intrinsic feature macro

2017-06-20  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>

    gcc/
    * config/arm/arm-c.c (arm_cpu_builtins): New block to define
    __ARM_FEATURE_COPROC according to support.

    gcc/testsuite/
    * gcc.target/arm/acle/cdp.c: Add feature macro bitmap test.
    * gcc.target/arm/acle/cdp2.c: Likewise.
    * gcc.target/arm/acle/ldc.c: Likewise.
    * gcc.target/arm/acle/ldc2.c: Likewise.
    * gcc.target/arm/acle/ldc2l.c: Likewise.
    * gcc.target/arm/acle/ldcl.c: Likewise.
    * gcc.target/arm/acle/mcr.c: Likewise.
    * gcc.target/arm/acle/mcr2.c: Likewise.
    * gcc.target/arm/acle/mcrr.c: Likewise.
    * gcc.target/arm/acle/mcrr2.c: Likewise.
    * gcc.target/arm/acle/mrc.c: Likewise.
    * gcc.target/arm/acle/mrc2.c: Likewise.
    * gcc.target/arm/acle/mrrc.c: Likewise.
    * gcc.target/arm/acle/mrrc2.c: Likewise.
    * gcc.target/arm/acle/stc.c: Likewise.
    * gcc.target/arm/acle/stc2.c: Likewise.
    * gcc.target/arm/acle/stc2l.c: Likewise.
    * gcc.target/arm/acle/stcl.c: Likewise.

From-SVN: r249399

7 years agotree-chkp.c (chkp_get_hard_register_var_fake_base_address): Rewritten to avoid overfl...
Jakub Jelinek [Tue, 20 Jun 2017 07:22:31 +0000 (09:22 +0200)]
tree-chkp.c (chkp_get_hard_register_var_fake_base_address): Rewritten to avoid overflow for > 32-bit pointers.

* tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
Rewritten to avoid overflow for > 32-bit pointers.

From-SVN: r249398

7 years agore PR sanitizer/81125 (-fsanitize=undefined ICE)
Jakub Jelinek [Tue, 20 Jun 2017 07:10:14 +0000 (09:10 +0200)]
re PR sanitizer/81125 (-fsanitize=undefined ICE)

PR sanitizer/81125
* ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
by removing enum keyword.
(ubsan_type_descriptor): Likewise.  Formatting fix.

From-SVN: r249397

7 years agore PR target/81121 (ICE: in extract_insn, at recog.c:2311)
Jakub Jelinek [Tue, 20 Jun 2017 07:04:27 +0000 (09:04 +0200)]
re PR target/81121 (ICE: in extract_insn, at recog.c:2311)

PR target/81121
* config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
splitter): Require TARGET_SSE2 in the condition.

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

From-SVN: r249396

7 years agore PR target/79799 (Improve vec_insert of float on Power9)
Michael Meissner [Tue, 20 Jun 2017 06:26:27 +0000 (06:26 +0000)]
re PR target/79799 (Improve vec_insert of float on Power9)

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

PR target/79799
* config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
for doing vector set of SFmode on ISA 3.0.
* config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
(vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
element.
(vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
SFmode value into a V4SF variable that was extracted from another
V4SF variable without converting the element to double precision
and back to single precision vector format.
(vsx_insert_extract_v4sf_p9_2): Likewise.

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

PR target/79799
* gcc.target/powerpc/pr79799-1.c: New test.
* gcc.target/powerpc/pr79799-2.c: Likewise.
* gcc.target/powerpc/pr79799-3.c: Likewise.
* gcc.target/powerpc/pr79799-4.c: Likewise.
* gcc.target/powerpc/pr79799-5.c: Likewise.

From-SVN: r249395

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

From-SVN: r249394

7 years agoPR c++/80562 - ICE with constexpr if.
Jason Merrill [Mon, 19 Jun 2017 20:55:27 +0000 (16:55 -0400)]
PR c++/80562 - ICE with constexpr if.

* semantics.c (finish_if_stmt_cond): Call
instantiate_non_dependent_expr.

From-SVN: r249387

7 years agoPR c++/80829 - ICE with constexpr copy of base subobject.
Jason Merrill [Mon, 19 Jun 2017 20:55:21 +0000 (16:55 -0400)]
PR c++/80829 - ICE with constexpr copy of base subobject.

* constexpr.c (clear_no_implicit_zero): New.
(cxx_eval_call_expression): Call it.

From-SVN: r249386

7 years agore PR c++/81124 (internal compiler error: in operator*, at cp/cp-tree.h:726)
Nathan Sidwell [Mon, 19 Jun 2017 19:11:31 +0000 (19:11 +0000)]
re PR c++/81124 (internal compiler error: in operator*, at cp/cp-tree.h:726)

PR c++/81124
PR c++/79766
* name-lookup.c (set_decl_namespace): Don't follow using
directives and ignore using decls.  Only check overly-explicit
scope after discovering decl.

* g++.dg/lookup/pr79766.C: New.
* g++.dg/lookup/pr81124.C: New.
* g++.dg/template/explicit6.C: Adjust.
* g++.old-deja/g++.other/decl5.C: Adjust.

From-SVN: r249385

7 years agobadalloc1.C: Remove code path for -DSTACK_SIZE.
Christophe Lyon [Mon, 19 Jun 2017 18:59:00 +0000 (18:59 +0000)]
badalloc1.C: Remove code path for -DSTACK_SIZE.

* g++.old-deja/g++.eh/badalloc1.C: Remove code path for -DSTACK_SIZE.

2017-06-19  Christophe Lyon  <christophe.lyon@linaro.org>

* g++.old-deja/g++.eh/badalloc1.C: Remove code path for
-DSTACK_SIZE.

From-SVN: r249384

7 years agoPR c++/81073 - constexpr and static var in statement-expression.
Jason Merrill [Mon, 19 Jun 2017 18:20:10 +0000 (14:20 -0400)]
PR c++/81073 - constexpr and static var in statement-expression.

* typeck2.c (store_init_value): Always call
require_potential_constant_expression.
* pt.c (convert_nontype_argument): Likewise.
* constexpr.c (potential_constant_expression_1): Adjust message.
Use decl_maybe_constant_var_p instead of decl_constant_var_p.
* decl2.c (decl_maybe_constant_var_p): Consider initializer.

From-SVN: r249382

7 years agotree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply in UWHI to avoid...
Jakub Jelinek [Mon, 19 Jun 2017 17:56:44 +0000 (19:56 +0200)]
tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply in UWHI to avoid undefined overflow.

* tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
in UWHI to avoid undefined overflow.

From-SVN: r249381

7 years agore PR sanitizer/81125 (-fsanitize=undefined ICE)
Jakub Jelinek [Mon, 19 Jun 2017 15:28:42 +0000 (17:28 +0200)]
re PR sanitizer/81125 (-fsanitize=undefined ICE)

PR sanitizer/81125
* ubsan.h (enum ubsan_encode_value_phase): New.
(ubsan_encode_value): Change second argument to
enum ubsan_encode_value_phase with default value of
UBSAN_ENCODE_VALUE_GENERIC.
* ubsan.c (ubsan_encode_value): Change second argument to
enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
create_tmp_var_raw instead of create_tmp_var and use a
TARGET_EXPR.
(ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
ubsan_encode_value callers.

* g++.dg/ubsan/pr81125.C: New test.

From-SVN: r249376

7 years agore PR sanitizer/81111 (Cannot build libstdc++ with -fsanitize=undefined)
Jakub Jelinek [Mon, 19 Jun 2017 15:27:40 +0000 (17:27 +0200)]
re PR sanitizer/81111 (Cannot build libstdc++ with -fsanitize=undefined)

PR sanitizer/81111
* ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
use create_tmp_var_raw instead of create_tmp_var, mark it addressable
just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.

* g++.dg/ubsan/pr81111.C: New test.

From-SVN: r249375

7 years agore PR tree-optimization/81118 (ice in remove_redundant_iv_tests)
Richard Biener [Mon, 19 Jun 2017 15:08:02 +0000 (15:08 +0000)]
re PR tree-optimization/81118 (ice in remove_redundant_iv_tests)

2017-06-19  Richard Biener  <rguenther@suse.de>

PR middle-end/81118
* tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
estimates if we changed anything.

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

From-SVN: r249374

7 years agore PR bootstrap/80887 (gnat bootstrap fails at s-regpat.o: raised STORAGE_ERROR ...
Richard Biener [Mon, 19 Jun 2017 15:01:13 +0000 (15:01 +0000)]
re PR bootstrap/80887 (gnat bootstrap fails at s-regpat.o: raised STORAGE_ERROR : stack overflow or erroneous memory access)

2017-06-19  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80887
        c/
* gimple-parser.c (c_parser_gimple_postfix_expression): Handle
negated _Literals to parse _Literal (int) -1.

* tree-ssa-sccvn.c (mprts_hook_cnt): New global.
(vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
simplified lookups, then reset mprts_hook.
(vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
simplifying.
(try_to_simplify): Likewise.

* gcc.dg/tree-ssa/pr80887.c: New testcase.

From-SVN: r249373

7 years agore PR ipa/81112 (internal compiler error: tree check: expected integer_cst, have...
Jakub Jelinek [Mon, 19 Jun 2017 14:35:18 +0000 (16:35 +0200)]
re PR ipa/81112 (internal compiler error: tree check: expected integer_cst, have range_expr in get_len, at tree.h:5321)

PR ipa/81112
* g++.dg/torture/pr81112.C: Add -Wno-psabi to dg-additional-options.

From-SVN: r249371

7 years agopt.c (coerce_template_parms): Fix indentation.
Nathan Sidwell [Mon, 19 Jun 2017 14:19:35 +0000 (14:19 +0000)]
pt.c (coerce_template_parms): Fix indentation.

* pt.c (coerce_template_parms): Fix indentation.
(tsubst_decl): Remove repeated SET_DECL_RTL.  Move VAR_P handling
in to single block.

From-SVN: r249370

7 years agore PR c++/81119 (-Wshadow warns on "typedef struct foo foo;")
Nathan Sidwell [Mon, 19 Jun 2017 14:13:58 +0000 (14:13 +0000)]
re PR c++/81119 (-Wshadow warns on "typedef struct foo foo;")

PR c++/81119
* name-lookup.c (update_binding): Only warn about constructors
hidden by functions.

PR c++/81119
* g++.dg/warn/pr81119.C: New.

From-SVN: r249369

7 years agoInitialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST (PR sanitizer/80879).
Martin Liska [Mon, 19 Jun 2017 13:27:48 +0000 (15:27 +0200)]
Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST (PR sanitizer/80879).

2017-06-19  Martin Liska  <mliska@suse.cz>

PR sanitizer/80879
* gimplify.c (gimplify_switch_expr):
Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
2017-06-19  Martin Liska  <mliska@suse.cz>

PR sanitizer/80879
* gcc.dg/asan/use-after-scope-switch-4.c: New test.

From-SVN: r249368

7 years agoEnable -flto in all PGO stages for bootstrap-lto-{,noplugin}.mk.
Martin Liska [Mon, 19 Jun 2017 13:20:20 +0000 (15:20 +0200)]
Enable -flto in all PGO stages for bootstrap-lto-{,noplugin}.mk.

2017-06-19  Martin Liska  <mliska@suse.cz>

* bootstrap-lto-noplugin.mk: Enable -flto in all PGO stages.
* bootstrap-lto.mk: Likewise.

From-SVN: r249367

7 years agoIntroduce 4-stages profiledbootstrap to get a better profile.
Martin Liska [Mon, 19 Jun 2017 13:19:56 +0000 (15:19 +0200)]
Introduce 4-stages profiledbootstrap to get a better profile.

2017-06-19  Martin Liska  <mliska@suse.cz>

* doc/install.texi: Document that PGO runs in 4 stages.
2017-06-19  Martin Liska  <mliska@suse.cz>

* Makefile.def: Define 4 stages PGO bootstrap.
* Makefile.tpl: Define FLAGS.
* Makefile.in: Regenerate.

From-SVN: r249366

7 years agoFix multi-versioning issues (PR ipa/80732).
Martin Liska [Mon, 19 Jun 2017 13:12:51 +0000 (15:12 +0200)]
Fix multi-versioning issues (PR ipa/80732).

2017-06-19  Martin Liska  <mliska@suse.cz>

PR ipa/80732
* attribs.c (make_dispatcher_decl): Do not append '.ifunc'
to dispatcher function name.
* multiple_target.c (replace_function_decl): New function.
(create_dispatcher_calls): Redirect both edges and references.
2017-06-19  Martin Liska  <mliska@suse.cz>

PR ipa/80732
* gcc.target/i386/mvc5.c: Scan indirect_function.
* gcc.target/i386/mvc7.c: Likewise.
* gcc.target/i386/pr80732.c: New test.

From-SVN: r249365

7 years agore PR c++/66093 (g++ produces incorrect output on code with constexpr function initia...
Paolo Carlini [Mon, 19 Jun 2017 10:15:57 +0000 (10:15 +0000)]
re PR c++/66093 (g++ produces incorrect output on code with constexpr function initializing class with private fields)

2017-06-19  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/66093
* g++.dg/cpp1y/constexpr-66093.C: New.

From-SVN: r249364

7 years agoUpdate Solaris baselines for GCC 8.0 (PR libstdc++/81092)
Rainer Orth [Mon, 19 Jun 2017 10:06:41 +0000 (10:06 +0000)]
Update Solaris baselines for GCC 8.0 (PR libstdc++/81092)

* config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
* config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
* config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
* config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
* config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
* config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
Likewise.
* config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
* config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
Likewise.

From-SVN: r249362

7 years agoFix typo
Jan Hubicka [Mon, 19 Jun 2017 09:50:13 +0000 (09:50 +0000)]
Fix typo

From-SVN: r249361

7 years agoprofile-count.c (profile_count::dump): Dump quality.
Jan Hubicka [Mon, 19 Jun 2017 09:47:31 +0000 (11:47 +0200)]
profile-count.c (profile_count::dump): Dump quality.

* profile-count.c (profile_count::dump): Dump quality.
(profile_count::differs_from_p): Update for unsigned val.
* profile-count.h (profile_count_quality): New enum.
(profile_count): Turn m_val to 62bit unsigned, add quality tracking.

From-SVN: r249360

7 years agoRemove reference to Solaris 2.[56]
Rainer Orth [Mon, 19 Jun 2017 09:29:16 +0000 (09:29 +0000)]
Remove reference to Solaris 2.[56]

* g++.dg/other/unused1.C: Remove *-*-solaris2.[56]* from
dg-skip-if list.

From-SVN: r249359