1. 15 Nov, 2016 27 commits
    • Makefile.def: Remove references to GCJ. · 8e4d2ca4
      2016-11-15  Matthias Klose  <doko@ubuntu.com>
      
              * Makefile.def: Remove references to GCJ.
              * Makefile.tpl: Likewise.
              * Makefile.in: Regenerate.
      
      From-SVN: r242439
      Matthias Klose committed
    • variant: Remove variant<T&>... · 7b277e8b
      	* include/std/variant: Remove variant<T&>, variant<void>, variant<> support
      	to rebase on the post-Issaquah design.
      	* testsuite/20_util/variant/compile.cc: Likewise.
      
      From-SVN: r242437
      Tim Shen committed
    • libgomp testsuite: add missing map clauses · 18d2ada8
      	* testsuite/libgomp.fortran/examples-4/device-1.f90 (e_57_1): Add
      	mapping clauses to target constructs.
      	* testsuite/libgomp.fortran/examples-4/device-3.f90 (e_57_3): Ditto.
      
      
      Co-Authored-By: Alexander Monakov <amonakov@ispras.ru>
      
      From-SVN: r242436
      Martin Jambor committed
    • decomp14.C: New test. · 5a65a911
      	* g++.dg/cpp1z/decomp14.C: New test.
      	* g++.dg/cpp1z/decomp15.C: New test.
      	* g++.dg/cpp1z/decomp16.C: New test.
      
      From-SVN: r242435
      Jakub Jelinek committed
    • decl.c (cp_finish_decomp): For DECL_NAMESPACE_SCOPE_P decl, set DECL_ASSEMBLER_NAME. · a0f5b987
      	* decl.c (cp_finish_decomp): For DECL_NAMESPACE_SCOPE_P decl,
      	set DECL_ASSEMBLER_NAME.
      	* parser.c (cp_parser_decomposition_declaration): Likewise
      	if returning error_mark_node.
      	* mangle.c (mangle_decomp): New function.
      	* cp-tree.h (mangle_decomp): New declaration.
      
      	* g++.dg/cpp1z/decomp13.C: New test.
      
      From-SVN: r242434
      Jakub Jelinek committed
    • config-ml.in: Remove references to GCJ. · 84c1b9d3
      <toplevel>
      
      2016-11-15  Matthias Klose  <doko@ubuntu.com>
      
      	* config-ml.in: Remove references to GCJ.
      	* configure.ac: Likewise.
      	* configure: Regenerate.
      
      config/
      
      2016-11-15  Matthias Klose  <doko@ubuntu.com>
      
      	multi.m4: Don't set GCJ.
      
      gcc/
      
      2016-11-15  Matthias Klose  <doko@ubuntu.com>
      
      	* doc/install.texi: Remove references to gcj/libjava.
      	* doc/invoke.texi: Likewise.
      
      */ (where necessary)
      
      2016-11-15  Matthias Klose  <doko@ubuntu.com>
      
      	* configure: Regenerate.
      
      From-SVN: r242433
      Matthias Klose committed
    • PR c++/78358 - tuple decomposition decltype · 94460802
      	* semantics.c (finish_decltype_type): Strip references for a tuple
      	decomposition.
      	* cp-tree.h (DECL_DECOMPOSITION_P): False for non-variables.
      
      From-SVN: r242432
      Jason Merrill committed
    • tree-ssa-threadbackward.c (fsm_find_thread_path): Remove unneeded parameter. · 435fd407
      	* 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
      Jeff Law committed
    • ChangeLog: Fix ChangeLog entry. · 22b15758
      	* gcc/ChangeLog: Fix ChangeLog entry.
      	* gcc/c/ChangeLog: Ditto.
      	* gcc/c-family/ChangeLog: Ditto.
      	* gcc/cp/ChangeLog: Ditto.
      
      From-SVN: r242429
      Uros Bizjak committed
    • [ARC] [libgcc] Fix defines · d64af69f
      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
      Claudiu Zissulescu committed
    • re PR c++/71988 (ICE in dump_simple_decl (gcc/cp/error.c:965)) · 0c8a8fe2
      	PR c++/71988
      	* g++.dg/cpp0x/constexpr-71988.C: New test.
      
      From-SVN: r242426
      Jakub Jelinek committed
    • [ARC] New option handling, refurbish multilib support. · f9ccf899
      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
      Claudiu Zissulescu committed
    • MIPS/GCC: Mark trailing labels with `.insn' · 2cf63121
      	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
      Maciej W. Rozycki committed
    • MIPS/GCC/test: Implement `-mcode-readable=yes' option test · 2cbfb209
      	gcc/testsuite/
      	* gcc.target/mips/mips.exp (mips_option_tests): Add
      	`-mcode-readable=yes' array element.
      
      From-SVN: r242423
      Maciej W. Rozycki committed
    • Allow references in constant-expressions. · fd338b13
      	* 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
      Jason Merrill committed
    • MIPS/GCC/test: Implement `-mmicromips' option test · f05a874c
      	gcc/testsuite/
      	* gcc.target/mips/mips.exp (mips_option_tests): Add
      	`-mmicromips' array element.
      
      From-SVN: r242421
      Maciej W. Rozycki committed
    • Fix find&replace error in license boilerplate · c7cbb4da
      	* 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
      Jonathan Wakely committed
    • Add std::string constructor for substring of string_view (LWG 2742) · bf56b0b8
      	* 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
      Jonathan Wakely committed
    • Constrain swap overload for std::optional (LWG 2748) · 8b99f005
      	* 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
      Jonathan Wakely committed
    • re PR target/77881 (Non-optimal signed comparison on x86_64 since r146817) · b229ab2a
      	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
      Michael Matz committed
    • re PR middle-end/78295 (Spurious -Wuninitialized warning for vector element assignment) · aa806c3b
      	PR middle-end/78295
      	* gcc.dg/uninit-pr78295.c: Add -Wno-psabi to dg-options.
      
      From-SVN: r242413
      Jakub Jelinek committed
    • Fix scripto in ChangeLog · f632d671
      From-SVN: r242410
      Richard Sandiford committed
    • Fix a GET_MODE_CLASS typo in mem_loc_descriptor · e17689cd
      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
      Richard Sandiford committed
    • Various C++17 decomposition fixes. · 47e5d7cc
      	* 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
      Jason Merrill committed
    • Daily bump. · a274cc11
      From-SVN: r242406
      GCC Administrator committed
  2. 14 Nov, 2016 13 commits
    • runtime: don't crash if signal handler info argument is nil · 7b9f5cee
          
          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
      Ian Lance Taylor committed
    • Implement P0513R0, Poisoning the Hash. · 6964bb3e
      * 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
      Ville Voutilainen committed
    • Implement P0504R0 (Revisiting in-place tag types for any/optional/variant). · 627a2f59
      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
      Ville Voutilainen committed
    • rs6000.c (rs6000_expand_vector_set): Add support for using xxinsertw and vinsert{b,h} on ISA 3.0. · bcb9a772
      [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
      Michael Meissner committed
    • libiberty: Add -Wshadow=local to warning flags (if supported). · 3eb89071
      libiberty/ChangeLog:
      
             * configure.ac (ac_libiberty_warn_cflags): Add -Wshadow=local.
             * configure: Regenerated.
      
      From-SVN: r242396
      Mark Wielaard committed
    • c-cppbuiltin.c (c_cpp_builtins): Define __cpp_structured_bindings. · 8e745a17
      	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_structured_bindings.
      
      	* g++.dg/cpp1z/feat-cxx1z.C: Test __cpp_structured_bindings macro.
      
      From-SVN: r242395
      Jakub Jelinek committed
    • tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg and cmpnop in two steps... · bf166718
      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
      Thomas Preud'homme committed
    • dump-parse-tree.c (show_code): Add prototype. · d32e1fd8
      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
      Thomas Koenig committed
    • re PR fortran/78300 ([OOP] Failure to compile a F03 code with an optional dummy procedure argument) · d809e15a
      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
      Janus Weil committed
    • i386.md (*andndi3_doubleword): Merge operand constraints. · 9daa4c72
      	* config/i386/i386.md (*andndi3_doubleword): Merge operand constraints.
      	(*ashl<mode>3_doubleword): Ditto.
      
      From-SVN: r242391
      Uros Bizjak committed
    • Use constexpr addressof in optional, SFINAE housekeeping for any, optional and tuple. · ca9e949f
      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
      Ville Voutilainen committed
    • Fix dump output in dse_optimize_stmt · ebd9509a
      	* tree-ssa-dse.c (dse_optimize_stmt): Remove quotes and extra
      	new line.
      
      From-SVN: r242389
      Martin Liska committed
    • Make-lang.in (C_AND_OBJC_OBJS): Add gimple-parser.o. · bc08ecba
      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
      Prasad Ghangal committed