platform/upstream/gcc.git
7 years agoPR c++/78358 - tuple decomposition decltype
Jason Merrill [Tue, 15 Nov 2016 16:32:38 +0000 (11:32 -0500)]
PR c++/78358 - tuple decomposition decltype

* semantics.c (finish_decltype_type): Strip references for a tuple
decomposition.
* cp-tree.h (DECL_DECOMPOSITION_P): False for non-variables.

From-SVN: r242432

7 years agotree-ssa-threadbackward.c (fsm_find_thread_path): Remove unneeded parameter.
Jeff Law [Tue, 15 Nov 2016 16:16:49 +0000 (09:16 -0700)]
tree-ssa-threadbackward.c (fsm_find_thread_path): Remove unneeded parameter.

* tree-ssa-threadbackward.c (fsm_find_thread_path): Remove unneeded
parameter.  Callers changed.
(check-subpath_and_update_thread_path): Extracted from
fsm_find_control_statement_thread_paths.
(handle_phi, handle_assignment, handle_assignment_p): Likewise.
(handle_phi, handle_assignment): Allow any constant node, not
just INTEGER_CST.

From-SVN: r242431

7 years ago* g++.dg/cpp1y/auto-fn33.C (main): Turn // error: ... into dg-bogus.
Jakub Jelinek [Tue, 15 Nov 2016 15:54:29 +0000 (16:54 +0100)]
* g++.dg/cpp1y/auto-fn33.C (main): Turn // error: ... into dg-bogus.

From-SVN: r242430

7 years agoChangeLog: Fix ChangeLog entry.
Uros Bizjak [Tue, 15 Nov 2016 15:43:40 +0000 (16:43 +0100)]
ChangeLog: Fix ChangeLog entry.

* gcc/ChangeLog: Fix ChangeLog entry.
* gcc/c/ChangeLog: Ditto.
* gcc/c-family/ChangeLog: Ditto.
* gcc/cp/ChangeLog: Ditto.

From-SVN: r242429

7 years ago[ARC] [libgcc] Fix defines
Claudiu Zissulescu [Tue, 15 Nov 2016 15:42:17 +0000 (16:42 +0100)]
[ARC] [libgcc] Fix defines

libgcc/
2016-11-15  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/lib1funcs.S (__mulsi3): Use feature defines instead
of checking for cpus.
(__umulsidi3, __umulsi3_highpart, __udivmodsi4, __divsi3)
(__modsi3, __clzsi2): Likewise.

From-SVN: r242428

7 years agore PR c++/71988 (ICE in dump_simple_decl (gcc/cp/error.c:965))
Jakub Jelinek [Tue, 15 Nov 2016 15:21:49 +0000 (16:21 +0100)]
re PR c++/71988 (ICE in dump_simple_decl (gcc/cp/error.c:965))

PR c++/71988
* g++.dg/cpp0x/constexpr-71988.C: New test.

From-SVN: r242426

7 years ago[ARC] New option handling, refurbish multilib support.
Claudiu Zissulescu [Tue, 15 Nov 2016 15:10:13 +0000 (16:10 +0100)]
[ARC] New option handling, refurbish multilib support.

gcc/
2016-11-15  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc-arch.h: New file.
* config/arc/arc-arches.def: Likewise.
* config/arc/arc-cpus.def: Likewise.
* config/arc/arc-options.def: Likewise.
* config/arc/t-multilib: Likewise.
* config/arc/genmultilib.awk: Likewise.
* config/arc/genoptions.awk: Likewise.
* config/arc/arc-tables.opt: Likewise.
* config/arc/driver-arc.c: Likewise.
* testsuite/gcc.target/arc/nps400-cpu-flag.c: Likewise.
* common/config/arc/arc-common.c (arc_handle_option): Trace
toggled options.
* config.gcc (arc*-*-*): Add arc-tables.opt to arc's extra
options; check for supported cpu against arc-cpus.def file.
(arc*-*-elf*, arc*-*-linux-uclibc*): Use new make fragment; define
TARGET_CPU_BUILD macro; add driver-arc.o as an extra object.
* config/arc/arc-c.def: Add emacs local variables.
* config/arc/arc-opts.h (processor_type): Use arc-cpus.def file.
(FPU_FPUS, FPU_FPUD, FPU_FPUDA, FPU_FPUDA_DIV, FPU_FPUDA_FMA)
(FPU_FPUDA_ALL, FPU_FPUS_DIV, FPU_FPUS_FMA, FPU_FPUS_ALL)
(FPU_FPUD_DIV, FPU_FPUD_FMA, FPU_FPUD_ALL): New defines.
(DEFAULT_arc_fpu_build): Define.
(DEFAULT_arc_mpy_option): Define.
* config/arc/arc-protos.h (arc_init): Delete.
* config/arc/arc.c (arc_cpu_name): New variable.
(arc_selected_cpu, arc_selected_arch, arc_arcem, arc_archs)
(arc_arc700, arc_arc600, arc_arc601): New variable.
(arc_init): Add static; remove selection of default tune value,
cleanup obsolete error messages.
(arc_override_options): Make use of .def files for selecting the
right cpu and option configurations.
* config/arc/arc.h (stdbool.h): Include.
(TARGET_CPU_DEFAULT): Define.
(CPP_SPEC): Remove mcpu=NPS400 handling.
(arc_cpu_to_as): Declare.
(EXTRA_SPEC_FUNCTIONS): Define.
(OPTION_DEFAULT_SPECS): Likewise.
(ASM_DEFAULT): Remove.
(ASM_SPEC): Use arc_cpu_to_as.
(DRIVER_SELF_SPECS): Remove deprecated options.
(arc_base_cpu): Declare.
(TARGET_ARC600, TARGET_ARC601, TARGET_ARC700, TARGET_EM)
(TARGET_HS, TARGET_V2, TARGET_ARC600): Make them use arc_base_cpu
variable.
(MULTILIB_DEFAULTS): Use ARC_MULTILIB_CPU_DEFAULT.
* config/arc/arc.md (attr_cpu): Remove.
* config/arc/arc.opt (mno-mpy): Deprecate.
(mcpu=ARC600, mcpu=ARC601, mcpu=ARC700, mcpu=NPS400, mcpu=ARCEM)
(mcpu=ARCHS): Remove.
(mcrc, mdsp-packa, mdvbf, mmac-d16, mmac-24, mtelephony, mrtsc):
Deprecate.
(mbarrel_shifte, mspfp_, mdpfp_, mdsp_pack, mmac_): Remove.
(arc_fpu): Use new defines.
(mpy-option): Change to use numeric or string like inputs.
* config/arc/t-arc (driver-arc.o): New target.
(arc-cpus, t-multilib, arc-tables.opt): Likewise.
* config/arc/t-arc-newlib: Delete.
* config/arc/t-arc-uClibc: Renamed to t-uClibc.
* doc/invoke.texi (ARC): Update arc options.

Fixup

From-SVN: r242425

7 years agoMIPS/GCC: Mark trailing labels with `.insn'
Maciej W. Rozycki [Tue, 15 Nov 2016 15:04:10 +0000 (15:04 +0000)]
MIPS/GCC: Mark trailing labels with `.insn'

gcc/
* config/mips/mips.c (mips16_emit_constants): Emit `consttable'
insn at the beginning of the constant pool.
(mips_insert_insn_pseudos): New function.
(mips_machine_reorg2): Call it.
* config/mips/mips.md (unspec): Add UNSPEC_CONSTTABLE and
UNSPEC_INSN_PSEUDO enum values.
(insn_pseudo, consttable): New insns.

gcc/testsuite/
* gcc.target/mips/insn-casesi.c: New test case.
* gcc.target/mips/insn-pseudo-1.c: New test case.
* gcc.target/mips/insn-pseudo-2.c: New test case.
* gcc.target/mips/insn-pseudo-3.c: New test case.
* gcc.target/mips/insn-pseudo-4.c: New test case.
* gcc.target/mips/insn-tablejump.c: New test case.

From-SVN: r242424

7 years agoMIPS/GCC/test: Implement `-mcode-readable=yes' option test
Maciej W. Rozycki [Tue, 15 Nov 2016 14:57:30 +0000 (14:57 +0000)]
MIPS/GCC/test: Implement `-mcode-readable=yes' option test

gcc/testsuite/
* gcc.target/mips/mips.exp (mips_option_tests): Add
`-mcode-readable=yes' array element.

From-SVN: r242423

7 years agoAllow references in constant-expressions.
Jason Merrill [Tue, 15 Nov 2016 14:55:52 +0000 (09:55 -0500)]
Allow references in constant-expressions.

* decl2.c (decl_maybe_constant_var_p): References qualify.
* constexpr.c (non_const_var_error): Handle references.
* init.c (constant_value_1): Always check decl_constant_var_p.
* cp-gimplify.c (cp_fold_maybe_rvalue): Don't fold references.
* error.c (dump_decl_name): Split out from dump_decl.

From-SVN: r242422

7 years agoMIPS/GCC/test: Implement `-mmicromips' option test
Maciej W. Rozycki [Tue, 15 Nov 2016 14:54:06 +0000 (14:54 +0000)]
MIPS/GCC/test: Implement `-mmicromips' option test

gcc/testsuite/
* gcc.target/mips/mips.exp (mips_option_tests): Add
`-mmicromips' array element.

From-SVN: r242421

7 years agoFix find&replace error in license boilerplate
Jonathan Wakely [Tue, 15 Nov 2016 14:33:41 +0000 (14:33 +0000)]
Fix find&replace error in license boilerplate

* testsuite/19_diagnostics/error_code/is_error_code_v.cc: Fix license
text.
* testsuite/20_util/any/assign/emplace.cc: Likewise.
* testsuite/20_util/any/cons/in_place.cc: Likewise.
* testsuite/20_util/any/make_any.cc: Likewise.
* testsuite/20_util/any/requirements.cc: Likewise.
* testsuite/20_util/any/typedefs.cc: Likewise.
* testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
* testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
Likewise.
* testsuite/20_util/in_place/requirements.cc: Likewise.
* testsuite/20_util/optional/77288.cc: Likewise.
* testsuite/20_util/optional/assignment/1.cc: Likewise.
* testsuite/20_util/optional/assignment/2.cc: Likewise.
* testsuite/20_util/optional/assignment/3.cc: Likewise.
* testsuite/20_util/optional/assignment/4.cc: Likewise.
* testsuite/20_util/optional/assignment/5.cc: Likewise.
* testsuite/20_util/optional/assignment/6.cc: Likewise.
* testsuite/20_util/optional/assignment/7.cc: Likewise.
* testsuite/20_util/optional/cons/77727.cc: Likewise.
* testsuite/20_util/optional/cons/move.cc: Likewise.
* testsuite/20_util/optional/cons/value.cc: Likewise.
* testsuite/20_util/optional/cons/value_neg.cc: Likewise.
* testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
* testsuite/20_util/optional/constexpr/make_optional.cc: Likewise.
* testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
* testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
* testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
* testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
* testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
* testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
* testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
* testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
* testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
* testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
* testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
* testsuite/20_util/optional/hash.cc: Likewise.
* testsuite/20_util/optional/make_optional.cc: Likewise.
* testsuite/20_util/optional/observers/1.cc: Likewise.
* testsuite/20_util/optional/observers/2.cc: Likewise.
* testsuite/20_util/optional/observers/3.cc: Likewise.
* testsuite/20_util/optional/observers/4.cc: Likewise.
* testsuite/20_util/optional/observers/5.cc: Likewise.
* testsuite/20_util/optional/observers/6.cc: Likewise.
* testsuite/20_util/optional/relops/1.cc: Likewise.
* testsuite/20_util/optional/relops/2.cc: Likewise.
* testsuite/20_util/optional/relops/3.cc: Likewise.
* testsuite/20_util/optional/relops/4.cc: Likewise.
* testsuite/20_util/optional/relops/5.cc: Likewise.
* testsuite/20_util/optional/relops/6.cc: Likewise.
* testsuite/20_util/optional/requirements.cc: Likewise.
* testsuite/20_util/optional/swap/1.cc: Likewise.
* testsuite/20_util/optional/typedefs.cc: Likewise.
* testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise.
* testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
* testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
Likewise.
* testsuite/20_util/variable_templates_for_traits.cc: Likewise.
* testsuite/20_util/variant/hash.cc: Likewise.
* testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
* testsuite/experimental/any/typedefs.cc: Likewise.
* testsuite/experimental/array/make_array.cc: Likewise.
* testsuite/experimental/array/neg.cc: Likewise.
* testsuite/experimental/chrono/value.cc: Likewise.
* testsuite/experimental/deque/erasure.cc: Likewise.
* testsuite/experimental/forward_list/erasure.cc: Likewise.
* testsuite/experimental/list/erasure.cc: Likewise.
* testsuite/experimental/map/erasure.cc: Likewise.
* testsuite/experimental/memory/observer_ptr/assignment/assign.cc:
Likewise.
* testsuite/experimental/memory/observer_ptr/cons/cons.cc: Likewise.
* testsuite/experimental/memory/observer_ptr/hash/hash.cc: Likewise.
* testsuite/experimental/memory/observer_ptr/make_observer.cc:
Likewise.
* testsuite/experimental/memory/observer_ptr/relops/relops.cc:
Likewise.
* testsuite/experimental/memory/observer_ptr/requirements.cc: Likewise.
* testsuite/experimental/memory/observer_ptr/swap/swap.cc: Likewise.
* testsuite/experimental/memory/observer_ptr/typedefs.cc: Likewise.
* testsuite/experimental/optional/77288.cc: Likewise.
* testsuite/experimental/optional/assignment/1.cc: Likewise.
* testsuite/experimental/optional/assignment/2.cc: Likewise.
* testsuite/experimental/optional/assignment/3.cc: Likewise.
* testsuite/experimental/optional/assignment/4.cc: Likewise.
* testsuite/experimental/optional/assignment/5.cc: Likewise.
* testsuite/experimental/optional/assignment/6.cc: Likewise.
* testsuite/experimental/optional/cons/77727.cc: Likewise.
* testsuite/experimental/optional/cons/move.cc: Likewise.
* testsuite/experimental/optional/cons/value.cc: Likewise.
* testsuite/experimental/optional/cons/value_neg.cc: Likewise.
* testsuite/experimental/optional/constexpr/cons/value.cc: Likewise.
* testsuite/experimental/optional/constexpr/make_optional.cc: Likewise.
* testsuite/experimental/optional/constexpr/observers/1.cc: Likewise.
* testsuite/experimental/optional/constexpr/observers/2.cc: Likewise.
* testsuite/experimental/optional/constexpr/observers/3.cc: Likewise.
* testsuite/experimental/optional/constexpr/observers/4.cc: Likewise.
* testsuite/experimental/optional/constexpr/observers/5.cc: Likewise.
* testsuite/experimental/optional/constexpr/relops/1.cc: Likewise.
* testsuite/experimental/optional/constexpr/relops/2.cc: Likewise.
* testsuite/experimental/optional/constexpr/relops/3.cc: Likewise.
* testsuite/experimental/optional/constexpr/relops/4.cc: Likewise.
* testsuite/experimental/optional/constexpr/relops/5.cc: Likewise.
* testsuite/experimental/optional/constexpr/relops/6.cc: Likewise.
* testsuite/experimental/optional/make_optional.cc: Likewise.
* testsuite/experimental/optional/observers/1.cc: Likewise.
* testsuite/experimental/optional/observers/2.cc: Likewise.
* testsuite/experimental/optional/observers/3.cc: Likewise.
* testsuite/experimental/optional/observers/4.cc: Likewise.
* testsuite/experimental/optional/observers/5.cc: Likewise.
* testsuite/experimental/optional/relops/1.cc: Likewise.
* testsuite/experimental/optional/relops/2.cc: Likewise.
* testsuite/experimental/optional/relops/3.cc: Likewise.
* testsuite/experimental/optional/relops/4.cc: Likewise.
* testsuite/experimental/optional/relops/5.cc: Likewise.
* testsuite/experimental/optional/relops/6.cc: Likewise.
* testsuite/experimental/optional/requirements.cc: Likewise.
* testsuite/experimental/optional/swap/1.cc: Likewise.
* testsuite/experimental/optional/typedefs.cc: Likewise.
* testsuite/experimental/propagate_const/assignment/move.cc: Likewise.
* testsuite/experimental/propagate_const/assignment/move_neg.cc:
Likewise.
* testsuite/experimental/propagate_const/cons/move.cc: Likewise.
* testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
* testsuite/experimental/propagate_const/hash/1.cc: Likewise.
* testsuite/experimental/propagate_const/observers/1.cc: Likewise.
* testsuite/experimental/propagate_const/relops/1.cc: Likewise.
* testsuite/experimental/propagate_const/requirements1.cc: Likewise.
* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
* testsuite/experimental/propagate_const/requirements5.cc: Likewise.
* testsuite/experimental/propagate_const/swap/1.cc: Likewise.
* testsuite/experimental/propagate_const/typedefs.cc: Likewise.
* testsuite/experimental/random/randint.cc: Likewise.
* testsuite/experimental/ratio/value.cc: Likewise.
* testsuite/experimental/set/erasure.cc: Likewise.
* testsuite/experimental/string/erasure.cc: Likewise.
* testsuite/experimental/string_view/typedefs.cc: Likewise.
* testsuite/experimental/system_error/value.cc: Likewise.
* testsuite/experimental/tuple/tuple_size.cc: Likewise.
* testsuite/experimental/type_traits/value.cc: Likewise.
* testsuite/experimental/unordered_map/erasure.cc: Likewise.
* testsuite/experimental/unordered_set/erasure.cc: Likewise.
* testsuite/experimental/vector/erasure.cc: Likewise.

From-SVN: r242417

7 years agoAdd std::string constructor for substring of string_view (LWG 2742)
Jonathan Wakely [Tue, 15 Nov 2016 14:33:20 +0000 (14:33 +0000)]
Add std::string constructor for substring of string_view (LWG 2742)

* doc/xml/manual/intro.xml: Document LWG 2742 status.
* doc/html/*: Regenerate.
* include/bits/basic_string.h
(basic_string(const T&, size_type, size_type, const Allocator&)): Add
constructor for substring of basic_string_view, as per LWG 2742 but
with additional constraint to fix ambiguity.
* testsuite/21_strings/basic_string/cons/char/9.cc: New test.
* testsuite/21_strings/basic_string/cons/wchar_t/9.cc: New test.

From-SVN: r242416

7 years agoConstrain swap overload for std::optional (LWG 2748)
Jonathan Wakely [Tue, 15 Nov 2016 14:33:09 +0000 (14:33 +0000)]
Constrain swap overload for std::optional (LWG 2748)

* doc/xml/manual/intro.xml: Document LWG 2748 status.
* include/std/optional (optional<T>::swap): Use is_nothrow_swappable_v
for exception specification.
(swap(optional<T>&, optional<T>&)): Disable when T is not swappable.
* testsuite/20_util/optional/swap/2.cc: New test.

From-SVN: r242415

7 years agore PR target/77881 (Non-optimal signed comparison on x86_64 since r146817)
Michael Matz [Tue, 15 Nov 2016 14:02:28 +0000 (14:02 +0000)]
re PR target/77881 (Non-optimal signed comparison on x86_64 since r146817)

PR missed-optimization/77881
* combine.c (simplify_comparison): Remove useless subregs
also inside the loop, not just after it.
(make_compound_operation): Recognize some subregs as being
masking as well.

testsuite/
* gcc.target/i386/pr77881.c: New test.

From-SVN: r242414

7 years agore PR middle-end/78295 (Spurious -Wuninitialized warning for vector element assignment)
Jakub Jelinek [Tue, 15 Nov 2016 13:57:59 +0000 (14:57 +0100)]
re PR middle-end/78295 (Spurious -Wuninitialized warning for vector element assignment)

PR middle-end/78295
* gcc.dg/uninit-pr78295.c: Add -Wno-psabi to dg-options.

From-SVN: r242413

7 years agoFix scripto in ChangeLog
Richard Sandiford [Tue, 15 Nov 2016 10:57:03 +0000 (10:57 +0000)]
Fix scripto in ChangeLog

From-SVN: r242410

7 years agoFix a GET_MODE_CLASS typo in mem_loc_descriptor
Richard Sandiford [Tue, 15 Nov 2016 10:54:12 +0000 (10:54 +0000)]
Fix a GET_MODE_CLASS typo in mem_loc_descriptor

It should have been checking the size instead.

gcc/
2016-11-15  Richard Sandiford  <richard.sandiford@arm.com>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

* dwarf2out.c (mem_loc_descriptor): Fix GET_MODE_CLASS/
GET_MODE_SIZE typo.

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

7 years agoVarious C++17 decomposition fixes.
Jason Merrill [Tue, 15 Nov 2016 05:22:28 +0000 (00:22 -0500)]
Various C++17 decomposition fixes.

* tree.c (bitfield_p): New.
* cp-tree.h: Declare it.
* typeck.c (cxx_sizeof_expr, cxx_alignof_expr)
(cp_build_addr_expr_1): Use it instead of DECL_C_BIT_FIELD.
* decl.c (cp_finish_decomp): Look through reference.  Always
SET_DECL_DECOMPOSITION_P.
* semantics.c (finish_decltype_type): Adjust decomposition handling.

From-SVN: r242408

7 years agoDaily bump.
GCC Administrator [Tue, 15 Nov 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r242406

7 years agoruntime: don't crash if signal handler info argument is nil
Ian Lance Taylor [Mon, 14 Nov 2016 23:16:04 +0000 (23:16 +0000)]
runtime: don't crash if signal handler info argument is nil

    Apparently on Solaris 10 a SA_SIGINFO signal handler can be invoked with
    a nil info argument.  I would not have believed it but I've now seen it
    happen, and the sigaction man page actually says "If the second argument
    is not equal to NULL, it points to a siginfo_t structure...."  So, if
    that happens, don't crash.

    Also fix another case where we want to make sure that &T{} does not
    allocate.

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

From-SVN: r242403

7 years agoImplement P0513R0, Poisoning the Hash.
Ville Voutilainen [Mon, 14 Nov 2016 21:22:53 +0000 (23:22 +0200)]
Implement P0513R0, Poisoning the Hash.

* include/bits/functional_hash.h (__poison_hash): New.
* include/bits/unique_ptr.h
(hash<unique_ptr<_Tp, _Dp>>): Derive from __poison_hash.
* include/std/optional (hash<optional<_Tp>>): Likewise.
* include/std/variant (hash<variant<_Types...>>): Likewise.
* testsuite/20_util/default_delete/48631_neg.cc: Adjust.
* testsuite/20_util/default_delete/void_neg.cc: Likewise.
* testsuite/20_util/optional/hash.cc: New.
* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust.
* testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Adjust.
* testsuite/20_util/unique_ptr/hash/1.cc: Add tests for
poisoned fancy pointer hashes.
* testsuite/20_util/variant/hash.cc: New.

From-SVN: r242402

7 years agoImplement P0504R0 (Revisiting in-place tag types for any/optional/variant).
Ville Voutilainen [Mon, 14 Nov 2016 20:47:44 +0000 (22:47 +0200)]
Implement P0504R0 (Revisiting in-place tag types for any/optional/variant).

Implement P0504R0 (Revisiting in-place tag types for
any/optional/variant).
* include/std/any (any(_ValueType&& __value)): Constrain
the __is_in_place_type with the decayed type.
(make_any): Adjust to use the new tag type.
* include/std/utility (in_place_tag): Remove.
(in_place_t): Turn into a non-reference tag type.
(__in_place, __in_place_type, __in_place_index): Remove.
(in_place): Turn into an inline variable of non-reference
tag type.
(in_place<_Tp>): Remove.
(in_place_index<_Idx>): Remove.
(in_place_type_t): New.
(in_place_type): Turn into a variable template of non-reference
type.
(in_place_index_t): New.
(in_place_index): Turn into a variable template of non-reference
type.
* include/std/variant
(_Variant_storage(in_place_index_t<_Np>, _Args&&...)): Adjust to
use the new tag type.
(_Union(in_place_index_t<0>, _Args&&...)): Likewise.
(_Union(in_place_index_t<_Np>, _Args&&...)): Likewise.
(_Variant_base()): Likewise.
(variant(_Tp&&)): Likewise.
(variant(in_place_type_t<_Tp>, _Args&&...)): Likewise.
(variant(in_place_type_t<_Tp>, initializer_list<_Up>,
_Args&&...)): Likewise.
(variant(in_place_index_t<_Np>, _Args&&...)): Likewise.
(variant(in_place_index_t<_Np>, initializer_list<_Up>,
_Args&&...)): Likewise
(variant(allocator_arg_t, const _Alloc&)): Likewise.
(variant(allocator_arg_t, const _Alloc&, _Tp&&)): Likewise.
(variant(allocator_arg_t, const _Alloc&, in_place_type_t<_Tp>,
_Args&&...)): Likewise.
(variant(allocator_arg_t, const _Alloc&, in_place_type_t<_Tp>,
initializer_list<_Up>, _Args&&...)): Likewise.
(variant(allocator_arg_t, const _Alloc&, in_place_index_t<_Np>,
_Args&&...)): Likewise.
(variant(allocator_arg_t, const _Alloc&, in_place_index_t<_Np>,
initializer_list<_Up>, _Args&&...)): Likewise.
(emplace(_Args&&...)): Likewise.
(emplace(initializer_list<_Up>, _Args&&...)): Likewise.
* testsuite/20_util/any/cons/explicit.cc: Likewise.
* testsuite/20_util/any/cons/in_place.cc: Likewise.
* testsuite/20_util/any/requirements.cc: Add tests to
check that any is not constructible from the new in_place_type_t
of any value category.
* testsuite/20_util/in_place/requirements.cc: Adjust to
use the new tag type.
* testsuite/20_util/variant/compile.cc: Likewise.
* testsuite/20_util/variant/run.cc: Likewise.

From-SVN: r242401

7 years agors6000.c (rs6000_expand_vector_set): Add support for using xxinsertw and vinsert...
Michael Meissner [Mon, 14 Nov 2016 19:55:42 +0000 (19:55 +0000)]
rs6000.c (rs6000_expand_vector_set): Add support for using xxinsertw and vinsert{b,h} on ISA 3.0.

[gcc]
2016-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_expand_vector_set): Add support
for using xxinsertw and vinsert{b,h} on ISA 3.0.

* config/rs6000/vsx.md (vsx_extract_<mode>): Update comment.
(vsx_set_<mode>_p9): New insn to generate xxinsertw and
vinsert{b,h} on ISA 3.0.

[gcc/testsuite]
2016-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/vec-set-int.c: New test.
* gcc.target/powerpc/vec-set-short.c: Likesie.
* gcc.target/powerpc/vec-set-char.c: Likewise.

From-SVN: r242397

7 years agolibiberty: Add -Wshadow=local to warning flags (if supported).
Mark Wielaard [Mon, 14 Nov 2016 19:46:26 +0000 (19:46 +0000)]
libiberty: Add -Wshadow=local to warning flags (if supported).

libiberty/ChangeLog:

       * configure.ac (ac_libiberty_warn_cflags): Add -Wshadow=local.
       * configure: Regenerated.

From-SVN: r242396

7 years agoc-cppbuiltin.c (c_cpp_builtins): Define __cpp_structured_bindings.
Jakub Jelinek [Mon, 14 Nov 2016 19:00:32 +0000 (20:00 +0100)]
c-cppbuiltin.c (c_cpp_builtins): Define __cpp_structured_bindings.

* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_structured_bindings.

* g++.dg/cpp1z/feat-cxx1z.C: Test __cpp_structured_bindings macro.

From-SVN: r242395

7 years agotree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg and cmpnop in...
Thomas Preud'homme [Mon, 14 Nov 2016 18:55:05 +0000 (18:55 +0000)]
tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg and cmpnop in two steps...

2016-11-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
    and cmpnop in two steps: first the ones not accessed in original gimple
    expression in a endian independent way and then the ones not accessed
    in the final result in an endian-specific way.
    (bswap_replace): Stop doing big endian adjustment.

From-SVN: r242394

7 years agodump-parse-tree.c (show_code): Add prototype.
Thomas Koenig [Mon, 14 Nov 2016 18:15:36 +0000 (18:15 +0000)]
dump-parse-tree.c (show_code): Add prototype.

2016-11-14  Thomas Koenig  <tkoenig@gcc.gnu.org>

* dump-parse-tree.c (show_code):  Add prototype.
(gfc_debug_code):  New function.
(show_code_node):  Add space after SELECT TYPE.

From-SVN: r242393

7 years agore PR fortran/78300 ([OOP] Failure to compile a F03 code with an optional dummy proce...
Janus Weil [Mon, 14 Nov 2016 16:55:01 +0000 (17:55 +0100)]
re PR fortran/78300 ([OOP] Failure to compile a F03 code with an optional dummy procedure argument)

2016-11-14  Janus Weil  <janus@gcc.gnu.org>

PR fortran/78300
* resolve.c (resolve_procedure_interface): Properly handle CLASS-valued
function results.

2016-11-14  Janus Weil  <janus@gcc.gnu.org>

PR fortran/78300
* gfortran.dg/class_result_3.f90: New test.

From-SVN: r242392

7 years agoi386.md (*andndi3_doubleword): Merge operand constraints.
Uros Bizjak [Mon, 14 Nov 2016 16:51:27 +0000 (17:51 +0100)]
i386.md (*andndi3_doubleword): Merge operand constraints.

* config/i386/i386.md (*andndi3_doubleword): Merge operand constraints.
(*ashl<mode>3_doubleword): Ditto.

From-SVN: r242391

7 years agoUse constexpr addressof in optional, SFINAE housekeeping for any, optional and tuple.
Ville Voutilainen [Mon, 14 Nov 2016 15:30:37 +0000 (17:30 +0200)]
Use constexpr addressof in optional, SFINAE housekeeping for any, optional and tuple.

Use constexpr addressof in optional, SFINAE housekeeping
for any, optional and tuple.
* include/std/any (__do_emplace(_Args&&...)): New.
(__do_emplace(initializer_list<_Up>, _Args&&...)): Likewise.
(__any_constructible): Likewise.
(__any_constructible_t): Use __any_constructible.
(operator=(_ValueType&&)): SFINAE in the return type.
(emplace(_Args&&...)): Likewise.
(emplace(initializer_list<_Up>, _Args&&...)): Likewise.
* include/std/optional (_Has_addressof_mem): Remove.
(_Has_addressof_free): Likewise.
(_Has_addressof): Likewise.
(__constexpr_addressof(_Tp&)): Likewise.
(operator->): Use std::__addressof.
* include/std/tuple (operator=(const tuple<_UElements...>&)):
SFINAE in return type.
(operator=(tuple<_UElements...>&&)): Likewise.
* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.

From-SVN: r242390

7 years agoFix dump output in dse_optimize_stmt
Martin Liska [Mon, 14 Nov 2016 14:22:10 +0000 (15:22 +0100)]
Fix dump output in dse_optimize_stmt

* tree-ssa-dse.c (dse_optimize_stmt): Remove quotes and extra
new line.

From-SVN: r242389

7 years agoMake-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o.
Prasad Ghangal [Mon, 14 Nov 2016 14:13:32 +0000 (14:13 +0000)]
Make-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o.

2016-11-14  Prasad Ghangal  <prasad.ghangal@gmail.com>
Richard Biener  <rguenther@suse.de>

     c/
     * Make-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o.
     * config-lang.in (gtfiles): Add c/c-parser.h.
     * c-tree.h (enum c_declspec_word): Add cdw_gimple.
     (struct c_declspecs): Add gimple_pass member and gimple_p flag.
     * c-parser.c (enum c_id_kind, struct c_token,
     c_parser_next_token_is, c_parser_next_token_is_not,
     c_parser_next_token_is_keyword,
     enum c_lookahead_kind, enum c_dtr_syn, enum c_parser_prec):
     Split out to ...
     * c-parser.h: ... new header.
     * c-parser.c: Include c-parser.h and gimple-parser.h.
(c_parser_peek_token, c_parser_peek_2nd_token,
     c_token_starts_typename, c_parser_next_token_starts_declspecs,
     c_parser_next_tokens_start_declaration, c_parser_consume_token,
     c_parser_error, c_parser_require, c_parser_skip_until_found,
     c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
     c_parser_type_name): Export.
     (c_parser_tokens_buf): New function.
     (c_parser_error): Likewise.
     (c_parser_set_error): Likewise.
     (c_parser_declspecs): Handle RID_GIMPLE.
(c_parser_declaration_or_fndef): Parse __GIMPLE marked body
via c_parser_parse_gimple_body.
     * c-parser.h (c_parser_peek_token, c_parser_peek_2nd_token,
     c_token_starts_typename, c_parser_next_token_starts_declspecs,
     c_parser_next_tokens_start_declaration, c_parser_consume_token,
     c_parser_error, c_parser_require, c_parser_skip_until_found,
     c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
     c_parser_type_name): Declare.
(struct c_parser): Declare forward.
(c_parser_tokens_buf): Declare.
        (c_parser_error): Likewise.
        (c_parser_set_error): Likewise.
     * gimple-parser.c: New file.
     * gimple-parser.h: Likewise.

     obj-c/
     * config-lang.in (gtfiles): Add c/c-parser.h.

     c-family/
     * c-common.h (c_common_resword): Add RID_GIMPLE, RID_PHI types.
     * c-common.h (enum rid): Add RID_GIMPLE, RID_PHI.
     * c.opt (fgimple): New option.

* doc/invoke.texi (fgimple): Document.

     * dumpfile.h (TDF_GIMPLE): Add.
     * dumpfile.c (dump_options): Add gimple.
     * gimple-pretty-print.c (dump_gimple_switch): Adjust dump
for TDF_GIMPLE.
(dump_gimple_label): Likewise.
(dump_gimple_phi): Likewise.
(dump_gimple_bb_header): Likewise.
(dump_phi_nodes): Likewise.
(pp_cfg_jump): Likewise.  Pass in dump flags.
(dump_implicit_edges): Adjust.
     * passes.c (pass_init_dump_file): Do not dump function header
     for TDF_GIMPLE.
     * tree-cfg.c (dump_function_to_file): Dump function return type
and __GIMPLE keyword for TDF_GIMPLE.  Change guard for dumping
GIMPLE stmts.
     * tree-pretty-print.c (dump_decl_name): Adjust dump for TDF_GIMPLE.
     (dump_generic_node): Likewise.

* function.h (struct function): Add pass_startwith member.
* passes.c (execute_one_pass): Implement startwith.

     * tree-ssanames.c (make_ssa_name_fn): New argument, check for version
     and assign proper version for parsed ssa names.
     * tree-ssanames.h (make_ssa_name_fn): Add new argument to the function.
     * internal-fn.c (expand_PHI): New function.
     * internal-fn.h (expand_PHI): Declared here.
     * internal-fn.def: New defination for PHI.
     * tree-cfg.c (lower_phi_internal_fn): New function.
(build_gimple_cfg): Call it.
     (verify_gimple_call): Condition for passing label as arg in internal
     function PHI.
* tree-into-ssa.c (rewrite_add_phi_arguments): Handle already
present PHIs with arguments.

     testsuite/
     * gcc.dg/gimplefe-1.c: New testcase.
     * gcc.dg/gimplefe-2.c: Likewise.
     * gcc.dg/gimplefe-3.c: Likewise.
     * gcc.dg/gimplefe-4.c: Likewise.
     * gcc.dg/gimplefe-5.c: Likewise.
     * gcc.dg/gimplefe-6.c: Likewise.
     * gcc.dg/gimplefe-7.c: Likewise.
     * gcc.dg/gimplefe-8.c: Likewise.
     * gcc.dg/gimplefe-9.c: Likewise.
     * gcc.dg/gimplefe-10.c: Likewise.
     * gcc.dg/gimplefe-11.c: Likewise.
     * gcc.dg/gimplefe-12.c: Likewise.
     * gcc.dg/gimplefe-13.c: Likewise.
     * gcc.dg/gimplefe-14.c: Likewise.
     * gcc.dg/gimplefe-15.c: Likewise.
     * gcc.dg/gimplefe-16.c: Likewise.
     * gcc.dg/gimplefe-17.c: Likewise.
     * gcc.dg/gimplefe-18.c: Likewise.

From-SVN: r242388

7 years agoMake-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o.
Prasad Ghangal [Mon, 14 Nov 2016 13:51:48 +0000 (13:51 +0000)]
Make-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o.

2016-11-14  Prasad Ghangal  <prasad.ghangal@gmail.com>
Richard Biener  <rguenther@suse.de>

     c/
     * Make-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o.
     * config-lang.in (gtfiles): Add c/c-parser.h.
     * c-tree.h (enum c_declspec_word): Add cdw_gimple.
     (struct c_declspecs): Add gimple_pass member and gimple_p flag.
     * c-parser.c (enum c_id_kind, struct c_token,
     c_parser_next_token_is, c_parser_next_token_is_not,
     c_parser_next_token_is_keyword,
     enum c_lookahead_kind, enum c_dtr_syn, enum c_parser_prec):
     Split out to ...
     * c-parser.h: ... new header.
     * c-parser.c: Include c-parser.h and gimple-parser.h.
(c_parser_peek_token, c_parser_peek_2nd_token,
     c_token_starts_typename, c_parser_next_token_starts_declspecs,
     c_parser_next_tokens_start_declaration, c_parser_consume_token,
     c_parser_error, c_parser_require, c_parser_skip_until_found,
     c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
     c_parser_type_name): Export.
     (c_parser_tokens_buf): New function.
     (c_parser_error): Likewise.
     (c_parser_set_error): Likewise.
     (c_parser_declspecs): Handle RID_GIMPLE.
(c_parser_declaration_or_fndef): Parse __GIMPLE marked body
via c_parser_parse_gimple_body.
     * c-parser.h (c_parser_peek_token, c_parser_peek_2nd_token,
     c_token_starts_typename, c_parser_next_token_starts_declspecs,
     c_parser_next_tokens_start_declaration, c_parser_consume_token,
     c_parser_error, c_parser_require, c_parser_skip_until_found,
     c_parser_declspecs, c_parser_declarator, c_parser_peek_nth_token,
     c_parser_type_name): Declare.
(struct c_parser): Declare forward.
(c_parser_tokens_buf): Declare.
        (c_parser_error): Likewise.
        (c_parser_set_error): Likewise.
     * gimple-parser.c: New file.
     * gimple-parser.h: Likewise.

     obj-c/
     * config-lang.in (gtfiles): Add c/c-parser.h.

     c-family/
     * c-common.h (c_common_resword): Add RID_GIMPLE, RID_PHI types.
     * c-common.h (enum rid): Add RID_GIMPLE, RID_PHI.
     * c.opt (fgimple): New option.

* doc/invoke.texi (fgimple): Document.

     * dumpfile.h (TDF_GIMPLE): Add.
     * dumpfile.c (dump_options): Add gimple.
     * gimple-pretty-print.c (dump_gimple_switch): Adjust dump
for TDF_GIMPLE.
(dump_gimple_label): Likewise.
(dump_gimple_phi): Likewise.
(dump_gimple_bb_header): Likewise.
(dump_phi_nodes): Likewise.
(pp_cfg_jump): Likewise.  Pass in dump flags.
(dump_implicit_edges): Adjust.
     * passes.c (pass_init_dump_file): Do not dump function header
     for TDF_GIMPLE.
     * tree-cfg.c (dump_function_to_file): Dump function return type
and __GIMPLE keyword for TDF_GIMPLE.  Change guard for dumping
GIMPLE stmts.
     * tree-pretty-print.c (dump_decl_name): Adjust dump for TDF_GIMPLE.
     (dump_generic_node): Likewise.

* function.h (struct function): Add pass_startwith member.
* passes.c (execute_one_pass): Implement startwith.

     * tree-ssanames.c (make_ssa_name_fn): New argument, check for version
     and assign proper version for parsed ssa names.
     * tree-ssanames.h (make_ssa_name_fn): Add new argument to the function.
     * internal-fn.c (expand_PHI): New function.
     * internal-fn.h (expand_PHI): Declared here.
     * internal-fn.def: New defination for PHI.
     * tree-cfg.c (lower_phi_internal_fn): New function.
(build_gimple_cfg): Call it.
     (verify_gimple_call): Condition for passing label as arg in internal
     function PHI.
* tree-into-ssa.c (rewrite_add_phi_arguments): Handle already
present PHIs with arguments.

     testsuite/
     * gcc.dg/gimplefe-1.c: New testcase.
     * gcc.dg/gimplefe-2.c: Likewise.
     * gcc.dg/gimplefe-3.c: Likewise.
     * gcc.dg/gimplefe-4.c: Likewise.
     * gcc.dg/gimplefe-5.c: Likewise.
     * gcc.dg/gimplefe-6.c: Likewise.
     * gcc.dg/gimplefe-7.c: Likewise.
     * gcc.dg/gimplefe-8.c: Likewise.
     * gcc.dg/gimplefe-9.c: Likewise.
     * gcc.dg/gimplefe-10.c: Likewise.
     * gcc.dg/gimplefe-11.c: Likewise.
     * gcc.dg/gimplefe-12.c: Likewise.
     * gcc.dg/gimplefe-13.c: Likewise.
     * gcc.dg/gimplefe-14.c: Likewise.
     * gcc.dg/gimplefe-15.c: Likewise.
     * gcc.dg/gimplefe-16.c: Likewise.
     * gcc.dg/gimplefe-17.c: Likewise.
     * gcc.dg/gimplefe-18.c: Likewise.

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

7 years agoIntroduce -fprofile-update=prefer-atomic
Martin Liska [Mon, 14 Nov 2016 12:09:48 +0000 (13:09 +0100)]
Introduce -fprofile-update=prefer-atomic

PR bootstrap/78069
* common.opt: Add prefer-atomic as a new enum value for
-fprofile-update.
* coretypes.h: Likewise.
* doc/invoke.texi: Document the new option value.
* gcc.c: Replace atomic with prefer-atomic.  Remove warning.
* tree-profile.c (tree_profiling): Select default value
of -fprofile-update when 'prefer-atomic' is selected.
PR bootstrap/78069
* gcc.dg/no_profile_instrument_function-attr-1.c: Update test
to match scanned pattern.
* gcc.dg/tree-ssa/ssa-lim-11.c: Likewise.

From-SVN: r242386

7 years agoThe second patch updates the Cortex-A57 scheduler now that we can differentiate betwe...
Wilco Dijkstra [Mon, 14 Nov 2016 12:07:03 +0000 (12:07 +0000)]
The second patch updates the Cortex-A57 scheduler now that we can differentiate between shifts and bitfield inserts.

The second patch updates the Cortex-A57 scheduler now that we can differentiate
between shifts and bitfield inserts.  The Cortex-A57 Software Optimization Guide
indicates that BFM operations use the integer multi-cycle pipeline, while ARM
UXTB/H instructions use the Integer 1 or Integer 0 pipelines, so swap the bfm
and extend reservations.  This results in minor scheduling differences.

* config/arm/cortex-a57.md (cortex_a57_alu): Move extend here, bfm...
(cortex_a57_alu_shift): ...here.

From-SVN: r242385

7 years agoCurrently the SBFM, UBFM and BFM instructions all use the attribute "bfm".
Wilco Dijkstra [Mon, 14 Nov 2016 12:04:11 +0000 (12:04 +0000)]
Currently the SBFM, UBFM and BFM instructions all use the attribute "bfm".

SBFM and UBFM include all shifts on AArch64, which are simpler than bitfield
insert.  Add a new bfx attribute for these instructions so that they can be
modelled more accurately in the future.  There is no difference in code
generation.

* config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3)
Use bfx attribute.
(aarch64_lshr_sisd_or_int_<mode>3): Likewise.
(aarch64_ashr_sisd_or_int_<mode>3): Likewise.
(<optab>si3_insn_uxtw): Likewise.
(<optab><mode>3_insn): Likewise.
(<ANY_EXTEND:optab><GPI:mode>_ashl<SHORT:mode>): Likewise.
(zero_extend<GPI:mode>_lshr<SHORT:mode>): Likewise.
(extend<GPI:mode>_ashr<SHORT:mode>): Likewise.
(<optab><mode>): Likewise.
(insv<mode>): Likewise.
(andim_ashift<mode>_bfiz): Likewise.
* config/aarch64/thunderx.md (thunderx_shift): Add bfx.
* config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
* config/arm/cortex-a57.md (cortex_a57_alu): Add bfx.
* config/arm/exynos-m1.md (exynos_m1_alu): Add bfx.
(exynos_m1_alu_p): Likewise.
* config/arm/types.md: Add bfx.
* config/arm/xgene1.md (xgene1_bfm): Add bfx.

From-SVN: r242384

7 years agoThe existing vector costs stop some beneficial vectorization.
Wilco Dijkstra [Mon, 14 Nov 2016 11:51:33 +0000 (11:51 +0000)]
The existing vector costs stop some beneficial vectorization.

The existing vector costs stop some beneficial vectorization.  This is mostly
due to vector statement cost being set to 3 as well as vector loads having a
higher cost than scalar loads.  This means that even when we vectorize 4x, it
is possible that the cost of a vectorized loop is similar to the scalar
version, and we fail to vectorize.

Using a cost of 3 for a vector operation suggests they are 3 times as
expensive as scalar operations.  Since most vector operations have a
similar throughput as scalar operations, this is not correct.

Using slightly lower values for these heuristics now allows this loop
and many others to be vectorized.  On a proprietary benchmark the gain
from vectorizing this loop is around 15-30% which shows vectorizing it is
indeed beneficial.

* config/aarch64/aarch64.c (cortexa57_vector_cost):
Change vec_stmt_cost, vec_align_load_cost and vec_unalign_load_cost.

From-SVN: r242383

7 years agoMakefile.in: Replace s-interr-hwint.adb with s-interr-vxworks.adb throughout.
Eric Botcazou [Mon, 14 Nov 2016 11:45:33 +0000 (11:45 +0000)]
Makefile.in: Replace s-interr-hwint.adb with s-interr-vxworks.adb throughout.

* gcc-interface/Makefile.in: Replace s-interr-hwint.adb with
s-interr-vxworks.adb throughout.

From-SVN: r242382

7 years agoremove conditional compilation of HAVE_AS_LEB128 code
Trevor Saunders [Mon, 14 Nov 2016 10:58:48 +0000 (10:58 +0000)]
remove conditional compilation of HAVE_AS_LEB128 code

gcc/ChangeLog:

2016-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* acinclude.m4 (gcc_GAS_CHECK_FEATURE): Support doing an action
if the feature isn't available.
* configure: Regenerate.
* configure.ac: define HAVE_AS_LEB128 to 0 when not available.
* dwarf2asm.c (dw2_asm_output_data_uleb128): Always compile code
for HAVE_AS_LEB128.
(dw2_asm_output_data_sleb128): Likewise.
(dw2_asm_output_delta_uleb128): Likewise.
(dw2_asm_output_delta_sleb128): Likewise.
* except.c (output_one_function_exception_table): Likewise.
(dw2_size_of_call_site_table): Likewise.
(sjlj_size_of_call_site_table): Likewise.
* dwarf2out.c (output_loc_list): Likewise.
(output_rnglists): Likewise.

From-SVN: r242381

7 years agore PR tree-optimization/78312 (wrong code due to ssa-backprop)
Richard Biener [Mon, 14 Nov 2016 10:33:15 +0000 (10:33 +0000)]
re PR tree-optimization/78312 (wrong code due to ssa-backprop)

2016-11-14  Richard Biener  <rguenther@suse.de>

PR tree-optimization/78312
* gimple-ssa-backprop.c (backprop::prepare_change): Reset
flow-sensitive info.

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

From-SVN: r242380

7 years agore PR target/78093 ([avr] New variable attribute "absdata" and option "-mabsdata...
Georg-Johann Lay [Mon, 14 Nov 2016 10:25:34 +0000 (10:25 +0000)]
re PR target/78093 ([avr] New variable attribute "absdata" and option "-mabsdata" to enable LDS / STS on Reduced Tiny)

gcc/
PR target/78093
* doc/invoke.texi (AVR Options) [-mabsdata]: Document new option.
* config/avr/avr.opt (-mabsdata): New option.
* config/avr/avr-arch.h (avr_device_specific_features): Add AVR_ISA_LDS.
* config/avr/avr.c (avr_encode_section_info) [AVR_TINY]: If
-mabsdata & symbol is not progmem, tag as AVR_SYMBOL_FLAG_TINY_ABSDATA.
* config/avr/avr-mcus.def (attiny4/5/9/10/20): Use AVR_ISA_LDS.
* config/avr/gen-avr-mmcu-specs.c (print_mcu): Print cc1_absdata
spec depending on AVR_ISA_LDS.
* config/avr/specs.h (CC1_SPEC): Enhanced by cc1_absdata spec.
gcc/testsuite/
PR target/78093
* gcc.target/avr/torture/tiny-absdata-2.c: New test.

From-SVN: r242379

7 years agoImplement P0217R3 - C++17 structured bindings
Jakub Jelinek [Mon, 14 Nov 2016 07:54:50 +0000 (08:54 +0100)]
Implement P0217R3 - C++17 structured bindings

Implement P0217R3 - C++17 structured bindings
* g++.dg/cpp1z/decomp1.C: New test.
* g++.dg/cpp1z/decomp2.C: New test.
* g++.dg/cpp1z/decomp3.C: New test.
* g++.dg/cpp1z/decomp4.C: New test.
* g++.dg/cpp1z/decomp5.C: New test.
* g++.dg/cpp1z/decomp6.C: New test.
* g++.dg/cpp1z/decomp7.C: New test.
* g++.dg/cpp1z/decomp8.C: New test.
* g++.dg/cpp1z/decomp9.C: New test.
* g++.dg/cpp1z/decomp10.C: New test.

Co-Authored-By: Jason Merrill <jason@redhat.com>
From-SVN: r242378

7 years agoImplement P0217R3 - C++17 structured bindings
Jakub Jelinek [Mon, 14 Nov 2016 05:02:58 +0000 (06:02 +0100)]
Implement P0217R3 - C++17 structured bindings

gcc/
* match.pd: Don't try to compare addresses of variables with
DECL_VALUE_EXPR.
gcc/cp/
* cp-tree.h (struct lang_decl_base): Add decomposition_p.
(DECL_DECOMPOSITION_P): New
(enum auto_deduction_context): Add adc_decomp_type.
(enum cp_declarator_kind): Add cdk_decomp.
* constexpr.c (cxx_eval_constant_expression): Look through
DECL_VALUE_EXPR.
(potential_constant_expression_1): Likewise.
* decl.c (reshape_init): Preserve CONSTRUCTOR_IS_DIRECT_INIT.
(check_initializer): Use build_aggr_init for DECL_DECOMPOSITION_P.
(cp_finish_decl): Pass adc_decomp_type for decomposition.
(find_decomp_class_base, get_tuple_size, get_tuple_element_type)
(get_tuple_decomp_init, cp_finish_decomp): New.
(grokdeclarator): Handle decomposition.
* init.c (build_aggr_init): Handle decomposition array.
(build_vec_init): Handle initialization from { array }.
* name-lookup.c (add_function): Always wrap TEMPLATE_DECL in
OVERLOAD.
* parser.c (declarator_can_be_parameter_pack): Handle cdk_decomp.
(function_declarator_p, strip_declarator_types)
(cp_parser_check_declarator_template_parameters): Likewise.
(cp_parser_range_for, cp_convert_range_for): Handle decomposition.
(cp_parser_simple_declaration): Parse decomposition.
(cp_parser_decomposition_declaration): New.
* pt.c (tsubst_decomp_names): New.
(subst_expr) [DECL_EXPR, RANGE_FOR_STMT]: Handle decomposition.
(do_auto_deduction): Handle adc_decomp_type.
* semantics.c (finish_decltype_type): Look through DECL_VALUE_EXPR.
* typeck.c (is_bitfield_expr_with_lowered_type): Likewise.
* tree.c (lvalue_kind): Likewise.
(cp_build_reference_type): Handle reference collapsing.

Co-Authored-By: Jason Merrill <jason@redhat.com>
From-SVN: r242377

7 years agoImprove various diagnostic issues.
Jason Merrill [Mon, 14 Nov 2016 04:58:45 +0000 (23:58 -0500)]
Improve various diagnostic issues.

* call.c (build_new_method_call_1): Include template arguments in
error message.
(print_error_for_call_failure): Likewise.
(build_new_function_call): Pass them in.
* name-lookup.c (supplement_binding_1): Don't complain about a
conflict with an erroneous declaration.
* error.c (dump_decl): Fix printing of alias declaration.
* decl.c (make_typename_type): Call cxx_incomplete_type_error.
* parser.c (cp_parser_diagnose_invalid_type_name): Likewise.
* semantics.c (perform_koenig_lookup): Don't wrap an error in
TEMPLATE_ID_EXPR.

From-SVN: r242376

7 years agoDelete addressof for temporaries (LWG 2598)
Jonathan Wakely [Mon, 14 Nov 2016 03:44:56 +0000 (03:44 +0000)]
Delete addressof for temporaries (LWG 2598)

* include/bits/move.h (addressof(const _Tp&&)): Add deleted overload,
as per LWG 2598.

From-SVN: r242375

7 years agoMake std::future::share() noexcept (LWG 2556)
Jonathan Wakely [Mon, 14 Nov 2016 03:44:53 +0000 (03:44 +0000)]
Make std::future::share() noexcept (LWG 2556)

* include/std/future (future::share(), future<R&>::share())
(future<void>::share()): Add noexcept, as per LWG 2556.

From-SVN: r242374

7 years agoPR78326 fix incorrect access of data member in base class
Jonathan Wakely [Mon, 14 Nov 2016 02:00:26 +0000 (02:00 +0000)]
PR78326 fix incorrect access of data member in base class

PR libstdc++/78326
* include/experimental/memory_resource (memory_resource::_S_max_align):
Change access to protected.

From-SVN: r242373

7 years agoDaily bump.
GCC Administrator [Mon, 14 Nov 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r242372

7 years agoAdd array support to std::shared_ptr for C++17
Jonathan Wakely [Sun, 13 Nov 2016 22:57:45 +0000 (22:57 +0000)]
Add array support to std::shared_ptr for C++17

* doc/xml/manual/status_cxx2017.xml: Update status.
* doc/html/manual/status.html: Regenerate.
* include/bits/shared_ptr.h (shared_ptr(unique_ptr<_Yp, _Del>)): Add
extension constructor to maintain C++14 behaviour.
* include/bits/shared_ptr_base.h (__sp_array_delete): Add new struct.
(__shared_count(_Ptr, false_type), __shared_count(_Ptr, true_type)):
New constructors.
(__sp_compatible_with, __sp_is_constructible): Add specializations
for array support.
(__sp_is_constructible_arr, __sp_is_constructible_arrN): New helpers.
(__shared_ptr_access): New base class for observer member functions.
(__shared_ptr::element_type): Use remove_extent.
(__shared_ptr::_UniqCompatible): Add __sp_compatible_with check.
(__shared_ptr(_Yp*)): Use tag dispatching to call new __shared_count
constructor.
(__shared_ptr(unique_ptr<_Yp, _Del>)): Add extension constructor.
(__shared_ptr::operator*, __shared_ptr::operator->): Remove and
inherit from __shared_ptr_access base class.
(__shared_ptr::__has_esft_base): Return false for array types.
(__weak_ptr::element_type): Use remove_extent.
* include/experimental/bits/shared_ptr.h (__libfund_v1): Remove.
(__shared_ptr<__libfund_v1<_Tp>>): Remove specializations.
(__wak_ptr<__libfund_v1<_Tp>>): Likewise.
(experimental::__sp_compatible_v): Redefine using
__sp_compatible_with.
(experimental::__sp_is_constructible_v): Redefine using
__sp_is_constructible.
(get_deleter, operator<<): Change argument from __shared_ptr to
shared_ptr.
* testsuite/20_util/shared_ptr/cons/array.cc: New test.
* testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc: Adjust for
new behaviour.
* testsuite/20_util/shared_ptr/observers/array.cc: Test observers for
arrays.
* testsuite/20_util/shared_ptr/observers/array_neg.cc: New test.

From-SVN: r242369

7 years agopr78268.C: New test.
Kugan Vivekanandarajah [Sun, 13 Nov 2016 22:04:36 +0000 (22:04 +0000)]
pr78268.C: New test.

gcc/testsuite/ChangeLog:

2016-11-13  Kugan Vivekanandarajah  <kuganv@linaro.org>

* g++.dg/torture/pr78268.C: New test.

gcc/ChangeLog:

2016-11-13  Kugan Vivekanandarajah  <kuganv@linaro.org>

* ipa-cp.c (ipa_get_jf_pass_through_result): Skip unary expressions.
(propagate_vr_accross_jump_function): Handle unary expressions.
* ipa-prop.c (ipa_set_jf_unary_pass_through): New.
(load_from_param_1): New.
(load_from_unmodified_param): Factor common part into load_from_param_1.
(load_from_param): New.
(compute_complex_assign_jump_func): Handle unary expressions.
(update_jump_functions_after_inlining): Likewise.
(ipa_write_jump_function): Likewise.
(ipa_read_jump_function): Likewise.

From-SVN: r242368

7 years agoImplement P0403R1, Literal suffixes for basic_string_view.
Ville Voutilainen [Sun, 13 Nov 2016 20:54:27 +0000 (22:54 +0200)]
Implement P0403R1, Literal suffixes for basic_string_view.

* include/std/string_view
(operator""sv(const char*, size_t)): New.
(operator""sv(const wchar_t*, size_t)): Likewise.
(operator""sv(const char16_t*, size_t)): Likewise.
(operator""sv(const char32_t*, size_t)): Likewise.
* testsuite/21_strings/basic_string_view/literals/types.cc: New.
* testsuite/21_strings/basic_string_view/literals/values.cc: Likewise.
* testsuite/experimental/string_view/literals/values.cc: Add
tests for literals with embedded NULs.

From-SVN: r242367

7 years agore PR tree-optimization/35503 (Warning about restricted pointers?)
Prathamesh Kulkarni [Sun, 13 Nov 2016 19:38:36 +0000 (19:38 +0000)]
re PR tree-optimization/35503 (Warning about restricted pointers?)

2016-11-13  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

PR c/35503
* doc/invoke.texi: Document Wrestrict.
* pretty-print.c (pp_format): Add case for "Z" specifier.
(test_pp_format): Test "Z" specifier.
c-family/
* c-common.h (warn_for_restrict): Declare.
* c-warn.c: Include gcc-rich-location.h.
(warn_for_restrict): New function.
* c-format.c (gcc_tdiag_char_table): Add entry for "Z" specifier.
(gcc_cdiag_char_table): Likewise.
(gcc_cxxdiag_char_table): Likewise.
* c.opt (Wrestrict): New option.
c/
* c-parser.c (c_parser_postfix_expression_after_primary): Call
warn_for_restrict.
cp/
* parser.c (cp_parser_postfix_pexpression): Call warn_for_restrict.
testsuite/
* c-c++-common/pr35503-1.c: New test.
* c-c++-common/pr35503-2.c: Likewise.
* c-c++-common/pr35503-3.c: Likewise.
* gcc.dg/format/gcc_diag-1.c: Add tests for "Z" specifier.

From-SVN: r242366

7 years agodecl.c (gnat_to_gnu_entity): In assertion about known Esize...
Bob Duff [Sun, 13 Nov 2016 18:38:02 +0000 (18:38 +0000)]
decl.c (gnat_to_gnu_entity): In assertion about known Esize...

* gcc-interface/decl.c (gnat_to_gnu_entity): In assertion about known
Esize, protect with !is_type and change !Unknown_Esize to Known_Esize.

From-SVN: r242363

7 years agore PR rtl-optimization/78232 (FAIL: gcc.dg/torture/pr48124-4.c)
Uros Bizjak [Sun, 13 Nov 2016 18:31:17 +0000 (19:31 +0100)]
re PR rtl-optimization/78232 (FAIL: gcc.dg/torture/pr48124-4.c)

PR rtl-optimization/78232
PR rtl-optimization/78248
* gcc.dg/ubsan/pr78248.c: New test.

From-SVN: r242362

7 years agodecl.c (gnat_to_gnu_entity): Look at the underlying type for the signedness of the...
Eric Botcazou [Sun, 13 Nov 2016 18:29:45 +0000 (18:29 +0000)]
decl.c (gnat_to_gnu_entity): Look at the underlying type for the signedness of the type.

* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>:
Look at the underlying type for the signedness of the type.

From-SVN: r242361

7 years agodecl.c (annotate_value): Deal specially with negative constants.
Eric Botcazou [Sun, 13 Nov 2016 18:20:25 +0000 (18:20 +0000)]
decl.c (annotate_value): Deal specially with negative constants.

* gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Deal specially
with negative constants.

From-SVN: r242360

7 years agoutils2.c (gnat_protect_expr): Also protect only the address if the expression is...
Eric Botcazou [Sun, 13 Nov 2016 18:08:25 +0000 (18:08 +0000)]
utils2.c (gnat_protect_expr): Also protect only the address if the expression is the component of a dereference.

* gcc-interface/utils2.c (gnat_protect_expr): Also protect only the
address if the expression is the component of a dereference.
Do not use a reference type for the final temporary reference.

From-SVN: r242358

7 years agoMakefile.in (NO_OMIT_ADAFLAGS): Define.
Eric Botcazou [Sun, 13 Nov 2016 17:43:23 +0000 (17:43 +0000)]
Makefile.in (NO_OMIT_ADAFLAGS): Define.

* gcc-interface/Makefile.in (NO_OMIT_ADAFLAGS): Define.
(a-except.o): Replace -fno-inline with NO_INLINE_ADAFLAGS.
(s-memory.o): New rule.
(tracebak.o): Replace -fno-omit-frame-pointer with NO_OMIT_ADAFLAGS.

From-SVN: r242357

7 years agoc-ada-spec.c (print_ada_declaration): For typedef declarations...
Eric Botcazou [Sun, 13 Nov 2016 17:37:35 +0000 (17:37 +0000)]
c-ada-spec.c (print_ada_declaration): For typedef declarations...

* c-ada-spec.c (print_ada_declaration): For typedef declarations, look
for nested types only if the type is a record or union and dump SLOC.

From-SVN: r242356

7 years agoipa-icf.c (sem_function::merge): Do not create a wrapper also if the original functio...
Eric Botcazou [Sun, 13 Nov 2016 17:23:13 +0000 (17:23 +0000)]
ipa-icf.c (sem_function::merge): Do not create a wrapper also if the original function needs a static chain.

* ipa-icf.c (sem_function::merge): Do not create a wrapper also if the
original function needs a static chain.

From-SVN: r242354

7 years agore PR target/78336 (powerpc-darwin bootstrap broken (probably by 241930))
David Edelsohn [Sun, 13 Nov 2016 14:28:49 +0000 (14:28 +0000)]
re PR target/78336 (powerpc-darwin bootstrap broken (probably by 241930))

        PR target/78336
        * config/rs6000/rs6000.c (rs6000_asm_weaken_decl): Protect
        ASM_OUTPUT_DEF.

From-SVN: r242353

7 years agore PR fortran/60952 ([F03] Problem using "end" as a type-bound procedure and containe...
Janus Weil [Sun, 13 Nov 2016 11:12:05 +0000 (12:12 +0100)]
re PR fortran/60952 ([F03] Problem using "end" as a type-bound procedure and contained procedure)

2016-11-13  Janus Weil  <janus@gcc.gnu.org>

PR fortran/60952
* decl.c (match_procedure_in_type): Apply the FL_PROCEDURE attribute
to the target procedure.

2016-11-13  Janus Weil  <janus@gcc.gnu.org>

PR fortran/60952
* gfortran.dg/typebound_proc_34.f90: New test.

From-SVN: r242352

7 years agore PR fortran/66366 ([OOP] ICE on invalid with non-allocatable CLASS variable)
Janus Weil [Sun, 13 Nov 2016 09:56:10 +0000 (10:56 +0100)]
re PR fortran/66366 ([OOP] ICE on invalid with non-allocatable CLASS variable)

2016-11-13  Janus Weil  <janus@gcc.gnu.org>

PR fortran/66366
* resolve.c (resolve_component): Move check for C437
to ...
* decl.c (build_struct): ... here. Fix indentation.

2016-11-13  Janus Weil  <janus@gcc.gnu.org>

PR fortran/66366
* gfortran.dg/class_57.f90: Changed error message.
* gfortran.dg/class_60.f90: New test.

From-SVN: r242351

7 years agoCWG 2233 - default arg and parameter pack
Jason Merrill [Sun, 13 Nov 2016 06:52:43 +0000 (01:52 -0500)]
CWG 2233 - default arg and parameter pack

* typeck.c (convert_arguments): Handle default arg followed by none.

From-SVN: r242350

7 years agoFix constexpr lvalue use of __real and __imag.
Jason Merrill [Sun, 13 Nov 2016 06:52:15 +0000 (01:52 -0500)]
Fix constexpr lvalue use of __real and __imag.

* constexpr.c (potential_constant_expression_1): REALPART_EXPR and
IMAGPART_EXPR can be lvalues.

From-SVN: r242349

7 years agoDR 374 - specialization in outer namespace
Jason Merrill [Sun, 13 Nov 2016 06:51:23 +0000 (01:51 -0500)]
DR 374 - specialization in outer namespace

PR c++/56840
* pt.c (check_specialization_namespace): Allow any enclosing
namespace.
(check_unqualified_spec_or_inst): New.
(check_explicit_specialization): Call it.
* parser.c (cp_parser_elaborated_type_specifier)
(cp_parser_class_head): Call it.

From-SVN: r242348

7 years agoDaily bump.
GCC Administrator [Sun, 13 Nov 2016 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r242345

7 years ago* g++.dg/pr78112.C: XFAIL AIX.
David Edelsohn [Sat, 12 Nov 2016 23:11:04 +0000 (23:11 +0000)]
* g++.dg/pr78112.C: XFAIL AIX.

From-SVN: r242342

7 years ago* src/filesystem/ops.cc (is_empty): Fix typo in exception message.
Jonathan Wakely [Sat, 12 Nov 2016 20:28:55 +0000 (20:28 +0000)]
* src/filesystem/ops.cc (is_empty): Fix typo in exception message.

From-SVN: r242341

7 years ago* include/std/future (future_error): Fix public typo to private.
Jonathan Wakely [Sat, 12 Nov 2016 20:28:50 +0000 (20:28 +0000)]
* include/std/future (future_error): Fix public typo to private.

From-SVN: r242340

7 years ago* es.po: Update.
Joseph Myers [Sat, 12 Nov 2016 18:51:17 +0000 (18:51 +0000)]
* es.po: Update.

From-SVN: r242338

7 years agors6000: Don't forget to initialize the TOC (PR77957)
Segher Boessenkool [Sat, 12 Nov 2016 15:13:14 +0000 (16:13 +0100)]
rs6000: Don't forget to initialize the TOC (PR77957)

The code generating traceback tables mistakenly does an early return
if !optional_tbtab, which causes it to miss the code generating the TOC
section.  This only matters if the TOC will be empty since otherwise
the section is created elsewhere.

This patch fixes it.

PR target/77957
* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
return early if !optional_tbtab.

From-SVN: r242336

7 years agore PR fortran/77501 ([F03] ICE in gfc_match_generic, at fortran/decl.c:9429)
Janus Weil [Sat, 12 Nov 2016 09:25:47 +0000 (10:25 +0100)]
re PR fortran/77501 ([F03] ICE in gfc_match_generic, at fortran/decl.c:9429)

2016-11-12  Janus Weil  <janus@gcc.gnu.org>

PR fortran/77501
* class.c (gfc_find_typebound_intrinsic_op): Remove an unnecessary
assert and nullification.
* decl.c (gfc_match_decl_type_spec): Use gfc_get_tbp_symtree,
fix indentation.
(gfc_match_generic): Remove an unnecessary assert.
Use gfc_get_tbp_symtree to avoid ICE.

2016-11-12  Janus Weil  <janus@gcc.gnu.org>

PR fortran/77501
* gfortran.dg/typebound_generic_16.f90: New test.

From-SVN: r242335

7 years agoAdd std::future_error constructor from future_errc
Jonathan Wakely [Sat, 12 Nov 2016 03:40:24 +0000 (03:40 +0000)]
Add std::future_error constructor from future_errc

* include/std/future (future_error): Make existing constructor
private and add constructor from future_errc.

From-SVN: r242334

7 years agoUse shared_ptr<T>::element_type in hash specializations
Jonathan Wakely [Sat, 12 Nov 2016 03:24:34 +0000 (03:24 +0000)]
Use shared_ptr<T>::element_type in hash specializations

* include/bits/shared_ptr.h (hash<shared_ptr<T>>): Use element_type.
* include/bits/shared_ptr_base.h (hash<__shared_ptr<T, L>>): Likewise.

From-SVN: r242333

7 years agoDaily bump.
GCC Administrator [Sat, 12 Nov 2016 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r242331

7 years agore PR c++/71225 (Overeager instantiation of members of non-template class nested...
Jakub Jelinek [Fri, 11 Nov 2016 23:42:25 +0000 (00:42 +0100)]
re PR c++/71225 (Overeager instantiation of members of non-template class nested in class template)

PR c++/71225
* g++.dg/cpp0x/pr71225.C: New test.

From-SVN: r242328

7 years agore PR rtl-optimization/59461 (missed zero-extension elimination in the combiner)
Eric Botcazou [Fri, 11 Nov 2016 22:38:33 +0000 (22:38 +0000)]
re PR rtl-optimization/59461 (missed zero-extension elimination in the combiner)

PR rtl-optimization/59461
* doc/rtl.texi (paradoxical subregs): Add missing word.
* combine.c (reg_nonzero_bits_for_combine): Do not discard results
in modes with precision larger than that of last_set_mode.
* rtlanal.c (nonzero_bits1) <SUBREG>: If WORD_REGISTER_OPERATIONS is
set and LOAD_EXTEND_OP is appropriate, propagate results from inner
REGs to paradoxical SUBREGs.
(num_sign_bit_copies1) <SUBREG>: Likewise.  Check that the mode is not
larger than a word before invoking LOAD_EXTEND_OP on it.

From-SVN: r242326

7 years ago* fr.po: Update.
Joseph Myers [Fri, 11 Nov 2016 22:08:25 +0000 (22:08 +0000)]
* fr.po: Update.

From-SVN: r242324

7 years agoi386.md (*<shift_insn><mode>3_doubleword): Mark operand 0 as earlyclobber.
Uros Bizjak [Fri, 11 Nov 2016 19:38:20 +0000 (20:38 +0100)]
i386.md (*<shift_insn><mode>3_doubleword): Mark operand 0 as earlyclobber.

* config/i386/i386.md (*<shift_insn><mode>3_doubleword): Mark
operand 0 as earlyclobber.
(*ashl<mode>3_doubleword): Ditto for all operand 0 alternatives.

From-SVN: r242318

7 years agore PR target/78243 (incorrect byte offset in vextractuh with -mcpu=power9)
Michael Meissner [Fri, 11 Nov 2016 19:12:12 +0000 (19:12 +0000)]
re PR target/78243 (incorrect byte offset in vextractuh with -mcpu=power9)

2016-11-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/78243
* config/rs6000/vsx.md (vsx_extract_<mode>_p9): Correct the
element order for little endian ordering.

* config/rs6000/altivec.md (reduc_plus_scal_<mode>): Use
VECTOR_ELT_ORDER_BIG and not BYTES_BIG_ENDIAN to adjust element
number.

From-SVN: r242317

7 years ago[i386][musl] Add cpuinfo to static libgcc only on *-musl*
Szabolcs Nagy [Fri, 11 Nov 2016 17:31:07 +0000 (17:31 +0000)]
[i386][musl] Add cpuinfo to static libgcc only on *-musl*

The __cpu_indicator_init and __cpu_model symbols are not safe to use
from shared libgcc_s.so from ifunc resolvers, so since gcc-6, only
the definitions from static libgcc.a are used, however the symbols
are kept in libgcc_s as well for backward compatibility (with
appropriate symbol version).  On targets without such backward
compatibility concern add cpuinfo to the static library only (this
avoids running the ctor, reduces libgcc_s size and elf abi concerns
about the versioned symbols).

libgcc/
2016-11-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>

* config.host (i[3456]86-*-musl*, x86_64-*-musl*): Use
i386/t-cpuinfo-static instead of i386/t-cpuinfo.
* config/i386/t-cpuinfo-static: New.

From-SVN: r242268

7 years agore PR target/78310 (ICE: insn does not satisfy its constraints: {*bmi2_rorxdi3_1...
Uros Bizjak [Fri, 11 Nov 2016 16:21:52 +0000 (17:21 +0100)]
re PR target/78310 (ICE: insn does not satisfy its constraints: {*bmi2_rorxdi3_1} with -mbmi2)

PR target/78310
* config/i386/i386.md (rotate to rotatex splitter): Avoid overflow
when calculating operand 2.
(rotate to rotatex zext splitter): Ditto.

testsuite/ChangeLog:

PR target/78310
* gcc.target/i386/pr78310.c: New test.

From-SVN: r242076

7 years agogimple-ssa-isolate-paths.c (is_divmod_with_given_divisor): New function.
Jeff Law [Fri, 11 Nov 2016 16:00:47 +0000 (09:00 -0700)]
gimple-ssa-isolate-paths.c (is_divmod_with_given_divisor): New function.

* gimple-ssa-isolate-paths.c (is_divmod_with_given_divisor): New
function.
(stmt_uses_name_in_undefined_way): New function, extracted from
find_implicit_erroneous_behavior and extended for div/mod case.
(stmt_uses_0_or_null_in_undefined_way): New function, extracted from
find_explicit_erroneous_behavior and extended for div/mod case.
(find_implicit_erroneous_behavior): Use new helper function.
(find_explicit_erroneous_behavior): Use new helper function.

* gcc.dg/tree-ssa/isolate-6.c: New test.
* gcc.dg/tree-ssa/isolate-7.c: New test.

From-SVN: r242075

7 years agore PR testsuite/78292 (test case gcc.dg/vect/vect-cond-2.c fails starting with r241967)
Bin Cheng [Fri, 11 Nov 2016 14:59:48 +0000 (14:59 +0000)]
re PR testsuite/78292 (test case gcc.dg/vect/vect-cond-2.c fails starting with r241967)

gcc/testsuite
PR testsuite/78292
* gcc.dg/vect/vect-cond-2.c: Only drop xfail for targets supporting
vect_max_reduc.

From-SVN: r242073

7 years agolibgo: fix GOARCH_INT64ALIGN for several targets
Ian Lance Taylor [Fri, 11 Nov 2016 14:52:35 +0000 (14:52 +0000)]
libgo: fix GOARCH_INT64ALIGN for several targets

    From Andreas Schwab.

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

From-SVN: r242072

7 years agore PR c++/72774 (ICE on invalid C++ code on x86_64-linux-gnu (tree check: expected...
Jakub Jelinek [Fri, 11 Nov 2016 13:39:06 +0000 (14:39 +0100)]
re PR c++/72774 (ICE on invalid C++ code on x86_64-linux-gnu (tree check: expected tree that contains ‘decl minimal’ structure, have ‘tree_list’ in consider_binding_level, at cp/name-lookup.c:4721))

PR c++/72774
* g++.dg/parse/pr72774.C: New test.

From-SVN: r242070

7 years agore PR tree-optimization/71575 ([graphite] internal compiler error: in copy_cond_phi_n...
Richard Biener [Fri, 11 Nov 2016 12:54:25 +0000 (12:54 +0000)]
re PR tree-optimization/71575 ([graphite] internal compiler error: in copy_cond_phi_nodes, at graphite-isl-ast-to-gimple.c:2500)

2016-11-11  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71575
* graphite-isl-ast-to-gimple.c (copy_cond_phi_nodes): Remove
bogus assert.

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

From-SVN: r242069

7 years agore PR middle-end/78295 (Spurious -Wuninitialized warning for vector element assignment)
Richard Biener [Fri, 11 Nov 2016 12:53:36 +0000 (12:53 +0000)]
re PR middle-end/78295 (Spurious -Wuninitialized warning for vector element assignment)

2016-11-11  Richard Biener  <rguenther@suse.de>

PR middle-end/78295
* tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
about uninitialized destination arg of BIT_INSERT_EXPR.

* gcc.dg/uninit-pr78295.c: New testcase.

From-SVN: r242068

7 years agoDaily bump.
GCC Administrator [Fri, 11 Nov 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r242065

7 years agore PR c/37998 (Unclear documentation of -fno-common)
Sandra Loosemore [Thu, 10 Nov 2016 23:56:30 +0000 (18:56 -0500)]
re PR c/37998 (Unclear documentation of -fno-common)

2016-11-10  Sandra Loosemore  <sandra@codesourcery.com>

PR c/37998

gcc/
* doc/invoke.texi (Code Gen Options) [-fno-common]: Use correct
terminology.  Expand to remove ambiguity.

From-SVN: r242062

7 years agoruntime: copy signal code from Go 1.7 runtime
Ian Lance Taylor [Thu, 10 Nov 2016 22:53:23 +0000 (22:53 +0000)]
runtime: copy signal code from Go 1.7 runtime

    Add a little shell script to auto-generate runtime.sigtable from the
    known signal names.

    Force the main package to always import the runtime package.  Otherwise
    some runtime package global variables may never be initialized.

    Set the syscallsp and syscallpc fields of g when entering a syscall, so
    that the runtime package knows when a g is executing a syscall.

    Fix runtime.funcPC to avoid dead store elimination of the interface
    value when the function is inlined.

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

From-SVN: r242060

7 years agocombine: Do not call simplify from inside change_zero_ext (PR78232)
Segher Boessenkool [Thu, 10 Nov 2016 22:45:39 +0000 (23:45 +0100)]
combine: Do not call simplify from inside change_zero_ext (PR78232)

When combine splits a three-insn combination into two instructions it
can reuse i2dest for the temporary result of the first new instruction.
However all information it has in reg_stat about that register will be
stale.  This results in the simplify_gen_binary calls in change_zero_ext
using out-of-date information, which makes it think one of the ANDs
generated there always results in 0, and it doesn't get better from there.

This can also happen if a splitter in the MD uses nonzero_bits (for
example).  I tried to make the splitting code in combine save and restore
the i2dest reg_stat info, but that causes one of the acats tests to fail.

This whole reg_stat thing needs an overhaul, and/or we shouldn't reuse
i2dest for unrelated purposes when splitting.

This patch changes change_zero_ext to do the expected simplifications
itself and not call simplify_gen_*.

PR rtl-optimization/78232
* combine.c (try_combine): Add a big comment about why reusing i2dest
is undesirable.
(change_zero_ext): Do not call simplify_gen_binary, do the
simplifications manually.

From-SVN: r242059

7 years agoFix ICE and improve errors for invalid anonymous structure declarations.
Fritz O. Reese [Thu, 10 Nov 2016 21:57:13 +0000 (21:57 +0000)]
Fix ICE and improve errors for invalid anonymous structure declarations.

PR fortran/78277
* gcc/fortran/decl.c (gfc_match_data_decl): Gracefully handle bad
anonymous structure declarations.

PR fortran/78277
* gcc/testsuite/gfortran.dg/dec_structure_17.f90: New test.

From-SVN: r242058

7 years agoFix some whitespace.
Fritz O. Reese [Thu, 10 Nov 2016 21:54:48 +0000 (21:54 +0000)]
Fix some whitespace.

gcc/fortran/
* decl.c (get_struct_decl, gfc_match_map, gfc_match_union): Fix
whitespace.
* interface.c (gfc_compare_union_types): Likewise.

From-SVN: r242057

7 years agoPR c++/77337 - auto return and lambda
Jason Merrill [Thu, 10 Nov 2016 21:42:36 +0000 (16:42 -0500)]
PR c++/77337 - auto return and lambda

* pt.c (tsubst_friend_function): Don't set DECL_INITIAL.
(instantiate_decl): It's OK to defer a constexpr function.
* cp-tree.h (DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION): Check
DECL_LANG_SPECIFIC.
* decl2.c (decl_defined_p): Use it.  No longer static.
* decl.c (redeclaration_error_message): Use decl_defined_p.
* constexpr.c (cxx_eval_call_expression): Set input_location around
call to instantiate_decl.

From-SVN: r242056

7 years agodebug.cc (format_word): Delete.
François Dumont [Thu, 10 Nov 2016 21:29:43 +0000 (21:29 +0000)]
debug.cc (format_word): Delete.

2016-11-10  François Dumont  <fdumont@gcc.gnu.org>

* src/c++11/debug.cc (format_word): Delete.
(print_literal): New. Replace call to print_word for literals.

From-SVN: r242055

7 years agors6000.c (rs6000_hard_regno_mode_ok): If ISA 3.0...
Michael Meissner [Thu, 10 Nov 2016 19:38:33 +0000 (19:38 +0000)]
rs6000.c (rs6000_hard_regno_mode_ok): If ISA 3.0...

[gcc]
2016-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If ISA 3.0,
enable HImode and QImode to go in vector registers by default if
the -mvsx-small-integer option is enabled.
(rs6000_secondary_reload_simple_move): Likewise.
(rs6000_preferred_reload_class): Don't force integer constants to
be loaded into vector registers that we can easily make into
memory (or being created in the GPRs and moved over with direct
move).
* config/rs6000/vsx.md (UNSPEC_P9_MEMORY): Delete, no longer
used.
(vsx_extract_<mode>): Rework V4SImode, V8HImode, and V16QImode
vector extraction on ISA 3.0 when the scalar integer can be
allocated in vector registers.  Generate the VEC_SELECT directy,
and don't use UNSPEC's to avoid having the scalar type in a vector
register.  Make the expander target registers, and let the
combiner fold in results storing to memory, if the machine
supports stores.
(vsx_extract_<mode>_di): Likewise.
(vsx_extract_<mode>_p9): Likewise.
(vsx_extract_<mode>_di_p9): Likewise.
(vsx_extract_<mode>_store_p9): Likewise.
(vsx_extract_si): Likewise.
(vsx_extract_<mode>_p8): Likewise.
(p9_lxsi<wd>zx): Delete, no longer used.
(p9_stxsi<wd>x): Likewise.
* config/rs6000/rs6000.md (INT_ISA3): New mode iterator for
integers in vector registers for ISA 3.0.
(QHI): Update comment.
(zero_extendqi<mode>2): Add support for ISA 3.0 scalar load or
vector extract instructions in sign/zero extend.
(zero_extendhi<mode>): Likewise.
(extendqi<mode>): Likewise.
(extendhi<mode>2): Likewise.
(HImode splitter for load/sign extend in vector register):
Likewise.
(float<QHI:mode><FP_ISA3:mode>2): Eliminate old method of
optimizing floating point conversions to/from small data types and
rewrite it to support QImode/HImode being allowed in vector
registers on ISA 3.0.
(float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
(floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
(floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
(fix_trunc<SFDF:mode><QHI:mode>2): Likewise.
(fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
(fixuns_trunc<SFDF:mode><QHI:mode>2): Likewise.
(fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
VSPLITISW on ISA 2.07.
(movhi_internal): Combine movhi_internal and movqi_internal into
one mov<mode>_internal with an iterator.  Add support for QImode
and HImode being allowed in vector registers.  Make large number
of attributes and constraints easier to read.
(movqi_internal): Likewise.
(mov<mode>_internal): Likewise.
(movdi_internal64): Fix constraint to allow loading -16..15 with
VSPLITISW on ISA 2.07.
(integer XXSPLTIB splitter): Add support for QI, HI, and SImode as
well as DImode.

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

* gcc.target/powerpc/vsx-qimode.c: New test for QImode, HImode
being allowed in vector registers.
* gcc.target/powerpc/vsx-qimode2.c: Likewise.
* gcc.target/powerpc/vsx-qimode3.c: Likewise.
* gcc.target/powerpc/vsx-himode.c: Likewise.
* gcc.target/powerpc/vsx-himode2.c: Likewise.
* gcc.target/powerpc/vsx-himode3.c: Likewise.
* gcc.target/powerpc/p9-extract-1.c: Change MFVSRD to just MFVSR,
to allow matching MFVSRD or MFVSRW.

From-SVN: r242048

7 years agore PR rtl-optimization/78241 (wrong code with -funroll-loops)
Pat Haugen [Thu, 10 Nov 2016 18:55:57 +0000 (18:55 +0000)]
re PR rtl-optimization/78241 (wrong code with -funroll-loops)

PR rtl-optimization/78241
* loop-unroll.c (unroll_loop_runtime_iterations): Don't adjust 'niter', but
emit initial peel copy if niter expr is not reliable.

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

From-SVN: r242047