Arnaud Charlet [Fri, 20 Jan 2017 10:31:58 +0000 (11:31 +0100)]
[multiple changes]
2017-01-20 Yannick Moy <moy@adacore.com>
* sem_ch10.adb (Check_No_Elab_Code_All): Do not issue an error
on implicitly with'ed units in GNATprove mode.
* sinfo.ads (Implicit_With): Document use of flag for implicitly
with'ed units in GNATprove mode.
2017-01-20 Ed Schonberg <schonberg@adacore.com>
* sem_cat.adb (Validate_Static_Object_Name): In a preelaborated
unit Do not report an error on a non-static entity that appears
in the context of a spec expression, such as an aspect expression.
2017-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* einfo.adb: Flag298 now denotes Is_Underlying_Full_View.
(Is_Underlying_Full_View): New routine.
(Set_Is_Underlying_Full_View): New routine.
(Write_Entity_Flags): Add an entry for Is_Underlying_Full_View.
* einfo.ads Add new attribute Is_Underlying_Full_View.
(Is_Underlying_Full_View): New routine along with pragma Inline.
(Set_Is_Underlying_Full_View): New routine along with pragma Inline.
* exp_util.adb (Build_DIC_Procedure_Body): Do not consider
class-wide types and underlying full views. The first subtype
is used as the working type for all Itypes, not just array base types.
(Build_DIC_Procedure_Declaration): Do not consider
class-wide types and underlying full views. The first subtype
is used as the working type for all Itypes, not just array
base types.
* freeze.adb (Freeze_Entity): Inherit the freeze node of a full
view or an underlying full view without clobbering the attributes
of a previous freeze node.
(Inherit_Freeze_Node): New routine.
* sem_ch3.adb (Build_Derived_Private_Type): Mark an underlying
full view as such.
(Build_Underlying_Full_View): Mark an underlying full view as such.
* sem_ch7.adb (Install_Private_Declarations): Mark an underlying
full view as such.
From-SVN: r244696
Arnaud Charlet [Fri, 20 Jan 2017 10:30:28 +0000 (11:30 +0100)]
Revert previous change.
From-SVN: r244695
Arnaud Charlet [Fri, 20 Jan 2017 10:20:02 +0000 (11:20 +0100)]
[multiple changes]
2017-01-20 Arnaud Charlet <charlet@adacore.com>
* exp_ch3.adb: Reenable code.
2017-01-20 Yannick Moy <moy@adacore.com>
* sinfo.ads: Document lack of Do_Division_Check flag
on float exponentiation.
From-SVN: r244693
Martin Liska [Fri, 20 Jan 2017 09:45:04 +0000 (10:45 +0100)]
Do not declare artificial variables in tree-profile.c to have a definition (PR lto/69188).
2017-01-20 Martin Liska <mliska@suse.cz>
PR lto/69188
* gcc.dg/lto/pr69188_0.c: New test.
* gcc.dg/lto/pr69188_1.c: New test.
2017-01-20 Martin Liska <mliska@suse.cz>
PR lto/69188
* tree-profile.c (init_ic_make_global_vars): Do not call
finalize_decl.
(gimple_init_gcov_profiler): Likewise.
From-SVN: r244692
Martin Liska [Fri, 20 Jan 2017 08:44:35 +0000 (09:44 +0100)]
Fix IPA CP where it forgot to add a reference in cgraph (PR ipa/71190).
2017-01-20 Martin Liska <mliska@suse.cz>
PR ipa/71190
* cgraph.h (maybe_create_reference): Remove argument and
update comment.
* cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
argument.
* ipa-cp.c (create_specialized_node): Likewise.
* symtab.c (symtab_node::maybe_create_reference): Handle
VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
From-SVN: r244687
Martin Liska [Fri, 20 Jan 2017 08:41:22 +0000 (09:41 +0100)]
Fix --enable-gather-detailed-mem-stats
2017-01-20 Martin Liska <mliska@suse.cz>
* read-rtl-function.c (function_reader::create_function): Use
build_decl instread of build_decl_stat.
From-SVN: r244686
Andrew Senkevich [Fri, 20 Jan 2017 08:37:13 +0000 (08:37 +0000)]
Add AVX512 k-mask intrinsics.
gcc/
* config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
* config/i386/avx512dqintrin.h: Ditto.
* config/i386/avx512fintrin.h: Ditto.
* config/i386/i386-builtin-types.def: Add new types.
* gcc/config/i386/i386.c: Handle new types.
* config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
(__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
(__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
(__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
(__builtin_ia32_kshiftridi): New.
* config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
gcc/testsuite/
* gcc.target/i386/avx512bw-kshiftld-1.c: New test.
* gcc.target/i386/avx512bw-kshiftlq-1.c: Ditto.
* gcc.target/i386/avx512dq-kshiftlb-1.c: Ditto.
* gcc.target/i386/avx512f-kshiftlw-1.c: Ditto.
* gcc.target/i386/avx512bw-kshiftrd-1.c: Ditto.
* gcc.target/i386/avx512bw-kshiftrq-1.c: Ditto.
* gcc.target/i386/avx512dq-kshiftrb-1.c: Ditto.
* gcc.target/i386/avx512f-kshiftrw-1.c: Ditto.
* gcc.target/i386/avx512bw-kshiftld-2.c: Ditto.
* gcc.target/i386/avx512bw-kshiftlq-2.c: Ditto.
* gcc.target/i386/avx512bw-kshiftrd-2.c: Ditto.
* gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
* gcc.target/i386/avx512dq-kshiftlb-2.c: Ditto.
* gcc.target/i386/avx512dq-kshiftrb-2.c: Ditto.
* gcc.target/i386/avx512f-kshiftlw-2.c: Ditto.
* gcc.target/i386/avx512f-kshiftrw-2.c: Ditto.
* gcc.target/i386/avx-1.c: Test new intrinsics.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.
From-SVN: r244685
Jakub Jelinek [Fri, 20 Jan 2017 08:27:29 +0000 (09:27 +0100)]
re PR other/79046 (g++ -print-file-name=plugin uses full version number in path)
PR other/79046
liboffloadmic/
* aclocal.m4: Regenerated.
* Makefile.in: Regenerated.
libcilkrts/
* aclocal.m4: Regenerated.
* Makefile.in: Regenerated.
From-SVN: r244684
Richard Biener [Fri, 20 Jan 2017 08:01:27 +0000 (08:01 +0000)]
re PR tree-optimization/71264 (ICE in convert_move)
2017-01-20 Richard Biener <rguenther@suse.de>
PR tree-optimization/71264
* gcc.dg/vect/pr71264.c: Make sure memory is aligned.
From-SVN: r244683
Jason Merrill [Fri, 20 Jan 2017 04:43:19 +0000 (23:43 -0500)]
US 20 - forwarding references and class template argument deduction
* cp-tree.h (TEMPLATE_TYPE_PARM_FOR_CLASS): New.
* pt.c (push_template_decl_real): Set it.
(maybe_adjust_types_for_deduction): Check it.
(rewrite_template_parm): Copy it.
From-SVN: r244682
Jason Merrill [Fri, 20 Jan 2017 04:43:13 +0000 (23:43 -0500)]
US 19 - deduction guides and constructors
* call.c (joust): Prefer deduction guides to constructors.
* pt.c (build_deduction_guide): Set DECL_ARTIFICIAL.
(deduction_guide_p): Check DECL_P.
From-SVN: r244681
Jonathan Wakely [Fri, 20 Jan 2017 02:36:16 +0000 (02:36 +0000)]
PR72792 PR72793 relax requirements on rebind members
PR libstdc++/72792
PR libstdc++/72793
* include/bits/alloc_traits.h (__allocator_traits_base::__rebind):
Replace with class template using void_t.
(__alloc_rebind): Define in terms of
__allocator_traits_base::__rebind.
(allocator_traits): Remove unconditional static_assert for
rebind_alloc.
* include/bits/ptr_traits.h (__replace_first_arg): Remove type member.
(pointer_traits::__rebind): Replace with class template using void_t.
(pointer_traits::rebind): Define in terms of __rebind.
(pointer_traits): Remove unconditional static_assert for rebind.
* testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test.
* testsuite/20_util/pointer_traits/rebind.cc: New test.
From-SVN: r244680
Ian Lance Taylor [Fri, 20 Jan 2017 02:27:46 +0000 (02:27 +0000)]
re PR go/79146 (Bootstrapping go on s390x fails; redefined symbols)
PR go/79146
crypto/elliptic: explicitly ignore p256_s390x.go
The file only works if used in conjunction with assembly code not
(yet) written for gccgo.
Fixes GCC PR 79146.
Reviewed-on: https://go-review.googlesource.com/35477
From-SVN: r244679
Jonathan Wakely [Fri, 20 Jan 2017 01:22:54 +0000 (01:22 +0000)]
PR69321 fix any_cast<T>(any*) for non-copyable T
PR libstdc++/69321
* include/experimental/any (__any_caster): Avoid instantiating
manager function for types that can't be stored in any.
* include/std/any (__any_caster): Likewise.
* testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type.
* testsuite/experimental/any/misc/any_cast.cc: Likewise.
From-SVN: r244678
Segher Boessenkool [Fri, 20 Jan 2017 01:22:27 +0000 (02:22 +0100)]
rs6000: Fix the new SSP guard configuration code (PR79140)
I foolishly tested this with r241087 reverted. After that revision
default_stack_protect_guard is no longer called if the compiler defaults
to using the TLS guard, which of course is the wrong thing to do if
there is some other way to enable the global guard.
This fixes it.
PR target/78875
PR target/79140
* config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
define to rs6000_init_stack_protect_guard.
(rs6000_init_stack_protect_guard): New function.
From-SVN: r244677
Matthew Fortune [Fri, 20 Jan 2017 01:05:25 +0000 (01:05 +0000)]
config.gcc (supported_defaults): Add madd4.
gcc/
2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
Yunqiang Su <yunqiang.su@imgtec.com>
* config.gcc (supported_defaults): Add madd4.
(with_madd4): Add validation.
(all_defaults): Add madd4.
* config/mips/mips.opt (mmadd4): New option.
* gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
mmadd4.
(TARGET_CPU_CPP_BUILTINS): Add builtin_define for
__mips_no_madd4.
(ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
(ISA_HAS_FUSED_MADD4): Likewise.
* gcc/doc/invoke.texi (-mmadd4): Document the new option.
* gcc/doc/install.texi (--with-madd4): Document the new option.
gcc/testsuite/
2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
* gcc.target/mips/madd4-1.c: New file.
* gcc.target/mips/madd4-2.c: Likewise.
* gcc.target/mips/mips.exp (mips_option_groups): Add ghost option
HAS_MADD4.
(mips_option_groups): Add -m[no-]madd4.
(mips-dg-init): Detect default -mno-madd4.
(mips-dg-options): Handle HAS_MADD4 arch upgrade/downgrade.
* gcc.target/mips/mips-ps-type.c: Add -mmadd4 test option.
* gcc.target/mips/mips-ps-type-2.c: Likewise.
* gcc.target/mips/nmadd-1.c: Likewise.
* gcc.target/mips/nmadd-2.c: Likewise.
* gcc.target/mips/nmadd-3.c: Likewise.
Co-Authored-By: Yunqiang Su <yunqiang.su@imgtec.com>
From-SVN: r244676
Jonathan Wakely [Fri, 20 Jan 2017 00:33:25 +0000 (00:33 +0000)]
PR64903 simplify last fix to std::is_partitioned
PR libstdc++/64903
* include/bits/stl_algo.h (is_partitioned): Use increment instead of
std::advance.
From-SVN: r244675
Jiong Wang [Fri, 20 Jan 2017 00:21:34 +0000 (00:21 +0000)]
[AArch64, libgcc] Add missing file, forget "svn add"
From-SVN: r244674
Jiong Wang [Fri, 20 Jan 2017 00:19:01 +0000 (00:19 +0000)]
[AArch64][4/4] libgcc unwinder support for return address signing
libgcc/
* config/aarch64/aarch64-unwind.h: New file.
(DWARF_REGNUM_AARCH64_RA_STATE): Define.
(MD_POST_EXTRACT_ROOT_ADDR): New target marcro and define it on AArch64.
(MD_POST_EXTRACT_FRAME_ADDR): Likewise.
(MD_POST_FROB_EH_HANDLER_ADDR): Likewise.
(MD_FROB_UPDATE_CONTEXT): Define it on AArch64.
(aarch64_post_extract_frame_addr): New function.
(aarch64_post_frob_eh_handler_addr): New function.
(aarch64_frob_update_context): New function.
* config/aarch64/linux-unwind.h: Include aarch64-unwind.h
* config.host (aarch64*-*-elf, aarch64*-*-rtems*,
aarch64*-*-freebsd*):
Initialize md_unwind_header to include aarch64-unwind.h.
* unwind-dw2.c (struct _Unwind_Context): Define "RA_A_SIGNED_BIT".
(execute_cfa_program): Multiplex DW_CFA_GNU_window_save for
__aarch64__.
(uw_update_context): Honor MD_POST_EXTRACT_FRAME_ADDR.
(uw_init_context_1): Honor MD_POST_EXTRACT_ROOT_ADDR.
(uw_frob_return_addr): New function.
(uw_install_context): Use uw_frob_return_addr.
From-SVN: r244673
GCC Administrator [Fri, 20 Jan 2017 00:16:18 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r244672
Jiong Wang [Fri, 20 Jan 2017 00:10:11 +0000 (00:10 +0000)]
[AArch64][3/4] New PAUTH builtins required by libgcc unwinder
gcc/
* config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
(aarch64_init_pauth_hint_builtins): New.
(aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
(aarch64_expand_builtin): Expand new builtins.
From-SVN: r244669
Jonathan Wakely [Fri, 20 Jan 2017 00:07:14 +0000 (00:07 +0000)]
PR79156 fix std::__enable_shared_from_this extension
PR libstdc++/79156
* include/bits/shared_ptr_base.h (__enable_shared_from_this_base):
Fix return type.
(__enable_shared_from_this): Declare __shared_ptr as a friend.
* testsuite/ext/shared_ptr/1.cc: New test.
From-SVN: r244668
Jiong Wang [Fri, 20 Jan 2017 00:05:30 +0000 (00:05 +0000)]
[AArch64][2/4] Generate dwarf information for -msign-return-address
gcc/
* reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
* combine-stack-adj.c (no_unhandled_cfa): Handle
REG_CFA_TOGGLE_RA_MANGLE.
* dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
* config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
info for return address signing.
(aarch64_expand_epilogue): Likewise.
From-SVN: r244667
Jiong Wang [Fri, 20 Jan 2017 00:03:20 +0000 (00:03 +0000)]
[AArch64][1/4] Support Return address protection on AArch64
gcc/
* config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
* config/aarch64/aarch64-protos.h
(aarch64_return_address_signing_enabled): New declaration.
* config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
New function.
(aarch64_expand_prologue): Sign return address before it's pushed onto
stack.
(aarch64_expand_epilogue): Authenticate return address fetched from
stack.
(aarch64_override_options): Sanity check for ILP32 and ISA level.
(aarch64_attributes): New function attributes for "sign-return-address".
* config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
("*do_return"): Generate combined instructions according to key index.
("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
* config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
iterators.
(pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
* config/aarch64/aarch64.opt (msign-return-address=): New.
* doc/extend.texi (AArch64 Function Attributes): Documents
"sign-return-address=".
* doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
gcc/testsuite/
* gcc.target/aarch64/return_address_sign_1.c: New testcase for no
combined instructions.
* gcc.target/aarch64/return_address_sign_2.c: New testcase for combined
instructions.
* gcc.target/aarch64/return_address_sign_3.c: New testcase for disable
of pointer authentication.
From-SVN: r244666
Matthew Fortune [Thu, 19 Jan 2017 23:58:10 +0000 (23:58 +0000)]
MIPS: Documentation fix for -mlxc1-sxc1
gcc/
* doc/invoke.texi: Add missing -mlxc1-sxc1 options to
overall option summary.
From-SVN: r244665
Jiong Wang [Thu, 19 Jan 2017 23:51:49 +0000 (23:51 +0000)]
[AArch64] Add commandline support for -march=armv8.3-a
gcc/
* config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
* config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
* doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
From-SVN: r244663
Michael Meissner [Thu, 19 Jan 2017 23:31:20 +0000 (23:31 +0000)]
rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable -mpower9-minmax by default for -mcpu=power9.
[gcc]
2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
-mpower9-minmax by default for -mcpu=power9.
(ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
128-bit floating point.
[gcc/testsuite]
2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
* gcc.target/powerpc/float128-hw.c: Do not require IEEE 128-bit
floating point hardware to run test.
From-SVN: r244662
Jonathan Wakely [Thu, 19 Jan 2017 23:30:18 +0000 (23:30 +0000)]
PR64903 fix number of predicate tests in std::is_partitioned
PR libstdc++/64903
* include/bits/stl_algo.h (is_partioned): Don't retest the partition
point.
* testsuite/25_algorithms/is_partitioned/2.cc: New test.
From-SVN: r244661
Alan Modra [Thu, 19 Jan 2017 23:21:53 +0000 (09:51 +1030)]
[RS6000] Don't expand strcmp and strncmp inline when -Os
* config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
optimizing for size.
From-SVN: r244660
Alan Modra [Thu, 19 Jan 2017 23:19:19 +0000 (09:49 +1030)]
[RS6000] PR79144, cmpstrnsi optimization breaks glibc
glibc compiled with current gcc-7 fails one test due to strcmp and
strncmp appearing in the PLT. This is because the inline expansion of
those functions falls back to a function call, but doesn't use the asm
name for the call.
PR target/79144
* config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
for strcmp and strncmp from corresponding builtin decl.
From-SVN: r244659
Jonathan Wakely [Thu, 19 Jan 2017 23:15:13 +0000 (23:15 +0000)]
Fix typo in recent doc updates
* doc/xml/manual/abi.xml: Fix typo.
* doc/html/manual/abi.html: Likewise.
From-SVN: r244658
Louis Krupp [Thu, 19 Jan 2017 23:09:45 +0000 (23:09 +0000)]
Add missing period at end of -ftest-forall-temp option text.
From-SVN: r244657
Jonathan Wakely [Thu, 19 Jan 2017 23:07:52 +0000 (23:07 +0000)]
PR67085 pass comparison functions by reference in heap algorithms
PR libstdc++/67085
* include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
converting constructors from _Iter_less_iter.
(_Iter_comp_val, _Val_comp_iter): Add converting constructors from
_Iter_comp_iter.
(__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
(__val_comp_iter(_Iter_comp_iter<C>): Likewise.
* include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
(__make_heap, __sort_heap): Change _Compare parameters to references.
(__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
(__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
functions as lvalues.
(is_heap): Call __is_heap_until directly to avoid copying __comp.
* testsuite/23_containers/priority_queue/67085.cc: Adjust test to
count copies during construction with empty sequence.
From-SVN: r244656
Uros Bizjak [Thu, 19 Jan 2017 22:00:17 +0000 (23:00 +0100)]
config.gcc (x86_64-*-rtems*): Use i386/rtemself.h instead of i386/rtems-64.h.
* config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
instead of i386/rtems-64.h.
* config/i386/rtems-64.h: Remove.
From-SVN: r244655
Uros Bizjak [Thu, 19 Jan 2017 21:38:44 +0000 (22:38 +0100)]
re PR target/78478 (Compile Error for i386-rtems)
PR target/78478
Revert:
2013-11-05 Uros Bizjak <ubizjak@gmail.com>
* config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
From-SVN: r244653
Uros Bizjak [Thu, 19 Jan 2017 21:00:53 +0000 (22:00 +0100)]
re PR target/78478 (Compile Error for i386-rtems)
PR target/78478
* config/ax_check_define.m4: New file.
libgfortran/ChangeLog:
PR target/78478
* acinclude.m4: Include ../config/ax_check_define.m4
* configure.ac: Check if _SOFT_FLOAT is defined.
* configure.host (i?86 | x86_64): Use fpu-generic when
have_soft_float is set.
* configure: Regenerate.
From-SVN: r244651
Jonathan Wakely [Thu, 19 Jan 2017 20:29:07 +0000 (20:29 +0000)]
Fix unsafe moves inside loops
PR libstdc++/67085
* include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
(__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
* testsuite/23_containers/priority_queue/67085.cc: Adjust expected
number of copies.
* testsuite/25_algorithms/make_heap/movable.cc: New test.
From-SVN: r244650
Tamar Christina [Thu, 19 Jan 2017 18:30:44 +0000 (18:30 +0000)]
aarch64.c (aarch64_simd_gen_const_vector_dup): Change int to HOST_WIDE_INT.
gcc/
2017-01-19 Tamar Christina <tamar.christina@arm.com>
* config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
Change int to HOST_WIDE_INT.
* config/aarch64/aarch64-protos.h
(aarch64_simd_gen_const_vector_dup): Likewise.
* config/aarch64/aarch64-simd.md: Add copysign<mode>3.
gcc/testsuite/
2017-01-19 Tamar Christina <tamar.christina@arm.com>
* gcc/testsuite/lib/target-supports.exp
(check_effective_target_vect_call_copysignf): Enable for AArch64.
From-SVN: r244649
Jonathan Wakely [Thu, 19 Jan 2017 18:26:41 +0000 (18:26 +0000)]
PR67085 move comparison functions in heap operations
PR libstdc++/67085
* include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
(pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
_GLIBCXX_MOVE when passing comparison function to other functions.
(is_heap_until, is_heap): Use std::move when passing comparison
function.
* testsuite/23_containers/priority_queue/67085.cc: New test.
From-SVN: r244648
Rainer Orth [Thu, 19 Jan 2017 17:42:50 +0000 (17:42 +0000)]
Fix gcc.dg/attr-alloc_size-4.c on i?86 (PR testsuite/79051)
PR testsuite/79051
* gcc.dg/attr-alloc_size-4.c (test_int_range) [__i386__ ||
__x86_64__]: Allow for target i?86-*-*.
From-SVN: r244647
David Malcolm [Thu, 19 Jan 2017 17:27:54 +0000 (17:27 +0000)]
Make LTO's implementation of LANG_HOOKS_TYPE_FOR_SIZE the default
gcc/jit/ChangeLog:
* dummy-frontend.c (jit_langhook_type_for_size): Delete.
(LANG_HOOKS_TYPE_FOR_SIZE): Don't redefine.
gcc/ChangeLog:
* langhooks-def.h (lhd_type_for_size): New decl.
(LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
* langhooks.c (lhd_type_for_size): New function, taken from
lto_type_for_size.
gcc/lto/ChangeLog:
* lto-lang.c (builtin_type_for_size): Convert call to
lto_type_for_size to one through the langhook.
(lto_type_for_size): Move to langhooks.c and rename to
lhd_type_for_size.
(LANG_HOOKS_TYPE_FOR_SIZE): Don't redefine.
From-SVN: r244646
Pat Haugen [Thu, 19 Jan 2017 17:11:34 +0000 (17:11 +0000)]
power9.md (power9-alu): Remove 'cmp' type and add define_bypass for CR latency.
* config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
define_bypass for CR latency.
(power9-cracked-alu): Update bypass latency and remove power9-branch.
(power9-alu2): Add define_bypass for CR latency.
(power9-cmp): New.
(power9-mul): Update insn latency.
(power9-mul-compare): Update insn latency, bypass latency and remove
power9-branch.
From-SVN: r244645
Uros Bizjak [Thu, 19 Jan 2017 17:10:40 +0000 (18:10 +0100)]
target.h (htm_available): Determine vendor from __get_cpuid_max return.
* config/x86/target.h (htm_available): Determine vendor from
__get_cpuid_max return. Use signature_INTEL_ebx. Cleanup.
From-SVN: r244644
Kyrylo Tkachov [Thu, 19 Jan 2017 16:59:43 +0000 (16:59 +0000)]
[AArch64] Purge leftover occurrences of aarch64_nopcrelative_literal_loads
* config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
Delete.
* config/aarch64/aarch64.md
(aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
aarch64_nopcrelative_literal_loads.
(aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
From-SVN: r244643
Jonathan Wakely [Thu, 19 Jan 2017 16:40:46 +0000 (16:40 +0000)]
PR78905 define _GLIBCXX_RELEASE macro
PR libstdc++/78905
* doc/xml/manual/abi.xml (abi.versioning.history): Add markup to
macro names, filenames, and literal values. Document _GLIBCXX_RELEASE.
Document that the deprecated _GLIBCXX_VERSION macro was removed for
the 4.0.0 release.
* doc/html/*: Regenerate.
* include/Makefile.am (_GLIBCXX_RELEASE): Set value.
* include/Makefile.in: Regenerate.
* include/bits/c++config (_GLIBCXX_RELEASE): Add #define.
* testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in
dg-error.
From-SVN: r244642
Chenghua Xu [Thu, 19 Jan 2017 16:26:32 +0000 (16:26 +0000)]
MIPS: Make loongson3a use fused madd.d
gcc/
* config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
TARGET_LOONGSON_3A.
(ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
From-SVN: r244641
Matthew Fortune [Thu, 19 Jan 2017 16:05:59 +0000 (16:05 +0000)]
MIPS: PR target/78176 add -mlxc1-sxc1.
gcc/
PR target/78176
* config.gcc (supported_defaults): Add lxc1-sxc1.
(with_lxc1_sxc1): Add validation.
(all_defaults): Add lxc1-sxc1.
* config/mips/mips.opt (mlxc1-sxc1): New option.
* gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
mlxc1-sxc1.
(TARGET_CPU_CPP_BUILTINS): Add builtin_define for
__mips_no_lxc1_sxc1.
(ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
* gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
* doc/install.texi (--with-lxc1-sxc1): Document the new option.
gcc/testsuite/
* gcc.target/mips/lxc1-sxc1-1.c: New file.
* gcc.target/mips/lxc1-sxc1-2.c: Likewise.
* gcc.target/mips/mips.exp (mips_option_groups): Add ghost option
HAS_LXC1.
(mips_option_groups): Add -m[no-]lxc1-sxc1.
(mips-dg-init): Detect default -mno-lxc1-sxc1.
(mips-dg-options): Handle HAS_LXC1 arch upgrade/downgrade.
From-SVN: r244640
Jason Merrill [Thu, 19 Jan 2017 15:59:04 +0000 (10:59 -0500)]
Array decomposition fix.
* decl.c (check_initializer): Always use build_aggr_init for array
decomposition.
From-SVN: r244639
Jakub Jelinek [Thu, 19 Jan 2017 15:53:51 +0000 (16:53 +0100)]
cuda.h (CUdeviceptr): Typedef to unsigned long long even for _WIN64.
* plugin/cuda/cuda.h (CUdeviceptr): Typedef to unsigned long long even
for _WIN64.
From-SVN: r244638
Andre Vehreschild [Thu, 19 Jan 2017 15:52:32 +0000 (16:52 +0100)]
re PR fortran/70696 ([Coarray] ICE on EVENT POST of host-associated EVENT_TYPE coarray)
gcc/fortran/ChangeLog:
2017-01-19 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/70696
* trans-decl.c (gfc_build_qualified_array): Add static decl to parent
function only, when the decl-context is not the translation unit.
gcc/testsuite/ChangeLog:
2017-01-19 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/70696
* gfortran.dg/coarray_43.f90: New test.
From-SVN: r244637
Jakub Jelinek [Thu, 19 Jan 2017 15:41:15 +0000 (16:41 +0100)]
re PR target/79127 (Error: invalid register for .seh_savexmm in matmul_i4.c)
PR target/79127
* acinclude.m4 (LIBGFOR_CHECK_AVX512F): Ensure the test clobbers
some zmm16+ registers to verify they are handled by unwind info
properly if needed.
* configure: Regenerated.
From-SVN: r244636
Jason Merrill [Thu, 19 Jan 2017 14:37:51 +0000 (09:37 -0500)]
PR c++/79130 - decomposition and direct-initialization
* init.c (build_aggr_init): Communicate direct-initialization to
build_vec_init.
(build_vec_init): Check for array copy sooner.
* parser.c (cp_parser_decomposition_declaration): Remove call to
build_x_compound_expr_from_list.
From-SVN: r244635
Arnaud Charlet [Thu, 19 Jan 2017 13:14:04 +0000 (14:14 +0100)]
Code cleanup.
From-SVN: r244634
Arnaud Charlet [Thu, 19 Jan 2017 13:13:19 +0000 (14:13 +0100)]
[multiple changes]
2017-01-19 Javier Miranda <miranda@adacore.com>
* ghost.adb (Propagate_Ignored_Ghost_Code): Protect access to the
identifier attribute of a block-statement node. Required to avoid
assertion failure when building the new containers library.
2017-01-19 Bob Duff <duff@adacore.com>
* exp_ch3.adb: Update comment.
2017-01-19 Vincent Celier <celier@adacore.com>
* gprep.adb (Gnatprep): Parse the definition file without
"replace in comments" even when switch -C is used.
From-SVN: r244633
Arnaud Charlet [Thu, 19 Jan 2017 13:11:22 +0000 (14:11 +0100)]
Minor reformatting.
From-SVN: r244632
Justin Squirek [Thu, 19 Jan 2017 13:10:58 +0000 (13:10 +0000)]
exp_ch9.adb (Is_Pure_Barrier): Create function Is_Count_Attribute to identify an expansion of the 'Count attribute.
2017-01-19 Justin Squirek <squirek@adacore.com>
* exp_ch9.adb (Is_Pure_Barrier): Create function
Is_Count_Attribute to identify an expansion of the 'Count
attribute.
From-SVN: r244631
Arnaud Charlet [Thu, 19 Jan 2017 13:10:09 +0000 (14:10 +0100)]
[multiple changes]
2017-01-19 Pierre-Marie de Rodat <derodat@adacore.com>
* exp_dbug.adb (Debug_Renaming_Declaration): Process underlying types.
Emit GNAT encodings for object renamings involving record components
whose normalized bit offset is not null.
* uintp.h (UI_No_Uint): Declare.
2017-01-19 Ed Schonberg <schonberg@adacore.com>
* sem_ch5.adb (Analyze_Loop_Statement): In GNATprove mode the
statements within an element iterator loop are only analyzed
agter the loop is rewritten. Within a generic the analysis must
be performed in any case to complete name capture.
2017-01-19 Bob Duff <duff@adacore.com>
* sem_prag.adb (Analyze_Pragma): Check for ignored pragmas first,
before checking for unrecognized pragmas.
Initialize Pname on its declarations; that's always good style.
From-SVN: r244630
Claire Dross [Thu, 19 Jan 2017 13:08:16 +0000 (13:08 +0000)]
exp_ch7.adb (Build_Invariant_Procedure_Body): Semi-insert the body into the tree for GNATprove by setting its Parent field.
2017-01-19 Claire Dross <dross@adacore.com>
* exp_ch7.adb (Build_Invariant_Procedure_Body): Semi-insert the
body into the tree for GNATprove by setting its Parent field. The
components invariants of composite types are not checked by
the composite type's invariant procedure in GNATprove mode.
(Build_Invariant_Procedure_Declaration): Semi-insert the
declaration into the tree for GNATprove by setting its Parent
field.
* freeze.adb (Freeze_Arry_Type):In GNATprove mode, do not add
the component invariants to the array type invariant procedure
so that the procedure can be used to check the array type
invariants if any.
(Freeze_Record_Type): In GNATprove mode, do
not add the component invariants to the record type invariant
procedure so that the procedure can be used to check the record
type invariants if any.
From-SVN: r244629
Arnaud Charlet [Thu, 19 Jan 2017 13:02:30 +0000 (14:02 +0100)]
[multiple changes]
2017-01-19 Hristian Kirtchev <kirtchev@adacore.com>
* lib-xref-spark_specific.adb: Minor reformatting.
* exp_ch7.adb (Add_Parent_Invariants): Do not process array types.
2017-01-19 Tristan Gingold <gingold@adacore.com>
* fe.h (Constant_Value): Export.
From-SVN: r244628
Jakub Jelinek [Thu, 19 Jan 2017 12:23:00 +0000 (13:23 +0100)]
re PR other/79046 (g++ -print-file-name=plugin uses full version number in path)
PR other/79046
* aclocal.m4: Include ../config/acx.m4.
* configure: Regenerated.
* Makefile.in: Regenerated.
* mpxrt/Makefile.in: Regenerated.
* mpxwrap/Makefile.in: Regenerated.
From-SVN: r244627
Arnaud Charlet [Thu, 19 Jan 2017 12:04:13 +0000 (13:04 +0100)]
[multiple changes]
2017-01-19 Javier Miranda <miranda@adacore.com>
* exp_aggr.adb (Pass_Aggregate_To_Back_End): Renamed as
Build_Back_End_Aggregate.
(Generate_Aggregate_For_Derived_Type): Code cleanup.
(Prepend_Stored_Values): Code cleanup.
2017-01-19 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Analyze_Expression_Function): Check for an
incomplete return type after attempting to freeze it, so that
other freeze actiona are generated in the proper order.
2017-01-19 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Resolve_Aggregate): If the type is a string
type, ie. a type whose component is a character type, and the
aggregate is positional, do not convert into a string literal
if the index type is not an integer type, because the original
type may be required in an enclosing operation.
2017-01-19 Bob Duff <duff@adacore.com>
* binde.adb, debug.adb: Enable new elaboration order algorithm
by default. -dp switch reverts to the old algorithm.
2017-01-19 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch3.adb Add with and use clauses for Exp_Ch7.
(Analyze_Declarations): Create the DIC and Invariant
procedure bodies s after all freezing has taken place.
(Build_Assertion_Bodies): New routine.
* sem_ch7.adb Remove the with and use clauses for Exp_Ch7
and Exp_Util.
(Analyze_Package_Specification): Remove the
generation of the DIC and Invariant procedure bodies. This is
now done by Analyze_Declarations.
* sem_disp.adb (Check_Dispatching_Operation): DIC and Invariant
procedures are never treated as primitives.
2017-01-19 Yannick Moy <moy@adacore.com>
* frontend.adb: Analyze inlined bodies and check elaboration
rules in GNATprove mode too.
* sem_elab.adb (Delay_Element): Add Boolean component to save
indication that call is in SPARK code. (Check_Elab_Calls):
Check elaboration rules in GNATprove mode, and correctly set
the current value of SPARK_Mode.
* lib-xref-spark_specific.adb
(Add_SPARK_Xrefs): Simplify iteration over dereferences.
2017-01-19 Ed Schonberg <schonberg@adacore.com>
* exp_ch4.adb (Expand_Concatenate): Do no enable overflow
checks on the expression for the high bound of concatenation
when checks are disabled, to suppress warnings about potential
constraint errors in restricted runtimes.
From-SVN: r244626
Hristian Kirtchev [Thu, 19 Jan 2017 12:01:01 +0000 (12:01 +0000)]
exp_ch3.adb (Expand_Freeze_Enumeration_Type): Mark the representation-to-position function as inlined.
2017-01-19 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch3.adb (Expand_Freeze_Enumeration_Type): Mark the
representation-to-position function as inlined.
* sem_cat.adb (Set_Categorization_From_Scope): Do not modify
the purity of an internally generated entity if it has been
explicitly marked as pure for optimization purposes.
* exp_aggr.adb: Minor reformatting.
From-SVN: r244624
Richard Biener [Thu, 19 Jan 2017 12:00:42 +0000 (12:00 +0000)]
re PR rtl-optimization/72488 (wrong code (SIGFPE) at -Os and above on x86_64-linux-gnu (in the 64-bit mode))
2017-01-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/72488
* tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
sure to restore SSA info.
* tree-ssa.c (verify_ssa): Verify SSA info is not shared.
From-SVN: r244623
Arnaud Charlet [Thu, 19 Jan 2017 11:55:21 +0000 (12:55 +0100)]
[multiple changes]
2017-01-19 Javier Miranda <miranda@adacore.com>
* exp_ch6.adb (Expand_Call): Remove side effects on
actuals that are allocators with qualified expression since the
initialization of the object is performed by means of individual
statements (and hence it must be done before the call).
2017-01-19 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Analyze_Declarations): Minor reformatting.
(Build_Derived_Enumeration_Type): If the derived type inherits a
dynamic predicate from its parent, the bounds of the type must
freeze because an explicit constraint is constructed for the
type and the corresponding range is elaborated now.
2017-01-19 Arnaud Charlet <charlet@adacore.com>
* sem_attr.ads: minor fix of inconsistent casing in comment
* lib-writ.ads: minor align comments in columns
* sem_ch3.adb: Minor reformatting.
* spark_xrefs.ads: minor fix typo in SPARK-related comment
* table.ads: minor style fix in comment
* lib-xref-spark_specific.adb
(Add_SPARK_Xrefs): simplify processing of SPARK cross-references.
* sem_ch12.adb: minor whitespace fix
* freeze.adb: Add comment.
* sem_util.adb (Unique_Name): for instances of
generic subprograms ignore the name of the wrapper package.
2017-01-19 Javier Miranda <miranda@adacore.com>
* exp_aggr.adb (Resolve_Record_Aggregate):
Factorize code needed for aggregates of limited and unlimited
types in a new routine.
(Pass_Aggregate_To_Back_End): New subprogram.
2017-01-19 Yannick Moy <moy@adacore.com>
* sinfo.adb (Pragma_Name): Only access up to Last_Pair of Pragma_Map.
From-SVN: r244622
Arnaud Charlet [Thu, 19 Jan 2017 11:51:47 +0000 (12:51 +0100)]
Minor reformatting and code cleanup.
From-SVN: r244621
Arnaud Charlet [Thu, 19 Jan 2017 11:51:22 +0000 (12:51 +0100)]
[multiple changes]
2017-01-19 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.ads, sem_ch4.adb (Try_Object_Operation): Make subprogram
public, for use elsewhere.
* sem_ch6.adb (Analyze_Procedure_Call): In SPARK_Mode and within
an Inlined_body, recognize a call that uses object notation
and has not been rewritten as a regular call because regular
expansion has not taken place.
2017-01-19 Bob Duff <duff@adacore.com>
* checks.adb (Apply_Type_Conversion_Checks): Disable small optimization
in case of generic formal discrete types, because it causes crashes in
the compiler when built with assertions on.
From-SVN: r244620
Arnaud Charlet [Thu, 19 Jan 2017 11:46:14 +0000 (12:46 +0100)]
[multiple changes]
2017-01-19 Hristian Kirtchev <kirtchev@adacore.com>
* lib-xref-spark_specific.adb, sem_util.adb, sem_util.ads,
sem_ch4.adb, sem_ch8.adb, lib-xref.ads: Minor reformatting.
2017-01-19 Bob Duff <duff@adacore.com>
* bcheck.adb (Check_Consistent_Dynamic_Elaboration_Checking):
Increment Warnings_Detected. It was decrementing, which is
wrong since we just issued a warning message.
* binderr.ads (Errors_Detected, Warnings_Detected): Declare
these variables to be of subtype Nat instead of Int, because
they should never be negative.
2017-01-19 Javier Miranda <miranda@adacore.com>
* contracts.adb (Build_Postconditions_Procedure): Replace
Generate_C_Code by Modify_Tree_For_C.
* exp_aggr.adb (Build_Record_Aggr_Code, Expand_Array_Aggregate):
Replace Generate_C_Code by Modify_Tree_For_C.
* exp_attr.adb (Float_Valid, Is_GCC_Target): Replace Generate_C_Code by
Modify_Tree_For_C.
* exp_ch11.adb (Expand_N_Exception_Declaration): Replace
Generate_C_Code by Modify_Tree_For_C.
* exp_ch4.adb (Expand_Allocator_Expression): Replace
Generate_C_Code by Modify_Tree_For_C.
* exp_dbug.adb (Qualify_Entity_Name): Replace Generate_C_Code
by Modify_Tree_For_C.
* exp_util.adb (Remove_Side_Effects, Side_Effect_Free): Replace
Generate_C_Code by Modify_Tree_For_C.
* sem_res.adb (Resolve_Type_Conversion): Replace Generate_C_Code
by Modify_Tree_For_C.
* sinfo.ads (Modify_Tree_For_C): Adding documentation.
From-SVN: r244619
Arnaud Charlet [Thu, 19 Jan 2017 11:42:31 +0000 (12:42 +0100)]
[multiple changes]
2017-01-19 Javier Miranda <miranda@adacore.com>
* sem_util.ads, sem_util.adb (Expression_Of_Expression_Function): New
subprogram.
(Is_Inlinable_Expression_Function): New subprogram.
* exp_ch6.ads, exp_ch6.adb (Expression_Of_Expression_Function): Moved
to Sem_Util.
(Is_Inlinable_Expression_Function): Moved to Sem_Util.
2017-01-19 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Diagnose_Call): Improve error message when a
selected component has a prefix that might be interpreted
as a parameterless function call, but none of the candidate
interpretations is parameterless, and there is a hidden homonym
of the prefix that is a package.
* sem_ch8.adb (Find_Selected_Component): If the prefix might be
interpreted as a parameterless function call and its analysis
fails, do not call Analyze_Selected_Component.
From-SVN: r244618
Arnaud Charlet [Thu, 19 Jan 2017 11:39:55 +0000 (12:39 +0100)]
[multiple changes]
2017-01-19 Steve Baird <baird@adacore.com>
* sem_util.ads: Add new Use_Full_View Boolean parameter to
Get_Index_Bounds.
* sem_util.adb (Get_Index_Bounds): replace calls to Scalar_Range with
calls to a newly-defined Scalar_Range_Of_Right_View function.
2017-01-19 Arnaud Charlet <charlet@adacore.com>
* gnat1drv.adb: minor fix of unbalanced parens in comment
* lib-xref.ads (Traverse_Compilation_Unit): declaration moved
to visible part of the package to allow re-use in GNATprove.
* lib-xref-spark_specific.adb (Traverse_Stub): routine refactored
from repeated code of Traverse_Compilation_Unit.
(Traverse_Declaration_Or_Statement): fixed detection of
generic subprograms and packages; also, iteration over case
statement alternatives rewritten to avoid testing if the first
alternative is present (since it must be present due to Ada
syntax restrictions).
From-SVN: r244617
Hristian Kirtchev [Thu, 19 Jan 2017 11:37:39 +0000 (11:37 +0000)]
exp_ch6.adb (Expand_N_Subprogram_Body): Mark the spec as returning by reference not just for subprogram body stubs...
2017-01-19 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch6.adb (Expand_N_Subprogram_Body): Mark the spec as
returning by reference not just for subprogram body stubs,
but for all subprogram cases.
* sem_util.adb: Code reformatting.
(Requires_Transient_Scope): Update the call to Results_Differ.
(Results_Differ): Update the parameter profile and the associated
comment on usage.
From-SVN: r244616
Arnaud Charlet [Thu, 19 Jan 2017 11:33:35 +0000 (12:33 +0100)]
Minor reformatting.
From-SVN: r244615
Ed Schonberg [Thu, 19 Jan 2017 11:33:17 +0000 (11:33 +0000)]
sem_dim.adb (Analyze_Dimension): Analyze object declaration and identifier nodes that do not come from source...
2017-01-19 Ed Schonberg <schonberg@adacore.com>
* sem_dim.adb (Analyze_Dimension): Analyze object declaration and
identifier nodes that do not come from source, to handle properly
dimensionality check within an inlined body which inclddes both
original operands and rewritten operands. This removes spurious
dimensionality errors in the presence of front-end inlining,
as well as in SPARK mode.
From-SVN: r244614
Richard Earnshaw [Thu, 19 Jan 2017 10:35:38 +0000 (10:35 +0000)]
[expand] Fix for PR rtl-optimization/79121 incorrect expansion of extend plus left shift
When generating a shift from an extended value moving from one to two
machine registers, the type of the right shift is for the most
significant word should be determined by the signedness of the inner
type, not the signedness of the result type.
gcc:
PR rtl-optimization/79121
* expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
of the inner type when shifting an extended value.
gcc/testsuite:
* gcc.c-torture/execute/pr79121.c: New test.
From-SVN: r244613
Jan Hubicka [Thu, 19 Jan 2017 10:00:56 +0000 (11:00 +0100)]
re PR lto/78407 (LTO breaks separate overriding of symbol aliases)
PR lto/78407
* symtab.c (symtab_node::equal_address_to): Fix comparing of
interposable aliases.
From-SVN: r244612
Peter Bergner [Thu, 19 Jan 2017 02:23:35 +0000 (20:23 -0600)]
re PR target/78516 (ICE in lra_assign for e500v2)
PR target/78516
* config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
Use the evmergelohi instruction.
(mov_si<mode>_e500_subreg4_2_le): Likewise.
(mov_sitf_e500_subreg8_2_be): Likewise.
(mov_sitf_e500_subreg12_2_le): Likewise.
(mov_si<mode>_e500_subreg0_2_le): Fix constraints.
(mov_si<mode>_e500_subreg4_2_be): Likewise.
(mov_sitf_e500_subreg8_2_le): Likewise.
(mov_sitf_e500_subreg12_2_be): Likewise.
From-SVN: r244609
GCC Administrator [Thu, 19 Jan 2017 00:16:17 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r244608
Michael Meissner [Thu, 19 Jan 2017 00:12:14 +0000 (00:12 +0000)]
p9-xxbr-1.c: Fix typos in submission.
2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
* gcc.target/powerpc/p9-xxbr-1.c: Fix typos in submission.
* gcc.target/powerpc/p9-xxbr-2.c: Likewise.
From-SVN: r244605
Bill Schmidt [Wed, 18 Jan 2017 22:36:39 +0000 (22:36 +0000)]
altivec.md (altivec_vbpermq): Change "type" attribute from vecsimple to vecperm.
2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/altivec.md (altivec_vbpermq): Change "type"
attribute from vecsimple to vecperm.
(altivec_vbpermq2): Likewise.
From-SVN: r244603
Bill Schmidt [Wed, 18 Jan 2017 22:29:22 +0000 (22:29 +0000)]
re PR target/79040 (vec_cntlz redefined)
2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/79040
* config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
From-SVN: r244602
Louis Krupp [Wed, 18 Jan 2017 21:41:48 +0000 (21:41 +0000)]
re PR fortran/50069 (FORALL fails on a character array)
2017-01-18 Louis Krupp <louis.krupp@zoho.com>
PR fortran/50069
PR fortran/55086
* gfortran.dg/pr50069_1.f90: New test.
* gfortran.dg/pr50069_2.f90: New test.
* gfortran.dg/pr55086_1.f90: New test.
* gfortran.dg/pr55086_1_tfat.f90: New test.
* gfortran.dg/pr55086_2.f90: New test.
* gfortran.dg/pr55086_2_tfat.f90: New test.
* gfortran.dg/pr55086_aliasing_dummy_4_tfat.f90: New test.
2017-01-18 Louis Krupp <louis.krupp@zoho.com>
PR fortran/50069
PR fortran/55086
* trans-expr.c (gfc_conv_variable): Don't treat temporary variables
as function arguments.
* trans-stmt.c (forall_make_variable_temp,
generate_loop_for_temp_to_lhs, gfc_trans_assign_need_temp,
gfc_trans_forall_1): Don't adjust offset of forall temporary
for array sections, make forall temporaries work for substring
expressions, improve test coverage by adding -ftest-forall-temp
option to request usage of temporary array in forall code.
* lang.opt: Add -ftest-forall-temp option.
* invoke.texi: Add -ftest-forall-temp option.
From-SVN: r244601
David Malcolm [Wed, 18 Jan 2017 21:09:32 +0000 (21:09 +0000)]
Implement LANG_HOOKS_TYPE_FOR_SIZE for jit
gcc/jit/ChangeLog:
* dummy-frontend.c (jit_langhook_type_for_size): Implement, using
lto's lto_type_for_size.
From-SVN: r244600
Jason Merrill [Wed, 18 Jan 2017 21:05:12 +0000 (16:05 -0500)]
PR c++/68666 - member variable template-id
* typeck.c (finish_class_member_access_expr): Handle variable
template-id.
* pt.c (lookup_and_finish_template_variable): No longer static.
* cp-tree.h: Declare it.
From-SVN: r244599
Aaron Sawdey [Wed, 18 Jan 2017 20:56:16 +0000 (20:56 +0000)]
rs6000-protos.h (expand_strn_compare): Add arg.
2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
* config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
* config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
strcmp. Fix bug where comparison didn't stop with zero byte. Fix
case where N arg is SIZE_MAX.
* config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
(cmpstrsi): Add pattern.
2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
* gcc.dg/strcmp-1.c: New test.
* gcc.dg/strncmp-1.c: Add test for a bug that escaped.
From-SVN: r244598
David Malcolm [Wed, 18 Jan 2017 20:47:12 +0000 (20:47 +0000)]
jit.dg: fix issue with compilation of test-threads.c
DejaGnu's <dejagnu.h> provides decls of various inline functions,
of which the jit testsuite uses "pass", "fail" and "note".
The jit testcase test-threads.c jumps through some hoops to make
these functions threadsafe, using macros to rename the implementation
in dejagnu.h, giving them a "dejagnu_" prefix, then reimplementing
the names with wrappers that use a mutex.
The DejaGnu functions gained a "static" modifier in
ad36659ffa984a0541cfc2bd27f393e0d7d173a7, which appears to be in
DejaGnu 1.5.2 onwards.
Unfortunately, jit.dg/test-threads.c has forward decls of
"dejagnu_pass" etc, and these don't have "static", leading to conflicts
with later versions of DejaGnu for which "pass" etc have "static".
This patch fixes things by removing the forward decls of
"dejagnu_pass", moving the usage of them to a point at which dejagnu.h
has been included, which ought to work with both earlier and later
versions of DejaGnu.
Fixes compilation of test-threads.c in jit testsuite.
gcc/testsuite/ChangeLog:
* jit.dg/test-threads.c (dejagnu_pass): Remove decl.
(dejagnu_fail): Likewise.
(dejagnu_note): Likewise.
(pass): Provide forward decl, moving true decl to after #include
of harness.h.
(fail): Likewise.
(note): Likewise.
From-SVN: r244597
Torvald Riegel [Wed, 18 Jan 2017 20:22:02 +0000 (20:22 +0000)]
libitm: Disable TSX on processors on which it may be broken.
libitm/ChangeLog
* config/x86/target.h (htm_available): Add check for some processors
on which TSX is broken.
From-SVN: r244594
Michael Meissner [Wed, 18 Jan 2017 19:30:38 +0000 (19:30 +0000)]
rs6000-c.c (altivec_overloaded_builtins): Add __builtin_vec_revb builtins.
[gcc]
2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
__builtin_vec_revb builtins.
* config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
built-in functions to support generation of the ISA 3.0 XXBR<x>
vector byte reverse instructions.
(P9V_BUILTIN_XXBRQ_V1TI): Likewise.
(P9V_BUILTIN_XXBRD_V2DI): Likewise.
(P9V_BUILTIN_XXBRD_V2DF): Likewise.
(P9V_BUILTIN_XXBGW_V4SI): Likewise.
(P9V_BUILTIN_XXBGW_V4SF): Likewise.
(P9V_BUILTIN_XXBGH_V8HI): Likewise.
(P9V_BUILTIN_VEC_REVB): Likewise.
* config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
(p9_xxbrq_v16qi): Likewise.
(p9_xxbrd_<mode>, VSX_D iterator): Likewise.
(p9_xxbrw_<mode>, VSX_W iterator): Likewise.
(p9_xxbrh_v8hi): Likewise.
* config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
* doc/extend.texi (RS/6000 Altivec Built-ins): Document the
vec_revb built-in functions.
[gcc/testsuite]
2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
* gcc.target/powerpc/p9-xxbr-1.c: New test.
* gcc.target/powerpc/p9-xxbr-2.c: Likewise.
From-SVN: r244593
Nathan Sidwell [Wed, 18 Jan 2017 19:27:52 +0000 (19:27 +0000)]
re PR c++/78488 (P0136R1 ICE when building call to inherited default constructor.)
PR c++/78488
* call.c (build_over_call): When checking ellipsis conversions for
an inherited ctor, make sure there is at least one conversion.
* g++.dg/cpp1z/inh-ctor37.C: New.
From-SVN: r244592
Uros Bizjak [Wed, 18 Jan 2017 19:24:30 +0000 (20:24 +0100)]
re PR rtl-optimization/78952 (Combine does not convert 8-bit sign-extract to a zero-extract for QImode operations)
PR rtl-optimization/78952
* config/i386/i386.md (any_extract): New code iterator.
(*insvqi_2): Use any_extract for source operand.
(*insvqi_3): Use any_shiftrt for source operand.
testsuite/ChangeLog:
PR rtl-optimization/78952
* gcc.target/i386/pr78952-1.c: New test.
* gcc.target/i386/pr78952-2.c: Ditto.
From-SVN: r244591
Andre Vehreschild [Wed, 18 Jan 2017 19:03:21 +0000 (20:03 +0100)]
coarray_alloc_with_implicit_sync_2.f90: New test.
gcc/testsuite/ChangeLog:
2017-01-18 Andre Vehreschild <vehre@gcc.gnu.org>
* gfortran.dg/coarray_alloc_with_implicit_sync_2.f90: New test.
Also fixed date in gcc/testsuite/ChangeLog on my previous commit.
gcc/fortran/ChangeLog:
2017-01-18 Andre Vehreschild <vehre@gcc.gnu.org>
* primary.c (caf_variable_attr): Improve figuring whether the current
component is the last one refed.
* trans-stmt.c (gfc_trans_allocate): Do not generate sync_all calls
when allocating pointer or allocatable components.
From-SVN: r244590
Andre Vehreschild [Wed, 18 Jan 2017 18:37:57 +0000 (19:37 +0100)]
gfortran.texi: Add missing parameters to caf-API functions.
gcc/fortran/ChangeLog:
2017-01-18 Andre Vehreschild <vehre@gcc.gnu.org>
* gfortran.texi: Add missing parameters to caf-API functions. Correct
typos and clarify some descriptions.
Adjusted date of my previous commit.
From-SVN: r244589
Jonathan Wakely [Wed, 18 Jan 2017 18:36:45 +0000 (18:36 +0000)]
PR69301 don't assume atomic<T> can default construct T
PR libstdc++/69301
* include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use
aligned buffer instead of default-initialized variable.
* testsuite/29_atomics/atomic/69301.cc: New test.
* include/experimental/memory (observer_ptr::release): Use reserved
name.
* include/ext/pointer.h (_Pointer_adapter::operator++(int))
(_Pointer_adapter::operator--(int)): Likewise.
From-SVN: r244588
Andre Vehreschild [Wed, 18 Jan 2017 18:35:41 +0000 (19:35 +0100)]
re PR fortran/70696 ([Coarray] ICE on EVENT POST of host-associated EVENT_TYPE coarray)
gcc/fortran/ChangeLog:
2017-01-17 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/70696
Missed some parts, here they are:
* trans-decl.c (gfc_build_qualified_array): Add static tokens to the
parent function's scope.
* trans-expr.c (gfc_get_tree_for_caf_expr): Shorten code. Remove
unnecessary assert.
gcc/testsuite/ChangeLog:
2017-01-17 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/70696
* gfortran.dg/coarray_event_1.f08: New test.
From-SVN: r244587
Wilco Dijkstra [Wed, 18 Jan 2017 18:23:34 +0000 (18:23 +0000)]
SHA1H instructions may be scheduled after a SHA1C instruction that uses the same input register.
SHA1H instructions may be scheduled after a SHA1C instruction
that uses the same input register. However SHA1C updates its input,
so if SHA1H is scheduled after it, it requires an extra move.
Increase the priority of SHA1H to ensure it gets scheduled
earlier, avoiding the move.
gcc/
* config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
New function.
(TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
From-SVN: r244586
Jakub Jelinek [Wed, 18 Jan 2017 17:39:56 +0000 (18:39 +0100)]
re PR rtl-optimization/77416 (LRA rematerializing use of CA reg across function call)
PR target/77416
* gcc.target/powerpc/pr77416.c Guard the test only for ilp32 effective
target. Use powerpc* instead of powerpc64* in targets. Remove -m32
from dg-options.
* gcc.target/powerpc/pr64205.c: Remove -m32 from dg-options of ilp32
guarded test.
* gcc.target/powerpc/fusion4.c: Likewise.
* gcc.target/powerpc/pr63491.c: Remove -m64 from dg-options of lp64
guarded test.
* gcc.target/powerpc/pr58673-1.c: Likewise.
* gcc.target/powerpc/pr58673-2.c: Likewise.
* gcc.target/powerpc/pr59054.c: Likewise.
From-SVN: r244585
Jonathan Wakely [Wed, 18 Jan 2017 17:18:47 +0000 (17:18 +0000)]
PR68925 don't use thread_local static for stateless object
PR libstdc++/68925
* include/experimental/random (randint): Use temporary instead of
thread_local static.
From-SVN: r244584
Jason Merrill [Wed, 18 Jan 2017 16:45:27 +0000 (11:45 -0500)]
fix date
From-SVN: r244583
Jason Merrill [Wed, 18 Jan 2017 16:44:27 +0000 (11:44 -0500)]
PR c++/78894 - ICE with class deduction and default arg
* pt.c (build_deduction_guide): Set DECL_PRIMARY_TEMPLATE.
From-SVN: r244582
Maxim Ostapenko [Wed, 18 Jan 2017 16:06:31 +0000 (16:06 +0000)]
re PR lto/79061 ([LTO][ASAN] LTO plus ASAN fails with "AddressSanitizer: initialization-order-fiasco")
PR lto/79061
gcc/
* asan.c (get_translation_unit_decl): New function.
(asan_add_global): Extract modules file name from globals
TRANSLATION_UNIT_DECL in lto mode.
* tree.c (build_translation_unit_decl): Add source location for newly
built TRANSLATION_UNIT_DECL.
gcc/lto/
* lto.c (lto_read_decls): accept location cache for
TRANSLATION_UNIT_DECL.
gcc/testsuite/
* gcc.dg/cpp/mi1.c: Adjust testcase.
* gcc.dg/pch/cpp-3.c: Likewise.
From-SVN: r244581
Markus Trippelsdorf [Wed, 18 Jan 2017 15:49:15 +0000 (15:49 +0000)]
PR c++/77489 -- Reorganize abi warning check
PR c++/77489
* mangle.c (write_discriminator): Reorganize abi warning check.
From-SVN: r244580
Matthias Klose [Wed, 18 Jan 2017 15:48:54 +0000 (15:48 +0000)]
re PR libobjc/78697 (--with-target-bdw-gc-include shouldn't be required to be per multilib)
2017-01-18 Matthias Klose <doko@ubuntu.com>
PR libobjc/78697
* configure.ac: Allow default for --with-target-bdw-gc-include.
* configure: Regenerate.
PR libobjc/78698
* configure.ac: Use the libgc.la file when available.
* configure: Regenerate.
2017-01-18 Matthias Klose <doko@ubuntu.com>
* doc/install.texi: Allow default for --with-target-bdw-gc-include.
From-SVN: r244579