Jonathan Wakely [Tue, 15 Nov 2016 19:32:44 +0000 (19:32 +0000)]
Make std::tuple_size<cv T> SFINAE-friendly (LWG 2770)
* doc/xml/manual/intro.xml: Document LWG 2770 status. Remove entries
for 2742 and 2748.
* doc/html/*: Regenerate.
* include/std/utility (__tuple_size_cv_impl): New helper to safely
detect tuple_size<T>::value, as per LWG 2770.
(tuple_size<cv T>): Adjust partial specializations to derive from
__tuple_size_cv_impl.
* testsuite/20_util/tuple/cv_tuple_size.cc: Test SFINAE-friendliness.
From-SVN: r242452
Mark Wielaard [Tue, 15 Nov 2016 19:31:59 +0000 (19:31 +0000)]
libiberty: demangler crash with missing :? or fold expression component.
When constructing an :? or fold expression that requires a third
expression only the first and second were explicitly checked to
not be NULL. Since the third expression is also required in these
constructs it needs to be explicitly checked and rejected when missing.
Otherwise the demangler will crash once it tries to d_print the
NULL component. Added two examples to demangle-expected of strings
that would crash before this fix.
Found by American Fuzzy Lop (afl) fuzzer.
From-SVN: r242451
Mark Wielaard [Tue, 15 Nov 2016 19:31:50 +0000 (19:31 +0000)]
libiberty: Fix some demangler crashes caused by reading past end of input.
In various situations the cplus_demangle () function could read past the
end of input causing crashes. Add checks in various places to not advance
the demangle string location and fail early when end of string is reached.
Add various examples of input strings to the testsuite that would crash
test-demangle before the fixes.
Found by using the American Fuzzy Lop (afl) fuzzer.
libiberty/ChangeLog:
* cplus-dem.c (demangle_signature): After 'H', template function,
no success and don't advance position if end of string reached.
(demangle_template): After 'z', template name, return zero on
premature end of string.
(gnu_special): Guard strchr against searching for zero characters.
(do_type): If member, only advance mangled string when 'F' found.
* testsuite/demangle-expected: Add examples of strings that could
crash the demangler by reading past end of input.
From-SVN: r242450
Jonathan Wakely [Tue, 15 Nov 2016 19:29:07 +0000 (19:29 +0000)]
Adjust pretty printer test for variant<T&>
* testsuite/libstdc++-prettyprinters/cxx17.cc: Adjust test for
variant<T&>.
From-SVN: r242449
Uros Bizjak [Tue, 15 Nov 2016 19:26:41 +0000 (20:26 +0100)]
funcspec-56.inc: New file.
* gcc.target/i386/funcspec-56.inc: New file.
* gcc.target/i386.funcspec-5.c: Include funcspec-56.inc. Remove
common 32-bit and 64-bit function specific options.
* gcc.target/i386.funcspec-6.c: Ditto.
From-SVN: r242448
Richard Sandiford [Tue, 15 Nov 2016 18:30:31 +0000 (18:30 +0000)]
Fix instances of gen_rtx_REG (VOIDmode, ...)
Several definitions of INCOMING_RETURN_ADDR_RTX used
gen_rtx_REG (VOIDmode, ...), which with later patches
would trip an assert. This patch converts them to use
Pmode instead.
gcc/
2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
* config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use Pmode instead
of VOIDmode.
* config/ia64/ia64.h (INCOMING_RETURN_ADDR_RTX): Likewise.
* config/iq2000/iq2000.h (INCOMING_RETURN_ADDR_RTX): Likewise.
* config/m68k/m68k.h (INCOMING_RETURN_ADDR_RTX): Likewise.
* config/microblaze/microblaze.h (INCOMING_RETURN_ADDR_RTX): Likewise.
* config/mips/mips.h (INCOMING_RETURN_ADDR_RTX): Likewise.
* config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Likewise.
* config/nios2/nios2.h (INCOMING_RETURN_ADDR_RTX): Likewise.
Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r242447
Richard Sandiford [Tue, 15 Nov 2016 18:18:08 +0000 (18:18 +0000)]
Use MEM_SIZE rather than GET_MODE_SIZE in dce.c
Using MEM_SIZE is more general, since it copes with cases where
targets are forced to use BLKmode references for whatever reason.
gcc/
2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
* dce.c (check_argument_store): Pass the size instead of
the memory reference.
(find_call_stack_args): Pass MEM_SIZE to check_argument_store.
Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r242446
Richard Sandiford [Tue, 15 Nov 2016 18:16:59 +0000 (18:16 +0000)]
Use simplify_gen_binary in canon_rtx
After simplifying the operands of a PLUS, canon_rtx checked only
for cases in which one of the simplified operands was a constant,
falling back to gen_rtx_PLUS otherwise. This left the PLUS in a
non-canonical order if one of the simplified operands was
(plus (reg R1) (const_int X)); we'd end up with:
(plus (plus (reg R1) (const_int Y)) (reg R2))
rather than:
(plus (plus (reg R1) (reg R2)) (const_int Y))
Fixing this exposed new DSE opportunities on spu-elf in
gcc.c-torture/execute/builtins/strcat-chk.c but otherwise
it doesn't seem to have much practical effect.
gcc/
2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
* alias.c (canon_rtx): Use simplify_gen_binary.
Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r242445
Richard Sandiford [Tue, 15 Nov 2016 18:13:56 +0000 (18:13 +0000)]
Add a load_extend_op wrapper
LOAD_EXTEND_OP only applies to scalar integer modes that are narrower
than a word. However, callers weren't consistent about which of these
checks they made beforehand, and also weren't consistent about whether
"smaller" was based on (bit)size or precision (IMO it's the latter).
This patch adds a wrapper to try to make the macro easier to use.
LOAD_EXTEND_OP is often used to disable transformations that aren't
beneficial when extends from memory are free, so being stricter about
the check accidentally exposed more optimisation opportunities.
"SUBREG_BYTE (...) == 0" and subreg_lowpart_p are implied by
paradoxical_subreg_p, so the patch also removes some redundant tests.
The patch doesn't change reload, since different checks could have
unforeseen consequences.
gcc/
2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
* rtl.h (load_extend_op): Declare.
* rtlanal.c (load_extend_op): New function.
(nonzero_bits1): Use it.
(num_sign_bit_copies1): Likewise.
* cse.c (cse_insn): Likewise.
* fold-const.c (fold_single_bit_test): Likewise.
(fold_unary_loc): Likewise.
* fwprop.c (free_load_extend): Likewise.
* postreload.c (reload_cse_simplify_set): Likewise.
(reload_cse_simplify_operands): Likewise.
* combine.c (try_combine): Likewise.
(simplify_set): Likewise. Remove redundant SUBREG_BYTE and
subreg_lowpart_p checks.
Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r242444
Richard Sandiford [Tue, 15 Nov 2016 17:57:53 +0000 (17:57 +0000)]
Fix simplify_shift_const_1 handling of vector shifts
simplify_shift_const_1 handles both shifts of scalars by scalars
and shifts of vectors by scalars. For vectors this means that
each element is shifted by the same amount.
However:
(a) the two cases weren't always distinguished, so we'd try
things for vectors that only made sense for scalars.
(b) a lot of the range and bitcount checks were based on the
bitsize or precision of the full shifted operand, rather
than the mode of each element.
Fixing (b) accidentally exposed more optimisation opportunities,
although that wasn't the point of the patch.
gcc/
2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
* combine.c (simplify_shift_const_1): Use the number of bits
in the inner mode to determine the range of the shift.
When handling shifts of vectors, skip any rules that apply
only to scalars.
Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r242442
Richard Sandiford [Tue, 15 Nov 2016 17:54:20 +0000 (17:54 +0000)]
Move misplaced assignment in num_sign_bit_copies1
The old assignment to bitwidth was before we handled VOIDmode with:
if (mode == VOIDmode)
mode = GET_MODE (x);
so when VOIDmode was specified we would always use:
if (bitwidth < GET_MODE_PRECISION (GET_MODE (x)))
{
num0 = cached_num_sign_bit_copies (x, GET_MODE (x),
known_x, known_mode, known_ret);
return MAX (1,
num0 - (int) (GET_MODE_PRECISION (GET_MODE (x)) - bitwidth));
}
For a zero bitwidth this always returns 1 (which is the most
pessimistic result).
gcc/
2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
* rtlanal.c (num_sign_bit_copies1): Calculate bitwidth after
handling VOIDmode.
Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r242440
Matthias Klose [Tue, 15 Nov 2016 17:29:12 +0000 (17:29 +0000)]
Makefile.def: Remove references to GCJ.
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 [Tue, 15 Nov 2016 17:27:39 +0000 (17:27 +0000)]
- Revert last commit, restore the regenerated files aclocal.m4 and configure
From-SVN: r242438
Tim Shen [Tue, 15 Nov 2016 17:26:59 +0000 (17:26 +0000)]
variant: Remove variant<T&>...
* 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
Martin Jambor [Tue, 15 Nov 2016 17:14:32 +0000 (18:14 +0100)]
libgomp testsuite: add missing map clauses
* 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
Jakub Jelinek [Tue, 15 Nov 2016 17:06:43 +0000 (18:06 +0100)]
decomp14.C: New test.
* 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 [Tue, 15 Nov 2016 17:05:23 +0000 (18:05 +0100)]
decl.c (cp_finish_decomp): For DECL_NAMESPACE_SCOPE_P decl, set DECL_ASSEMBLER_NAME.
* 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
Matthias Klose [Tue, 15 Nov 2016 16:34:02 +0000 (16:34 +0000)]
config-ml.in: Remove references to GCJ.
<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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Richard Sandiford [Tue, 15 Nov 2016 10:57:03 +0000 (10:57 +0000)]
Fix scripto in ChangeLog
From-SVN: r242410
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
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
GCC Administrator [Tue, 15 Nov 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r242406
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
GCC Administrator [Mon, 14 Nov 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r242372
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
GCC Administrator [Sun, 13 Nov 2016 00:16:21 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r242345
David Edelsohn [Sat, 12 Nov 2016 23:11:04 +0000 (23:11 +0000)]
* g++.dg/pr78112.C: XFAIL AIX.
From-SVN: r242342
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
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
Joseph Myers [Sat, 12 Nov 2016 18:51:17 +0000 (18:51 +0000)]
* es.po: Update.
From-SVN: r242338
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
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
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
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
GCC Administrator [Sat, 12 Nov 2016 00:16:18 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r242331
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
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
Joseph Myers [Fri, 11 Nov 2016 22:08:25 +0000 (22:08 +0000)]
* fr.po: Update.
From-SVN: r242324
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
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