Jakub Jelinek [Tue, 20 Sep 2016 15:16:55 +0000 (17:16 +0200)]
re PR c++/77637 (ICE on x86_64-linux-gnu (Segmentation fault, tree_check, cp_parser_std_attribute_list...))
PR c++/77637
* parser.c (cp_parser_std_attribute_list): Reject ... without
preceding attribute.
* g++.dg/cpp0x/gen-attrs-62.C: New test.
From-SVN: r240265
Ville Voutilainen [Tue, 20 Sep 2016 15:15:36 +0000 (18:15 +0300)]
re PR libstdc++/77619 (uninitialized_meow_construct and friends not exception safe)
PR libstdc++/77619
* include/bits/stl_construct.h: (_Construct_novalue): New.
(_Destroy_n_aux, _Destroy_n): New.
* include/bits/stl_uninitialized.h: (type_traits):
New include in C++11 mode.
(__uninitialized_default_novalue_1): New.
(__uninitialized_default_novalue_n_1): Likewise.
(__uninitialized_default_novalue): Likewise.
(__uninitialized_default_novalue_n): Likewise.
(__uninitialized_copy_n_pair): Likewise.
(uninitialized_default_construct):
Use __uninitialized_default_novalue.
(uninitialized_default_construct_n):
Use __uninitialized_default_novalue_n.
(uninitialized_value_construct): Use __uninitialized_default.
(uninitialized_value_construct_n): Use __uninitialized_default_n.
(uninitialized_move): Use uninitialized_copy.
(uninitialized_move_n): Use __uninitialized_copy_n_pair.
(destroy_at): Use _Destroy.
(destroy): Likewise.
(destroy_n): Likewise.
* testsuite/20_util/specialized_algorithms/
memory_management_tools/1.cc: Add tests for exceptions,
add tests for trivial cases for construct and move.
From-SVN: r240264
Jakub Jelinek [Tue, 20 Sep 2016 13:48:40 +0000 (15:48 +0200)]
re PR middle-end/77624 (ICE on x86_64-linux-gnu (internal compiler error: in fold_builtin_atomic_always_lock_free, at builtins.c:5583))
PR middle-end/77624
* builtins.c (fold_builtin_atomic_always_lock_free): Only look through
cast to void * if the cast is from some other pointer type.
* c-c++-common/pr77624-1.c: New test.
* c-c++-common/pr77624-2.c: New test.
From-SVN: r240263
Andre Vehreschild [Tue, 20 Sep 2016 12:39:31 +0000 (14:39 +0200)]
coarray_allocate_7.f08: Using + instead of fixed number of digits expected.
2016-09-20 Andre Vehreschild <vehre@gcc.gnu.org>
* gfortran.dg/coarray_allocate_7.f08: Using + instead of fixed number
of digits expected.
From-SVN: r240262
Richard Biener [Tue, 20 Sep 2016 12:20:37 +0000 (12:20 +0000)]
re PR tree-optimization/77646 (GCC Segfault with -O3)
2016-09-20 Richard Biener <rguenther@suse.de>
PR tree-optimization/77646
* tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
a VDEF.
* gcc.dg/torture/pr77646.c: New testcase.
From-SVN: r240261
Jonathan Wakely [Tue, 20 Sep 2016 09:57:02 +0000 (10:57 +0100)]
Replace casts with floordiv operator in Python xmethods
* python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
(DequeWorkerBase.index, VectorWorkerBase.get): Use // for division.
From-SVN: r240258
Tamar Christina [Tue, 20 Sep 2016 09:06:13 +0000 (09:06 +0000)]
[GCC][PATCH] Add __artificial__ attribute to Aarch64 NEON intrinsics
Committed on behalf of Tamar Christina <tamar.christina@arm.com>.
gcc/
* config/aarch64/arm_neon.h: Add gnu_inline and artificial
attributes to all inlined functions and make them extern.
From-SVN: r240256
Richard Biener [Tue, 20 Sep 2016 07:37:53 +0000 (07:37 +0000)]
debug.h (gcc_debug_hooks): Add filename parameter to early_finish hook.
2016-09-20 Richard Biener <rguenther@suse.de>
* debug.h (gcc_debug_hooks): Add filename parameter to early_finish
hook.
* debug.c (do_nothing_debug_hooks): Adjust.
* dbxout.c (dbx_debug_hooks): Likewise.
* sdbout.c (sdb_debug_hooks): Likewise.
* dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
(dwarf2out_finish): Move producer, filename and
path annotation ...
(dwarf2out_early_finish): ... here. Remove in_lto_p special-casing.
* cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust.
lto/
* lto.c (lto_main): Call early_finish with "<artificial>" as
filename.
From-SVN: r240255
GCC Administrator [Tue, 20 Sep 2016 00:16:21 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r240254
Bernd Edlinger [Mon, 19 Sep 2016 22:10:11 +0000 (22:10 +0000)]
re PR c++/77434 (warn about suspicious precedence of ternary operator (?:))
gcc:
2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR c++/77434
* doc/invoke.texi: Document -Wint-in-bool-context.
c-family:
2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR c++/77434
* c.opt (Wcond-in-bool-context): New warning.
* c-common.c (c_common_truthvalue_conversion): Warn on integer
constants in boolean context.
cp:
2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR c++/77434
* cvt.c (cp_convert_and_check): Suppress Wint-in-bool-context here.
testsuite:
2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR c++/77434
* c-c++-common/Wint-in-bool-context.c: New test.
From-SVN: r240251
Bernd Edlinger [Mon, 19 Sep 2016 21:57:46 +0000 (21:57 +0000)]
re PR other/77421 (Bugs found in GCC with the help of PVS-Studio)
2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR middle-end/77421
* dwarf2out.c (output_loc_operands): Fix an assertion.
From-SVN: r240250
Joseph Myers [Mon, 19 Sep 2016 21:53:30 +0000 (22:53 +0100)]
Define TS 18661-1 CR_DECIMAL_DIG in <float.h>.
TS 18661-1 defines a macro CR_DECIMAL_DIG in <float.h>, for the number
of decimal digits for which conversions between decimal character
strings and (IEEE) binary formats, in both directions, are correctly
rounded. This patch implements support for this macro in GCC's
<float.h>.
The definition __UINTMAX_MAX__ is the right one for GCC's conversions
of floating constants, since I made those use MPFR to make them
correctly rounding. The macro also covers standard library functions
such as strtod and printf. The definition is also correct for current
glibc. If any targets' libcs support correct rounding in a way that
conforms to TS 18661-1 with a smaller value of CR_DECIMAL_DIG, making
<float.h> reflect that could not be done in isolation without changes
to the interpretation of floating constants as well, since a smaller
CR_DECIMAL_DIG requires double rounding of floating constants (first
to CR_DECIMAL_DIG decimal digits, then to the desired binary format).
Boostrapped with no regressions on x86_64-pc-linux-gnu.
gcc:
* ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
(CR_DECIMAL_DIG): New macro.
gcc/testsuite:
* gcc.dg/cr-decimal-dig-1.c: New test.
From-SVN: r240249
Joseph Myers [Mon, 19 Sep 2016 21:51:56 +0000 (22:51 +0100)]
Make max_align_t respect _Float128.
The _FloatN, _FloatNx, _DecimalN and _DecimalNx types are specified in
such a way that they are basic types, meaning that max_align_t must be
at least as aligned as those types.
On 32-bit x86, max_align_t is currently 8-byte aligned, but
_Decimal128 and _Float128 are 16-byte aligned, so the alignment of
max_align_t needs to increase to meet the standard requirements for
these types.
This patch implements such an increase. Because max_align_t needs to
be usable for C++ as well as for C, <stddef.h> can't actually refer to
_Float128, but needs to use __float128 (or some other notation for the
type) instead. And since __float128 is architecture-specific, there
isn't a preprocessor conditional that means "__float128 is available"
(whereas one could test __FLT128_MANT_DIG__ to see if _Float128 is
available; __SIZEOF_FLOAT128__ is available on x86 only). But I
believe the only case that actually has an alignment problem here is
32-bit x86, and <stddef.h> already has lots of conditional specific to
particular architectures or OSes, so this patch uses a conditional on
__i386__; that also is the minimal change that ensures neither size
nor alignment of max_align_t is changed in any case other than where
it is necessary. If any other architectures turn out to have such an
issue, it will show up as failures of one of the testcases added by
this patch.
Such an increase is of course an ABI change, but a reasonably safe
one, in that max_align_t doesn't tend to appear in library interfaces
(rather, it's something to use when writing allocators and similar
code; most matches found on codesearch.debian.net look like copies of
the gnulib stddef.h module rather than anything actually using
max_align_t at all).
max_align_t_align has a corresponding change (adding _Float128 to the
types considered).
(I think glibc malloc alignment should also increase to 16-byte on
32-bit x86 so it works for allocating objects of these types, which is
now straightforward given the fix made for 32-bit powerpc.)
Bootstrapped with no regressions on x86_64-pc-linux-gnu, and
spot-tested with -m32 that the new float128-align.c test now compiles
where previously it didn't.
gcc:
* ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
element.
gcc/c-family:
* c-common.c (max_align_t_align): Also consider alignment of
float128_type_node.
gcc/testsuite:
* gcc.dg/float128-align.c, gcc.dg/float128x-align.c,
gcc.dg/float16-align.c, gcc.dg/float32-align.c,
gcc.dg/float32x-align.c, gcc.dg/float64-align.c,
gcc.dg/float64x-align.c, gcc.dg/floatn-align.h: New tests.
From-SVN: r240248
Vladimir Makarov [Mon, 19 Sep 2016 21:38:27 +0000 (21:38 +0000)]
re PR rtl-optimization/77416 (LRA rematerializing use of CA reg across function call)
2016-09-19 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/77416
* lra-remat.c (operand_to_remat): Process hard coded insn
registers.
2016-09-19 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/77416
* gcc.target/powerpc/pr77416.c: New.
From-SVN: r240247
Patrick Palka [Mon, 19 Sep 2016 18:12:36 +0000 (18:12 +0000)]
Fix PR c++/77639 (ICE during error recovery)
gcc/cp/ChangeLog:
PR c++/77639
* parser.c (cp_parser_class_head): When
processing_template_parmlist, don't assume that the
class-head may start an explicit specialization.
gcc/testsuite/ChangeLog:
PR c++/77639
* g++.dg/template/error-recovery4.C: New test.
From-SVN: r240245
Jonathan Wakely [Mon, 19 Sep 2016 17:09:04 +0000 (18:09 +0100)]
libstdc++/77645 fix deque and vector xmethods for Python 3
PR libstdc++/77645
* python/libstdcxx/v6/xmethods.py (DequeWorkerBase.__init__)
(DequeWorkerBase.index, VectorWorkerBase.get): Cast results of
division to int to work with Python 3.
From-SVN: r240241
Bin Cheng [Mon, 19 Sep 2016 16:35:32 +0000 (16:35 +0000)]
pr57558-1.c: Use unsigned int instead of unsigned long.
gcc/testsuite
* gcc.dg/vect/pr57558-1.c: Use unsigned int instead of unsigned long.
From-SVN: r240239
Kyrylo Tkachov [Mon, 19 Sep 2016 16:15:57 +0000 (16:15 +0000)]
[simplify-rtx] (GTU (PLUS a C) (C - 1)) --> (LTU a -C)
* simplify-rtx.c (simplify_relational_operation_1): Add transformation
(GTU (PLUS a C) (C - 1)) --> (LTU a -C).
* gcc.target/aarch64/gtu_to_ltu_cmp_1.c: New test.
* gcc.target/aarch64/gtu_to_ltu_cmp_2.c: New test.
From-SVN: r240238
Jonathan Wakely [Mon, 19 Sep 2016 15:59:04 +0000 (16:59 +0100)]
Make libstdc++ tests FAIL on Python errors
* testsuite/lib/gdb-test.exp (gdb-test): Fail if Python error occurs.
From-SVN: r240237
Segher Boessenkool [Mon, 19 Sep 2016 15:54:12 +0000 (17:54 +0200)]
Fix lra_p text
* target.def (lra_p): Wordsmithing.
* doc/tm.texi: Regenerate.
From-SVN: r240236
Jonathan Wakely [Mon, 19 Sep 2016 15:49:27 +0000 (16:49 +0100)]
Improve pretty printer for std::variant
* python/libstdcxx/v6/printers.py (SingleObjContainerPrinter): Allow
display_hint to be set by subclasses.
(StdVariantPrinter): Use array for display_hint. Adjust output to be
more similar to std::any and std::optional output.
(register_type_printers): Add type printers for basic_string_view
typedefs and experimental::any. Adjust type printers for
fundamentals_v1 templates to match fundamentals_v2 and later.
* testsuite/libstdc++-prettyprinters/cxx17.cc: New.
From-SVN: r240234
Jonathan Wakely [Mon, 19 Sep 2016 15:49:19 +0000 (16:49 +0100)]
libstdc++/77645 Fix xmethods for std::list
PR libstdc++/77645
* python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): Rename
argument.
(ListWorkerBase.get_value_from_node): Define new method.
(ListFrontWorker.__call__, ListBackWorker.__call__): Use it.
From-SVN: r240233
Jakub Jelinek [Mon, 19 Sep 2016 14:36:38 +0000 (16:36 +0200)]
re PR ipa/77587 (C compiler produces incorrect stack alignment with __attribute__((weak)))
PR target/77587
* cgraph.c (cgraph_node::rtl_info): Pass &avail to
ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
Call ultimate_alias_target just once, not up to 4 times.
* gcc.dg/pr77587.c: New test.
* gcc.dg/pr77587a.c: New file.
Co-Authored-By: Jan Hubicka <jh@suse.cz>
From-SVN: r240232
Andre Vehreschild [Mon, 19 Sep 2016 13:45:40 +0000 (15:45 +0200)]
libcaf.h: Add caf_reference_type.
libgfortran/ChangeLog:
2016-09-19 Andre Vehreschild <vehre@gcc.gnu.org>
* caf/libcaf.h: Add caf_reference_type.
* caf/mpi.c: Adapted signature of caf_register().
* caf/single.c (struct caf_single_token): Added to keep the pointer
to the memory registered and array descriptor.
(caf_internal_error): Added convenience interface.
(_gfortran_caf_register): Adapted to work with caf_single_token and
return memory in the array descriptor.
(_gfortran_caf_deregister): Same.
(assign_char1_from_char4): Fixed style.
(convert_type): Fixed incorrect conversion.
(_gfortran_caf_get): Adapted to work with caf_single_token.
(_gfortran_caf_send): Same.
(_gfortran_caf_sendget): Same.
(copy_data): Added to stop repeating it in all _by_ref functions.
(get_for_ref): Recursive getting of coarray data using a chain of
references.
(_gfortran_caf_get_by_ref): Driver for computing the memory needed for
the get and checking properties of the operation.
(send_by_ref): Same as get_for_ref but for sending data.
(_gfortran_caf_send_by_ref): Same like caf_get_by_ref but for sending.
(_gfortran_caf_sendget_by_ref): Uses get_by_ref and send_by_ref to
implement sendget for reference chains.
(_gfortran_caf_atomic_define): Adapted to work with caf_single_token.
(_gfortran_caf_atomic_ref): Likewise.
(_gfortran_caf_atomic_cas): Likewise.
(_gfortran_caf_atomic_op): Likewise.
(_gfortran_caf_event_post): Likewise.
(_gfortran_caf_event_wait): Likewise.
(_gfortran_caf_event_query): Likewise.
(_gfortran_caf_lock): Likewise.
(_gfortran_caf_unlock): Likewise.
gcc/testsuite/ChangeLog:
2016-09-19 Andre Vehreschild <vehre@gcc.gnu.org>
* gfortran.dg/coarray/alloc_comp_4.f90: New test.
* gfortran.dg/coarray_38.f90:
* gfortran.dg/coarray_alloc_comp_1.f08: New test.
* gfortran.dg/coarray_alloc_comp_2.f08: New test.
* gfortran.dg/coarray_allocate_7.f08: New test.
* gfortran.dg/coarray_allocate_8.f08: New test.
* gfortran.dg/coarray_allocate_9.f08: New test.
* gfortran.dg/coarray_lib_alloc_1.f90: Adapted scan-tree-dumps to expect
new caf_register.
* gfortran.dg/coarray_lib_alloc_2.f90: Same.
* gfortran.dg/coarray_lib_alloc_3.f90: Same.
* gfortran.dg/coarray_lib_comm_1.f90: Adapted scan-tree-dumps to expect
get_by_refs.
* gfortran.dg/coarray_lib_token_3.f90: Same as for coarray_lib_alloc2.
* gfortran.dg/coarray_lock_7.f90: Same.
* gfortran.dg/coarray_poly_5.f90: Same.
* gfortran.dg/coarray_poly_6.f90: Same.
* gfortran.dg/coarray_poly_7.f90: Same.
* gfortran.dg/coarray_poly_8.f90: Same.
* gfortran.dg/coindexed_1.f90: Changed errors expected.
gcc/fortran/ChangeLog:
2016-09-19 Andre Vehreschild <vehre@gcc.gnu.org>
* expr.c (gfc_check_assign): Added flag to control whether datatype
conversion is allowed.
* gfortran.h: Added caf-token-tree to gfc_component. Changed
prototypes mostly to add whether datatype conversion is allowed.
* gfortran.texi: Added documentation for the caf_reference_t and the
caf_*_by_ref function.
* primary.c (caf_variable_attr): Similar to gfc_variable_attr but
focused on the needs of coarrays.
(gfc_caf_attr): Same.
* resolve.c (resolve_ordinary_assign): Set the conversion allowed
flag when not in a coarray.
* trans-array.c (gfc_array_init_size): Moved setting of array
descriptor's datatype before the alloc, because caf_register needs it.
(gfc_array_allocate): Changed notion of whether an array is a coarray.
(gfc_array_deallocate): Same.
(gfc_alloc_allocatable_for_assignment): Added setting of coarray's
array descriptor datatype before the register. And using deregister/
register to mimmick a realloc for coarrays.
* trans-decl.c (gfc_build_builtin_function_decls): Corrected signatures
of old caf-functions and added signature definitions of the _by_ref
ones.
(generate_coarray_sym_init): Adapted to new caf_register signature.
* trans-expr.c (gfc_conv_scalar_to_descriptor): Make sure a constant
is translated to an lvalue expression before use in an array
descriptor.
(gfc_get_ultimate_alloc_ptr_comps_caf_token): New function. Get the
last allocatable component's coarray token.
(gfc_get_tree_for_caf_expr): For top-level object get the coarray
token and check for unsupported features.
(gfc_get_caf_token_offset): Getting the offset might procude new
statements, which now are stored in the pre and post of the current se.
(gfc_caf_get_image_index): For this image return a call to
caf_this_image.
(expr_may_alias_variables): Check that the result is set for testing
its properties.
(alloc_scalar_allocatable_for_assignment): Added auto allocation of
coarray components.
(gfc_trans_assignment_1): Rewrite an assign to a coarray object to
be a sendget.
* trans-intrinsic.c (conv_caf_vector_subscript_elem): Corrected
wrong comment.
(compute_component_offset): Compute the correct offset a structure
member.
(conv_expr_ref_to_caf_ref): Convert to a chain of refs into
caf_references.
(gfc_conv_intrinsic_caf_get): Call caf_get_by_ref instead of caf_get.
(conv_caf_send): Call caf_*_by_ref for coarrays that need
reallocation.
(gfc_conv_intrinsic_function): Adapted to new signuature of the caf
drivers.
(conv_intrinsic_atomic_op): Add pre and post statements correctly.
(conv_intrinsic_atomic_ref): Same.
(conv_intrinsic_atomic_cas): Same.
(conv_intrinsic_event_query): Same.
* trans-stmt.c (gfc_trans_lock_unlock): Same.
(gfc_trans_event_post_wait): Same.
(gfc_trans_allocate): Support allocation of allocatable coarrays.
(gfc_trans_deallocate): And there deallocation.
* trans-types.c (gfc_typenode_for_spec): Added flag to control whether
a component is part of coarray. When so, then add space to store a
coarray token.
(gfc_build_array_type): Same.
(gfc_get_array_descriptor_base): Same.
(gfc_get_array_type_bounds): Same.
(gfc_sym_type): Same.
(gfc_get_derived_type): Same.
(gfc_get_caf_reference_type): Declare the caf_reference_type.
* trans-types.h: Prototype changes only.
* trans.c (gfc_allocate_using_lib): Use the updated caf_register
signature.
(gfc_allocate_allocatable): Same.
(gfc_deallocate_with_status): Same.
* trans.h: Defined the runtime types for caf_reference_t and the enums.
From-SVN: r240231
Fritz Reese [Mon, 19 Sep 2016 11:32:09 +0000 (11:32 +0000)]
re PR fortran/77584 (Unclassifiable statement error with procedure pointer using template named "structure_")
2016-09-19 Fritz Reese <fritzoreese@gmail.com>
PR fortran/77584
* gcc/fortran/decl.c (match_record_decl, gfc_match_decl_type_spec):
Fixes to handling of structure/record from declaration-type-spec.
* gcc/testsuite/gfortran.dg/dec_structure_15.f90: New testcase.
From-SVN: r240230
Andrew Stubbs [Mon, 19 Sep 2016 10:02:56 +0000 (10:02 +0000)]
Fix zero-length parameter bug in pex_run.
2016-09-19 Andrew Stubbs <ams@codesourcery.com>
libiberty/
* pex-win32.c (argv_to_cmdline): Quote zero-length parameters.
libiberty/testsuite/
* test-pexecute.c (main): Insert check for zero-length parameters.
From-SVN: r240229
Richard Biener [Mon, 19 Sep 2016 07:20:16 +0000 (07:20 +0000)]
dwarf2out.c (early_dwarf_finished): New global.
2016-09-16 Richard Biener <rguenther@suse.de>
* dwarf2out.c (early_dwarf_finished): New global.
(set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished
is false.
(dwarf2out_early_finish): Set early_dwarf_finished at the end,
if called from LTO exit early.
(dwarf2out_late_global_decl): When being during the early
debug phase do not add locations but only const value attributes.
Adjust the way we generate early DIEs for LTO.
lto/
* lto.c (lto_main): Invoke early_finish debug hook.
From-SVN: r240228
Richard Biener [Mon, 19 Sep 2016 06:55:17 +0000 (06:55 +0000)]
re PR tree-optimization/77605 (wrong code at -O3 on x86_64-linux-gnu)
2016-09-19 Richard Biener <rguenther@suse.de>
PR middle-end/77605
* tree-data-ref.c (analyze_subscript_affine_affine): Use the
proper niter to bound the loops.
* gcc.dg/torture/pr77605.c: New testcase.
From-SVN: r240227
Richard Biener [Mon, 19 Sep 2016 06:54:10 +0000 (06:54 +0000)]
re PR tree-optimization/77514 (ICE in VN_INFO_GET, at tree-ssa-sccvn.c:406 w/ -O2 (and above))
2016-09-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/77514
* tree-ssa-pre.c (create_expression_by_pieces): Optimize
search for folded stmt.
From-SVN: r240226
Louis Krupp [Mon, 19 Sep 2016 06:25:25 +0000 (06:25 +0000)]
pr68078.f90: XFAIL run on Darwin
2016-09-18 Louis Krupp <louis.krupp@zoho.com>
* gfortran.dg/pr68078.f90: XFAIL run on Darwin
From-SVN: r240225
GCC Administrator [Mon, 19 Sep 2016 00:16:16 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r240224
Jan Hubicka [Sun, 18 Sep 2016 18:44:53 +0000 (20:44 +0200)]
passes.def (pass_early_thread_jumps): Schedule after forwprop.
* passes.def (pass_early_thread_jumps): Schedule after forwprop.
* tree-pass.h (make_pass_early_thread_jumps): Declare.
* tree-ssa-threadbackward.c (fsm_find_thread_path,
fsm_find_thread_path, profitable_jump_thread_path,
fsm_find_control_statement_thread_paths,
find_jump_threads_backwards): Add speed_p parameter.
(pass_data_early_thread_jumps): New pass.
(make_pass_early_thread_jumps): New function.
* g++.dg/predict-loop-exit-1.C: Disable early jump threading.
* g++.dg/predict-loop-exit-2.C: Disable early jump threading.
* g++.dg/predict-loop-exit-3.C: Disable early jump threading.
* gcc.dg/tree-ssa/pr69196-1.c: Disable early jump threading.
* gcc.dg/tree-ssa/vrp01.c: Disable early jump threading.
* gcc.dg/tree-ssa/ssa-dom-thread-2b.c: Disable early jump threading.
* gcc.dg/tree-ssa/pr68198.c: Scan ethread dump.
* gcc.dg/tree-ssa/ssa-thread-13.c: Scan ethread dump.
* gcc.dg/tree-ssa/vrp56.c: Scan ethread dump.
* gcc.dg/tree-ssa/vrp92.c: Scan ethread dump.
* gcc.dg/uninit-15.c: Swap xfailed and non-xfailed alternative.
From-SVN: r240221
Kirill Yukhin [Sun, 18 Sep 2016 12:56:19 +0000 (12:56 +0000)]
pr68633.c: Fix expected result.
gcc/testsuite/
* gcc.target/i386/pr68633.c: Fix expected result.
From-SVN: r240220
Louis Krupp [Sun, 18 Sep 2016 05:52:23 +0000 (05:52 +0000)]
re PR fortran/68078 (segfault with allocate and stat for derived types with default initialization)
2016-09-17 Louis Krupp <louis.krupp@gmail.com>
PR fortran/68078
* gfortran.dg/pr68078.f90: New test.
* gfortran.dg/set_vm_limit.c: New, called by pr68078.
2016_09_17 Louis Krupp <louis.krupp@zoho.com>
PR fortran/68078
* resolve.c (resolve_allocate_expr): Check that derived type
pointer, object or array has been successfully allocated before
initializing.
From-SVN: r240219
GCC Administrator [Sun, 18 Sep 2016 00:16:20 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r240218
Jonathan Wakely [Sat, 17 Sep 2016 15:20:23 +0000 (16:20 +0100)]
Define pretty printers for C++17 library components
* python/libstdcxx/v6/printers.py (StdVariantPrinter): Define.
(StdExpAnyPrinter, StdExpOptionalPrinter, StdExpStringViewPrinter):
Register for C++17 components in namespace std. Strip inline namespace
from typename.
From-SVN: r240215
Andreas Schwab [Sat, 17 Sep 2016 09:39:37 +0000 (09:39 +0000)]
ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast.
* config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast.
* config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
From-SVN: r240214
GCC Administrator [Sat, 17 Sep 2016 00:16:13 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r240213
Jonathan Wakely [Fri, 16 Sep 2016 22:11:50 +0000 (23:11 +0100)]
Remove bogus entry in ChangeLog added by git-svn
From-SVN: r240206
Jonathan Wakely [Fri, 16 Sep 2016 22:11:46 +0000 (23:11 +0100)]
Fix documentation for overflow-checking builtins
* doc/extend.texi (Integer Overflow Builtins): Fix type of out
parameters for functions taking long long arguments.
From-SVN: r240205
Jonathan Wakely [Fri, 16 Sep 2016 22:09:15 +0000 (23:09 +0100)]
Fix typo in Libstdc++ Profile Mode docs
* doc/xml/manual/profile_mode.xml: Fix typo.
* doc/html/manual/profile_mode_devel.html: Regenerate.
From-SVN: r240204
Eric Botcazou [Fri, 16 Sep 2016 21:39:05 +0000 (21:39 +0000)]
recog.c (rest_of_handle_split_after_reload): Delete.
* recog.c (rest_of_handle_split_after_reload): Delete.
(pass_split_after_reload::gate): New method.
(pass_split_after_reload::execute): Call split_all_insns directly.
From-SVN: r240203
Jonathan Wakely [Fri, 16 Sep 2016 21:36:30 +0000 (22:36 +0100)]
Fix documentation for overflow-checking builtins
* doc/extend.texi (Integer Overflow Builtins): Fix type of out
parameters for functions taking long long arguments.
From-SVN: r240200
Bill Schmidt [Fri, 16 Sep 2016 21:28:52 +0000 (21:28 +0000)]
re PR target/77613 (Powerpc64le: redundant swaps in autovectorised loop)
[gcc]
2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/77613
* config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
splat with truncate.
[gcc/testsuite]
2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/77613
* gcc.target/powerpc/swaps-p8-25.c: New.
From-SVN: r240199
Jakub Jelinek [Fri, 16 Sep 2016 20:25:17 +0000 (22:25 +0200)]
re PR c++/77482 (Segfault when compiling ill-formed constexpr code)
PR c++/77482
* error.c (dump_simple_decl): Only check DECL_DECLARED_CONCEPT_P
if DECL_LANG_SPECIFIC is non-NULL. Fix up formatting.
* g++.dg/cpp0x/constexpr-77482.C: New test.
From-SVN: r240198
Jakub Jelinek [Fri, 16 Sep 2016 20:23:15 +0000 (22:23 +0200)]
re PR c++/77379 (incorrect mangling for non-virtual adjustor thunk (missing abi tag))
PR c++/77379
* g++.dg/abi/abi-tag23.C: Adjust scan-assembler regex for differing
thunk offsets.
* g++.dg/abi/abi-tag23a.C: Likewise.
From-SVN: r240197
Jakub Jelinek [Fri, 16 Sep 2016 20:22:35 +0000 (22:22 +0200)]
re PR c++/77338 (ICE on invalid C++11 code on x86_64-linux-gnu: Segmentation fault)
PR c++/77338
* constexpr.c (cxx_eval_constant_expression) <case PARM_DECL>: Only
call is_really_empty_class on complete types.
* g++.dg/cpp0x/decltype-77338.C: New test.
From-SVN: r240196
Jakub Jelinek [Fri, 16 Sep 2016 20:21:29 +0000 (22:21 +0200)]
re PR c++/77375 (constant object with mutable subobject allocated in read-only memory)
PR c++/77375
* class.c (check_bases): Set CLASSTYPE_HAS_MUTABLE if any TYPE_HAS_MUTABLE_P
for any bases.
* g++.dg/cpp0x/mutable1.C: New test.
From-SVN: r240195
Jason Merrill [Fri, 16 Sep 2016 19:20:44 +0000 (15:20 -0400)]
Add inline functions for various bitwise operations.
* hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
New.
* hwint.c (exact_log2): Use pow2p_hwi.
(ctz_hwi, ffs_hwi): Use least_bit_hwi.
* alias.c (memrefs_conflict_p): Use pow2_or_zerop.
* builtins.c (get_object_alignment_2, get_object_alignment)
(get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
least_bit_hwi.
* calls.c (compute_argument_addresses, store_one_arg): Use
least_bit_hwi.
* cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
* combine.c (force_to_mode): Use least_bit_hwi.
* emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
Use least_bit_hwi.
* expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
(init_expmed_one_conv): Use pow2p_hwi.
* fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
(fold_binary_loc): Use pow2p_hwi.
* function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
* gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
* gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
* hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
Use least_bit_hwi.
* ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
* ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
* omp-low.c (oacc_loop_fixed_partitions)
(oacc_loop_auto_partitions): Use least_bit_hwi.
* rtlanal.c (nonzero_bits1): Use ctz_or_zero.
* stor-layout.c (place_field): Use least_bit_hwi.
* tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
* tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
* tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
* tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
* tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
* tree-vect-data-refs.c (vect_analyze_group_access_1)
(vect_grouped_store_supported, vect_grouped_load_supported)
(vect_permute_load_chain, vect_shift_permute_load_chain)
(vect_transform_grouped_load): Use pow2p_hwi.
* tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
* tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
* tree-vect-stmts.c (vectorizable_mask_load_store): Use
least_bit_hwi.
* tsan.c (instrument_expr): Use least_bit_hwi.
* var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
From-SVN: r240194
Jakub Jelinek [Fri, 16 Sep 2016 19:17:47 +0000 (21:17 +0200)]
re PR libgcc/71744 (Concurrently throwing exceptions is not scalable)
PR libgcc/71744
* unwind-dw2-fde.c (ATOMIC_FDE_FAST_PATH): Define if __register_frame*
is not the primary registry and atomics are available.
(any_objects_registered): New variable.
(__register_frame_info_bases, __register_frame_info_table_bases):
Atomically store 1 to any_objects_registered after registering first
unwind info.
(_Unwind_Find_FDE): Return early if any_objects_registered is 0.
From-SVN: r240193
Jonathan Wakely [Fri, 16 Sep 2016 18:09:14 +0000 (19:09 +0100)]
Replace modulus with mask operation in over-aligned new
2016-09-16 Jonathan Wakely <jwakely@redhat.com>
Marc Glisse <marc.glisse@inria.fr>
* libsupc++/new_opa.cc [_GLIBCXX_HAVE_ALIGNED_ALLOC]
(operator new(size_t, align_val_t)): Replace modulus operator with
mask.
Co-Authored-By: Marc Glisse <marc.glisse@inria.fr>
From-SVN: r240192
Steven G. Kargl [Fri, 16 Sep 2016 17:55:38 +0000 (17:55 +0000)]
re PR fortran/77612 (ICE on invalid character len in contained procedure)
2016-09-16 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/77612
* decl.c (char_len_param_value): Check parent namespace for
seen_implicit_none.
2016-09-16 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/77612
* gfortran.dg/pr77612.f90: New test.
From-SVN: r240191
Jonathan Wakely [Fri, 16 Sep 2016 12:11:19 +0000 (13:11 +0100)]
Adjust arguments to aligned_alloc or posix_memalign
* libsupc++/new_opa.cc [_GLIBCXX_HAVE_POSIX_MEMALIGN] (aligned_alloc):
Increase alignment if less than sizeof(void*).
[_GLIBCXX_HAVE_ALIGNED_ALLOC] (operator new(size_t, align_val_t)):
Increase size if not a multiple of alignment.
From-SVN: r240187
Senthil Kumar Selvaraj [Fri, 16 Sep 2016 11:42:59 +0000 (11:42 +0000)]
Fix testsuite failure for avr target
The test has integer literals that only fit on a target with int size 32+.
gcc/testsuite/
2016-09-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
* gcc.dg/torture/pr70421.c: Require int32plus.
From-SVN: r240186
Marek Polacek [Fri, 16 Sep 2016 10:18:06 +0000 (10:18 +0000)]
* c-typeck.c (lvalue_p): Use true and false instead of 1 and 0.
From-SVN: r240185
Andreas Schwab [Fri, 16 Sep 2016 08:38:14 +0000 (08:38 +0000)]
ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter OFFSET, not offset.
* config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
OFFSET, not offset.
* config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
From-SVN: r240176
Jakub Jelinek [Fri, 16 Sep 2016 08:13:51 +0000 (10:13 +0200)]
re PR middle-end/77475 (unnecessary or misleading context in reporting command line problems)
PR middle-end/77475
* gcc.target/i386/pr65990.c: Adjust dg-error regexp.
From-SVN: r240175
Jakub Jelinek [Fri, 16 Sep 2016 07:10:08 +0000 (09:10 +0200)]
re PR target/77526 (ICE: in verify_dominators, at dominance.c:1039 with -mstringop-strategy=byte_loop)
PR target/77526
* combine.c (rest_of_handle_combine): If any edges have been purged,
free dominators if available.
* gcc.target/i386/pr77526.c: New test.
From-SVN: r240174
Jakub Jelinek [Fri, 16 Sep 2016 07:09:27 +0000 (09:09 +0200)]
re PR middle-end/77594 (double computation for __builtin_sub_overflow (0, ...))
PR middle-end/77594
* internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
through into expand_addsub_overflow after expand_neg_overflow.
* gcc.target/i386/pr77594.c: New test.
Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>
From-SVN: r240173
GCC Administrator [Fri, 16 Sep 2016 00:16:16 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r240172
David Malcolm [Thu, 15 Sep 2016 23:57:01 +0000 (23:57 +0000)]
fix-it hints can't contain newlines
I hope to implement newline support within fix-it hints at some point,
but currently it's not supported, and leads to misleading diagnostic
output, so for now, fail gracefully.
gcc/ChangeLog:
* diagnostic-show-locus.c
(selftest::test_fixit_insert_containing_newline): New function.
(selftest::test_fixit_replace_containing_newline): New function.
(selftest::diagnostic_show_locus_c_tests): Call the above.
libcpp/ChangeLog:
* include/line-map.h (class rich_location): Note that newlines
aren't supported in fix-it text.
* line-map.c (rich_location::add_fixit_insert_before): Reject
attempts to add fix-its containing newlines.
(rich_location::add_fixit_replace): Likewise.
From-SVN: r240169
Louis Krupp [Thu, 15 Sep 2016 23:54:40 +0000 (23:54 +0000)]
re PR fortran/69963 (ICE out of memory on displaced implicit character)
2016-09-15 Louis Krupp <louis.krupp@zoho.com>
PR fortran/69963
* parse.c (reject_statement): Clear charlen pointers in implicit
character typespecs before those charlen structures are freed.
2016-09-15 Louis Krupp <louis.krupp@zoho.com>
PR fortran/69963
* gfortran.dg/misplaced_implicit_character.f90: New test.
From-SVN: r240168
Jason Merrill [Thu, 15 Sep 2016 19:48:18 +0000 (15:48 -0400)]
c-common.c (check_cxx_fundamental_alignment_constraints): Check DECL_EXTERNAL.
* c-common.c (check_cxx_fundamental_alignment_constraints): Check
DECL_EXTERNAL.
From-SVN: r240167
Bin Cheng [Thu, 15 Sep 2016 16:31:35 +0000 (16:31 +0000)]
re PR tree-optimization/77503 (ICE in vect_transform_stmt compiling postgresql)
PR tree-optimization/77503
* tree-vect-loop.c (vectorizable_reduction): Record reduction
code for CONST_COND_REDUCTION at analysis stage and use it at
transform stage.
* tree-vectorizer.h (struct _stmt_vec_info): New field.
(STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro.
* tree-vect-stmts.c (new_stmt_vec_info): Initialize above new
field.
gcc/testsuite
* gcc.dg/vect/pr77503.c: New test.
From-SVN: r240166
Richard Biener [Thu, 15 Sep 2016 12:35:13 +0000 (12:35 +0000)]
re PR tree-optimization/77544 (segfault at -O0 - infinite loop in simplification)
2016-09-15 Richard Biener <rguenther@suse.de>
PR middle-end/77544
* fold-const.c (split_tree): Do not split constant ~X.
* c-c++-common/torture/pr77544.c: New testcase.
From-SVN: r240164
Jakub Jelinek [Thu, 15 Sep 2016 12:27:35 +0000 (14:27 +0200)]
re PR rtl-optimization/77425 (Pointer test follows dereference in sched-int.h)
PR rtl-optimization/77425
* sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
is NULL.
From-SVN: r240163
Jakub Jelinek [Thu, 15 Sep 2016 12:26:39 +0000 (14:26 +0200)]
re PR middle-end/77475 (unnecessary or misleading context in reporting command line problems)
PR middle-end/77475
* config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify,
use %qs instead of %s where desirable, use argument instead of arg in
the diagnostic wording, add list of supported strategies and
spellcheck hint.
(ix86_option_override_internal): Emit target("m...") instead of
option("m...") in the diagnostic. Use %qs instead of %s in invalid
-march/-mtune option diagnostic. Add list of supported arches/tunings
and spellcheck hint. Remove prefix, suffix and sw variables, use
main_args_p ? "..." : "..." in diagnostics to make translation
possible.
* gcc.target/i386/pr65990.c: Adjust expected diagnostics.
* gcc.dg/march-generic.c: Likewise.
* gcc.target/i386/spellcheck-options-1.c: New test.
* gcc.target/i386/spellcheck-options-2.c: New test.
* gcc.target/i386/spellcheck-options-3.c: New test.
* gcc.target/i386/spellcheck-options-4.c: New test.
From-SVN: r240162
Jonathan Wakely [Thu, 15 Sep 2016 10:30:58 +0000 (11:30 +0100)]
Editorial fixes to libstdc++ debug mode docs
* doc/xml/manual/debug_mode.xml: Minor editorial fixes.
* doc/html/*: Regenerate.
From-SVN: r240161
Jonathan Wakely [Thu, 15 Sep 2016 10:30:52 +0000 (11:30 +0100)]
Fix testsuite to not increment bool
* testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
-Wno-deprecated.
* testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
From-SVN: r240160
Jonathan Wakely [Thu, 15 Sep 2016 10:26:03 +0000 (11:26 +0100)]
Reformat libstdc++-v3/ChangeLog to fit in 80 columns
From-SVN: r240159
Richard Biener [Thu, 15 Sep 2016 10:22:32 +0000 (10:22 +0000)]
dwarf2asm.h (dw2_asm_output_offset): Add overload with extra offset argument.
2016-09-15 Richard Biener <rguenther@suse.de>
* dwarf2asm.h (dw2_asm_output_offset): Add overload with
extra offset argument.
* dwarf2asm.c (dw2_asm_output_offset): Implement that.
* doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation
to reflect new offset parameter.
* doc/tm.texi: Regenerate.
* config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
* config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add
offset argument.
(darwin_asm_output_dwarf_offset): Likewise.
* config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
argument.
(darwin_asm_output_dwarf_offset): Pass offset argument through.
* config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
* config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
From-SVN: r240158
Jonathan Wakely [Thu, 15 Sep 2016 10:18:38 +0000 (11:18 +0100)]
Fix testsuite to not increment bool
* testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
-Wno-deprecated.
* testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
From-SVN: r240157
Chung-Lin Tang [Thu, 15 Sep 2016 09:46:36 +0000 (09:46 +0000)]
re PR fortran/72743 (ICE in get_constraint_for_ssa_var, at tree-ssa-structalias.c:2958)
2016-09-15 Chung-Lin Tang <cltang@codesourcery.com>
PR fortran/72743
* ipa-icf.c (set_alias_uids): New function.
(sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of
all the merged variable's referring aliases.
testsuite/
* gfortran.dg/goacc/pr72743.f90: New test.
From-SVN: r240155
Richard Biener [Thu, 15 Sep 2016 09:24:10 +0000 (09:24 +0000)]
fold-reassoc-2.c: Fix dump scan.
2016-09-15 Richard Biener <rguenther@suse.de>
* gcc.dg/fold-reassoc-2.c: Fix dump scan.
From-SVN: r240154
Richard Biener [Thu, 15 Sep 2016 07:17:45 +0000 (07:17 +0000)]
re PR tree-optimization/77514 (ICE in VN_INFO_GET, at tree-ssa-sccvn.c:406 w/ -O2 (and above))
2016-09-15 Richard Biener <rguenther@suse.de>
PR tree-optimization/77514
* tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
only forced_stmts sequence.
* gcc.dg/torture/pr77514.c: New testcase.
From-SVN: r240153
Kugan Vivekanandarajah [Thu, 15 Sep 2016 02:03:51 +0000 (02:03 +0000)]
Iterator to visit SSA
Iterator to visit SSA
gcc/ChangeLog:
2016-09-15 Kugan Vivekanandarajah <kuganv@linaro.org>
* tree-ssanames.h (FOR_EACH_SSA_NAME): New.
* cfgexpand.c (update_alias_info_with_stack_vars): Use
FOR_EACH_SSA_NAME to iterate over SSA variables.
(pass_expand::execute): Likewise.
* omp-simd-clone.c (ipa_simd_modify_function_body): Likewise.
* tree-cfg.c (dump_function_to_file): Likewise.
* tree-into-ssa.c (pass_build_ssa::execute): Likewise.
(update_ssa): Likewise.
* tree-ssa-alias.c (dump_alias_info): Likewise.
* tree-ssa-ccp.c (ccp_finalize): Likewise.
* tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
(create_outofssa_var_map): Likewise.
(coalesce_ssa_name): Likewise.
* tree-ssa-operands.c (dump_immediate_uses): Likewise.
* tree-ssa-pre.c (compute_avail): Likewise.
* tree-ssa-sccvn.c (init_scc_vn): Likewise.
(scc_vn_restore_ssa_info): Likewise.
(free_scc_vn): Likwise.
(run_scc_vn): Likewise.
* tree-ssa-structalias.c (compute_points_to_sets): Likewise.
* tree-ssa-ter.c (new_temp_expr_table): Likewise.
* tree-ssa-copy.c (fini_copy_prop): Likewise.
* tree-ssa.c (verify_ssa): Likewise.
From-SVN: r240152
GCC Administrator [Thu, 15 Sep 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r240151
Jakub Jelinek [Wed, 14 Sep 2016 21:55:10 +0000 (23:55 +0200)]
re PR c++/77549 (ICE on invalid C++ code that references undeclared variable)
PR c++/77549
* name-lookup.c (consider_binding_level): Look through TREE_LIST
and OVERLOAD.
* g++.dg/lookup/pr77549.C: New test.
From-SVN: r240148
Ian Lance Taylor [Wed, 14 Sep 2016 20:52:51 +0000 (20:52 +0000)]
libgo: fix typo in configure.ac (PCQUANTUm -> PCQUANTUM)
Reviewed-on: https://go-review.googlesource.com/29154
From-SVN: r240146
Matthew Fortune [Wed, 14 Sep 2016 19:59:59 +0000 (19:59 +0000)]
Infer architecture from ABI for mips-mti* and mips-img* triplets.
gcc/
* config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2
and mips64r2 as default 32-bit and 64-bit architectures.
(mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6
as default 32-bit and 64-bit architectures.
From-SVN: r240145
Bernd Edlinger [Wed, 14 Sep 2016 18:04:39 +0000 (18:04 +0000)]
simplify.c (gfc_simplify_repeat): Fix a misplaced closing ')'.
2016-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
* simplify.c (gfc_simplify_repeat): Fix a misplaced closing ')'.
From-SVN: r240142
Marek Polacek [Wed, 14 Sep 2016 17:46:59 +0000 (17:46 +0000)]
typeck.c (cp_build_unary_op): Diagnose incrementing boolean expressions.
* typeck.c (cp_build_unary_op): Diagnose incrementing boolean
expressions. Tweak an error message.
* c-c++-common/gomp/atomic-12.c: Use -Wno-deprecated.
* c-c++-common/gomp/atomic-13.c: Likewise.
* c-c++-common/gomp/atomic-14.c: Likewise.
* g++.dg/cpp1y/lambda-init11.C: Remove invalid code.
* g++.dg/cpp1z/bool-increment1.C: New test.
* c-c++-common/pr60439.c: Add dg-warning.
* g++.dg/expr/bitfield4.C: Likewise.
* g++.dg/expr/bitfield5.C: Likewise.
* g++.dg/expr/bitfield6.C: Likewise.
* g++.dg/expr/bool1.C: Likewise.
* g++.dg/expr/bool3.C: Likewise.
* g++.dg/expr/lval3.C: Likewise.
* g++.dg/expr/lval4.C: Likewise.
* g++.old-deja/g++.jason/bool5.C: Likewise.
* g++.dg/expr/bitfield3.C: Adjust dg-error.
* g++.dg/other/error18.C: Likewise.
* g++.dg/gomp/atomic-14.C: Likewise.
libgomp/
* testsuite/libgomp.c++/atomic-3.C: Use -Wno-deprecated.
libstdc++-v3/
* testsuite/23_containers/vector/debug/insert6_neg.cc: Use
-Wno-deprecated.
From-SVN: r240141
Pat Haugen [Wed, 14 Sep 2016 17:04:18 +0000 (17:04 +0000)]
loop-unroll.c (unroll_loop_runtime_iterations): Set probability of succ edge.
* loop-unroll.c (unroll_loop_runtime_iterations): Set probability of succ edge.
From-SVN: r240140
Jason Merrill [Wed, 14 Sep 2016 16:18:10 +0000 (12:18 -0400)]
c-common.c (check_cxx_fundamental_alignment_constraints): Don't limit FIELD_DECL, either.
* c-common.c (check_cxx_fundamental_alignment_constraints): Don't
limit FIELD_DECL, either.
From-SVN: r240139
Nathan Sidwell [Wed, 14 Sep 2016 16:13:52 +0000 (16:13 +0000)]
re PR c++/77539 (gcc-5/6: comparison of array to nullptr failure in constexpr (fixed by r235506 on trunk))
PR c++/77539
* g++.dg/cpp1y/pr77539.C: New.
From-SVN: r240138
Marek Polacek [Wed, 14 Sep 2016 15:05:00 +0000 (15:05 +0000)]
c-common.c (c_common_truthvalue_conversion): Use false instead of 0.
* c-common.c (c_common_truthvalue_conversion): Use false instead of 0.
* c-common.h (build_unary_op): Change nonconvert parameter type to bool.
* c-omp.c (c_finish_omp_atomic): Use false instead of 0.
* c-array-notation.c (create_cmp_incr): Use false instead of 0.
(fix_array_notation_expr): Likewise.
* c-decl.c (finish_decl): Likewise.
* c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
* c-typeck.c (array_to_pointer_conversion): Use true instead of 1.
(function_to_pointer_conversion): Use false instead of 0.
(convert_lvalue_to_rvalue): Likewise.
(parser_build_unary_op): Likewise.
(build_atomic_assign): Likewise.
(build_unary_op): Change nonconvert parameter type to bool, use
true/false instead of 1/0.
(build_binary_op): Use true instead of 1.
* cp-tree.h (cp_build_unary_op): Change nonconvert parameter type to
bool.
* decl2.c (one_static_initialization_or_destruction): Use true instead
of 1.
* init.c (build_vec_init): Use false instead of 0.
* pt.c (tsubst_copy_and_build): Likewise.
* semantics.c (simplify_loop_decl_cond): Likewise.
* typeck.c (rationalize_conditional_expr): Likewise.
(cp_build_binary_op): Use true instead of 1.
(cp_build_unary_op): Change nonconvert parameter type to bool. Use true
instead of 1.
(build_unary_op): Change nonconvert parameter type to bool.
(unary_complex_lvalue): Use false instead of 0.
From-SVN: r240137
Christophe Lyon [Wed, 14 Sep 2016 13:37:23 +0000 (13:37 +0000)]
Fix dg-require before dg-run directives in testsuite.
libstdc++-v3/ChangeLog:
2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
* testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
Move dg-do directive before dg-skip.
* testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
Move dg-do directive before dg-require.
* testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
* testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
* testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
Likewise.
* testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
* testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
* testsuite/27_io/objects/char/12048-5.cc: Likewise.
* testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
* testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
gcc/testsuite/ChangeLog:
2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
* g++.dg/cpp0x/lambda/lambda-mangle.C: Move dg-do directive before
dg-require.
* g++.dg/ext/builtin_alloca.C: Likewise.
* g++.dg/template/spec35.C: Likewise.
* gcc.dg/builtins-68.c: Likewise.
* gcc.misc-tests/gcov-13.c: Likewise.
* gcc.misc-tests/gcov-14.c: Likewise.
From-SVN: r240135
Jim MacArthur [Wed, 14 Sep 2016 12:13:03 +0000 (12:13 +0000)]
dec_structure_14.f90: New testcase.
2016-09-13 Jim MacArthur <jim.macarthur@codethink.co.uk>
* gcc/testsuite/gfortran.dg/dec_structure_14.f90: New testcase.
From-SVN: r240134
Segher Boessenkool [Wed, 14 Sep 2016 10:51:43 +0000 (12:51 +0200)]
Fix TARGET_LRA_P description
2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
* target.def (lra_p): Change commentary (for the manual) for the
new default.
* doc/tm.texi: Regenerate.
From-SVN: r240133
Segher Boessenkool [Wed, 14 Sep 2016 10:49:42 +0000 (12:49 +0200)]
Delete TARGET_LRA_P from those targets that set it to "true"
A few targets already always want LRA; those then do not need to override
the default anymore.
2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
* config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
* config/arm/arm.c (TARGET_LRA_P): Delete macro.
* config/i386/i386.c (TARGET_LRA_P): Delete macro.
* config/nds32/nds32.c (TARGET_LRA_P): Delete macro.
From-SVN: r240132
Segher Boessenkool [Wed, 14 Sep 2016 10:48:00 +0000 (12:48 +0200)]
Change the default of TARGET_LRA_P to true
Since all targets now define TARGET_LRA_P, this does not change behaviour
for any existing target. Newly added ports will by default use LRA now.
2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
* targhooks.c (default_lra_p): Return true instead of false.
From-SVN: r240131
Segher Boessenkool [Wed, 14 Sep 2016 10:46:12 +0000 (12:46 +0200)]
Put a TARGET_LRA_P into every target
This patch adds a TARGET_LRA_P (defined to hook_bool_void_false) to
every target that didn't yet override the hook. No functional change.
2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
* config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
hook_bool_void_false.
* config/avr/avr.c: Ditto.
* config/bfin/bfin.c: Ditto.
* config/c6x/c6x.c: Ditto.
* config/cr16/cr16.c: Ditto.
* config/cris/cris.c: Ditto.
* config/epiphany/epiphany.c: Ditto.
* config/fr30/fr30.c: Ditto.
* config/frv/frv.c: Ditto.
* config/h8300/h8300.c: Ditto.
* config/ia64/ia64.c: Ditto.
* config/iq2000/iq2000.c: Ditto.
* config/lm32/lm32.c: Ditto.
* config/m32c/m32c.c: Ditto.
* config/m32r/m32r.c: Ditto.
* config/m68k/m68k.c: Ditto.
* config/mcore/mcore.c: Ditto.
* config/microblaze/microblaze.c: Ditto.
* config/mmix/mmix.c: Ditto.
* config/mn10300/mn10300.c: Ditto.
* config/moxie/moxie.c: Ditto.
* config/msp430/msp430.c: Ditto.
* config/nios2/nios2.c: Ditto.
* config/nvptx/nvptx.c: Ditto.
* config/pa/pa.c: Ditto.
* config/pdp11/pdp11.c: Ditto.
* config/rl78/rl78.c: Ditto.
* config/sparc/sparc.c: Ditto.
* config/spu/spu.c: Ditto.
* config/stormy16/stormy16.c: Ditto.
* config/tilegx/tilegx.c: Ditto.
* config/tilepro/tilepro.c: Ditto.
* config/v850/v850.c: Ditto.
* config/vax/vax.c: Ditto.
* config/visium/visium.c: Ditto.
* config/xtensa/xtensa.c: Ditto.
From-SVN: r240130
Jakub Jelinek [Wed, 14 Sep 2016 09:01:49 +0000 (11:01 +0200)]
re PR sanitizer/68260 (false positive with tsan)
PR sanitizer/68260
* tsan.c: Include target.h.
(enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
(BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
(tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
BUILT_IN_ATOMIC_TEST_AND_SET entries.
(instrument_builtin_call): Handle bool_clear and bool_test_and_set.
* c-c++-common/tsan/pr68260.c: New test.
From-SVN: r240129
Bernd Edlinger [Wed, 14 Sep 2016 07:18:53 +0000 (07:18 +0000)]
Add braces to a condition in predict.c (PR middle-end/77574)
Martin Liska <mliska@suse.cz>
PR middle-end/77574
* predict.c (force_edge_cold): Add braces to a condition.
Co-Authored-By: Martin Liska <mliska@suse.cz>
From-SVN: r240128
GCC Administrator [Wed, 14 Sep 2016 00:16:16 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r240127
Bernd Edlinger [Tue, 13 Sep 2016 21:25:04 +0000 (21:25 +0000)]
re PR rtl-optimization/77289 (ICE in extract_constrain_insn, at recog.c:2212 on powerpc64)
2016-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR rtl-optimization/77289
* lra-constraints.c (get_final_hard_regno): Removed.
(get_hard_regno): Add new parameter final_p.
(get_reg_class): Directly call lra_get_elimination_hard_regno.
(operands_match_p): Adjust call to get_hard_regno.
(uses_hard_regs_p): Likewise.
(process_alt_operands): Likewise.
From-SVN: r240124
Joe Seymour [Tue, 13 Sep 2016 20:06:47 +0000 (20:06 +0000)]
re PR target/70713 (msp430 interrupt attribute prevents overriding weak symbols)
2016-09-13 Joe Seymour <joe.s@somniumtech.com>
gcc/
PR target/70713
* config/msp430/msp430.c (msp430_start_function): Emit an error
if a function is both weak and specifies an interrupt number.
gcc/testsuite/
PR target/70713
* gcc.target/msp430/function-attributes-1.c: New test.
* gcc.target/msp430/function-attributes-2.c: New test.
* gcc.target/msp430/function-attributes-3.c: New test.
From-SVN: r240123
Ville Voutilainen [Tue, 13 Sep 2016 19:26:02 +0000 (22:26 +0300)]
Implement P0040R3, Extending memory management tools.
* include/bits/stl_uninitialized.h (utility): New include
in C++17 mode.
(uninitialized_default_construct): New.
(uninitialized_default_construct_n): Likewise.
(uninitialized_value_construct): Likewise.
(uninitialized_value_construct_n): Likewise.
(uninitialized_move): Likewise.
(uninitialized_move_n): Likewise.
(destroy_at, destroy, destroy_n): Likewise.
* testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
New.
From-SVN: r240122
Jakub Jelinek [Tue, 13 Sep 2016 19:20:38 +0000 (21:20 +0200)]
Implement P0028R4, C++17 using attribute namespaces without repetition
Implement P0028R4, C++17 using attribute namespaces without repetition
* parser.c (cp_parser_std_attribute): Add ATTR_NS argument. Diagnose
non-NULL ATTR_NS with scoped attribute token. Handle non-NULL
ATTR_NS with non-scoped attribute tokens. Allow named ops in
identifier after ::.
(cp_parser_std_attribute_list): Add ATTR_NS argument, pass it down
to cp_parser_std_attribute calls.
(cp_parser_std_attribute_spec): Parse optional C++17
attribute-using-prefix, adjust grammar in function comment.
* g++.dg/cpp0x/gen-attrs-61.C: New test.
* g++.dg/cpp1z/gen-attrs1.C: New test.
From-SVN: r240121
Jakub Jelinek [Tue, 13 Sep 2016 19:19:33 +0000 (21:19 +0200)]
re PR tree-optimization/77454 (IMM ERROR w/ -O2 and above)
PR tree-optimization/77454
* tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
changing GIMPLE_COND. Move update_stmt_if_modified call after this.
Formatting fix.
* gcc.dg/pr77454.c: New test.
From-SVN: r240120