Jeff Law [Wed, 27 Jun 2018 18:30:06 +0000 (12:30 -0600)]
v850-modes.def (CCZ, CCNZ): Add new modes.
* config/v850/v850-modes.def (CCZ, CCNZ): Add new modes.
* config/v850/v850.c (notice_update_cc): Remove.
* config/v850/v850.h (CC_OVERFLOW_UNUSABLE): Remove
(CC_NO_CARRY): Likewise.
(NOTICE_UPDATE_CC): Define to nothing.
* config/v850/v850.md: Remove block comment on cc0 handling
Remove "cc" attribute from all patterns. Remove cc_status handling
from all patterns. Minor formatting fixes.
Co-Authored-By: Austin Law <austinklaw@gmail.com>
From-SVN: r262189
Jason Merrill [Wed, 27 Jun 2018 17:29:51 +0000 (13:29 -0400)]
Avoid crash on friend in nested class template.
* name-lookup.c (do_pushtag): If we skip a class level, also skip
its template level.
From-SVN: r262188
Kyrylo Tkachov [Wed, 27 Jun 2018 14:33:16 +0000 (14:33 +0000)]
[AArch64] Add support for Arm Cortex-A76
The Cortex-A76 is an Armv8.2-A processor with dotproduct and FP16 support.
It can be paired with the Cortex-A55 and hence the option
-mcpu/-mtune=cortex-a76.cortex-a55 is also introduced.
Bootstrapped and tested on aarch64-none-linux-gnu.
* config/aarch64/aarch64-cores.def (cortex-a76): New entry.
(cortex-a76.cortex-a55): Likewise.
* config/aarch64/aarch64-tune.md: Regenerate.
* doc/invoke.texi (AArch64 Options): Document cortex-a76 and
cortex-a76.cortex-a55.
From-SVN: r262186
Jeff Law [Wed, 27 Jun 2018 14:27:44 +0000 (08:27 -0600)]
t-v850 (MULTILIB_OPTIONS): Remove 8byte-align.
* config/v850/t-v850 (MULTILIB_OPTIONS): Remove 8byte-align.
(MULTILIB_DIRNAMES): Similarly.
From-SVN: r262185
Jonathan Wakely [Wed, 27 Jun 2018 10:30:52 +0000 (11:30 +0100)]
Add std::__is_byte<std::byte> specialization
* include/bits/cpp_type_traits.h [__cplusplus >= 201703]
(__is_byte<byte>): Define specialization for std::byte.
From-SVN: r262182
Eric Botcazou [Wed, 27 Jun 2018 10:26:06 +0000 (10:26 +0000)]
gimple.h (gimple_return_retbnd): Delete.
* gimple.h (gimple_return_retbnd): Delete.
(gimple_return_set_retbnd): Likewise.
* cgraphunit.c (cgraph_node::expand_thunk): Remove call to
gimple_return_set_retbnd.
* gimple-pretty-print.c (dump_gimple_return): Remove call to
gimple_return_retbnd and adjust.
* tree-inline.h (struct copy_body_data): Remove retbnd field.
* tree-inline.c (remap_gimple_stmt): Remove handling of retbnd.
Explicitly return NULL in a couple more cases. Move assertion
on debug statements and remove unreachable code.
(reset_debug_binding): Do not test id->retbnd.
(expand_call_inline): Do not set it.
From-SVN: r262181
Rasmus Villemoes [Wed, 27 Jun 2018 10:04:25 +0000 (12:04 +0200)]
add support for --disable-gcov
For some targets (in my case VxWorks 5.5), libgcov does not compile due
to missing functions and macros such as getpid() and F_OK.
Incidentally, gcc/Makefile.in already contains comments such as
# Install gcov if it was compiled.
but there is no logic in place to actually allow gcov to not be
compiled.
So add an option for disabling build and install of libgcov and the
related host tools.
From-SVN: r262180
Kyrylo Tkachov [Wed, 27 Jun 2018 09:54:40 +0000 (09:54 +0000)]
[arm] Add support for Arm Cortex-A76
The Cortex-A76 is an Armv8.2-A processor with dotproduct and FP16 support.
It can be paired with the Cortex-A55 and hence the option
-mcpu/-mtune=cortex-a76.cortex-a55 is also introduced.
Bootstrapped and tested on arm-none-linux-gnueabihf.
* config/arm/arm-cpus.in (cortex-a76): New entry.
(cortex-a76.cortex-a55): Likewise.
* config/arm/arm-tables.opt: Regenerate.
* config/arm/arm-tune.md: Likewise.
* config/arm/driver-arm.c (arm_cpu_table): Add Cortex-A76 entry.
* doc/invoke.texi (ARM Options): Document cortex-a76 and
cortex-a76.cortex-a55.
From-SVN: r262179
Tamar Christina [Wed, 27 Jun 2018 08:08:48 +0000 (08:08 +0000)]
Add SIMD to REG pattern for movhf without armv8.2-a support for AArch64
This fixes a regression where we don't have an instruction for pre Armv8.2-a
to do a move of an fp16 value from a GP reg to a SIMD reg.
This patch adds that pattern to movhf_aarch64 using a dup and only selectes it
using a very low priority.
This fixes an ICE at -O0.
gcc/
2018-06-20 Tamar Christina <tamar.christina@arm.com>
PR target/85769
* config/aarch64/aarch64.md (*movhf_aarch64): Add dup v0.4h pattern.
gcc/testsuite/
2018-06-20 Tamar Christina <tamar.christina@arm.com>
PR target/85769
* gcc.target/aarch64/f16_mov_immediate_3.c: New.
From-SVN: r262178
Rasmus Villemoes [Wed, 27 Jun 2018 07:59:23 +0000 (09:59 +0200)]
fixincludes: Add missing hunk to tests/base/ioLib.h
When adding the vxworks_iolib_include_unistd hack I failed to add the
appropriate hunk to the tests/base/ioLib.h file, causing "make
check-fixincludes" to fail.
From-SVN: r262177
Siddhesh Poyarekar [Wed, 27 Jun 2018 05:28:06 +0000 (05:28 +0000)]
[aarch64] Fix obsolete comment about X30
r217431 changed X30 as caller-saved in CALL_USE_REGISTERS because of
which this comment about X30 not being marked as call-clobbered is no
longer accurate. Fixed to describe the current state more accurately.
* config/aarch64/aarch64.h (CALL_USE_REGISTERS): Fix obsolete
comment.
(EPILOGUE_USES): Likewise.
From-SVN: r262176
Jason Merrill [Wed, 27 Jun 2018 02:59:44 +0000 (22:59 -0400)]
PR c++/86320 - memory-hog with std::array of pair
* typeck2.c (process_init_constructor_array): Only compute a
constant initializer once.
In this PR, we have a large std::array of pairs. Since the C array is
wrapped in a class we don't go to build_vec_init, so we end up with
digest_init wanting to build up the element initializer for each element of
the array.
In the more general case, like 80272, we have a data structure problem: we
don't currently have a good way of expressing the same dynamic
initialization of many elements within a CONSTRUCTOR. RANGE_EXPR probably
ought to work, but will need more work at genericize or gimplify time.
But in this case, the initialization for each element reduces to constant
0, so we don't even need to add anything to the CONSTRUCTOR. We just need
to realize that if the initializer for one element is 0, the others will be
as well, and we don't need to iterate over the whole array.
For the trunk, I also use a RANGE_EXPR to handle constant initialization by
a value other than 0.
void foo ()
{
std::array<std::pair<int, int>, 1024 * 1024> arr {};
}
From-SVN: r262173
Jason Merrill [Wed, 27 Jun 2018 02:59:38 +0000 (22:59 -0400)]
PR c++/80290 - memory-hog with std::pair.
* pt.c (fn_type_unification): Add convs parameter.
(check_non_deducible_conversion): Remember conversion.
(check_non_deducible_conversions): New. Do checks here.
(type_unification_real): Not here. Remove flags parm.
* call.c (add_function_candidate): Make convs a parameter.
Don't recalculate the conversion if it's already set.
(add_template_candidate_real): Allocate convs here.
(good_conversion, conv_flags): New.
When the std::pair constructors got more complex to handle, it aggravated a
preexisting algorithmic problem in template overload resolution:
As part of template argument deduction in a call, once we've deduced all
the template arguments we can but before we substitute them to form an
actual declaration, for any function parameters that don't involve template
parameters we need to check that it's possible to convert the argument to
the parameter type (wg21.link/cwg1391).
As a result, we end up calculating the conversion twice: once here, and
then again in add_function_candidate as part of normal overload resolution.
Normally this isn't a big deal, but when the argument is a multiply-nested
initializer list, doubling the conversion processing at each level leads to
combinatorial explosion.
The patch for trunk avoids the duplication by remembering the conversion we
calculate at deduction time and then reusing it in overload resolution
rather than calculating it again.
From-SVN: r262172
GCC Administrator [Wed, 27 Jun 2018 00:17:03 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r262171
Jonathan Wakely [Wed, 27 Jun 2018 00:11:53 +0000 (01:11 +0100)]
Declare some explicit instantiations for strings in Debug Mode
The empty reps and the I/O functions do not need to be implicitly
instantiated to enable assertions, so declare the explicit
instantiations when _GLIBCXX_EXTERN_TEMPLATE == -1 (i.e. when
_GLIBCXX_ASSERTIONS is defined).
PR libstdc++/86138
* include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0]
Declare explicit instantiations of COW empty reps and I/O functions.
From-SVN: r262167
Jeff Law [Tue, 26 Jun 2018 20:22:59 +0000 (14:22 -0600)]
v850-common.c (TARGET_DEFAULT_TARGET_FLAGS): Turn on -mbig-switch by default.
* common/config/v850/v850-common.c (TARGET_DEFAULT_TARGET_FLAGS): Turn
on -mbig-switch by default.
From-SVN: r262166
Eric Botcazou [Tue, 26 Jun 2018 20:16:28 +0000 (20:16 +0000)]
tree-inline.c (remap_location): New function extracted from...
* tree-inline.c (remap_location): New function extracted from...
(copy_edges_for_bb): Add ID parameter. Remap goto_locus.
(copy_phis_for_bb): ...here. Call remap_location.
(copy_cfg_body): Adjust call to copy_edges_for_bb.
From-SVN: r262165
David Edelsohn [Tue, 26 Jun 2018 19:17:08 +0000 (19:17 +0000)]
sample-2.cc: Add TLS DejaGNU directives.
* testsuite/experimental/algorithm/sample-2.cc: Add TLS DejaGNU
directives.
* testsuite/experimental/algorithm/shuffle.cc: Likewise.
From-SVN: r262163
Kelvin Nilsen [Tue, 26 Jun 2018 18:55:34 +0000 (18:55 +0000)]
builtins-1.c: Correct a comment.
gcc/testsuite/ChangeLog:
2018-06-26 Kelvin Nilsen <kelvin@gcc.gnu.org>
* gcc.target/powerpc/builtins-1.c: Correct a comment.
From-SVN: r262162
Aaron Sawdey [Tue, 26 Jun 2018 16:46:51 +0000 (16:46 +0000)]
rs6000-string.c (expand_block_clear): Don't use unaligned vsx for 16B memset.
2018-06-26 Aaron Sawdey <acsawdey@linux.ibm.com>
* config/rs6000/rs6000-string.c (expand_block_clear): Don't use
unaligned vsx for 16B memset.
From-SVN: r262158
Segher Boessenkool [Tue, 26 Jun 2018 16:08:30 +0000 (18:08 +0200)]
I typoed the PR numnber, correct is:
PR target/86285
* config/rs6000/rs6000.c (rs6000_init_builtins): Do not set
ieee128_float_type_node to long_double_type_node unless
TARGET_LONG_DOUBLE_128 is set.
From-SVN: r262156
Will Schmidt [Tue, 26 Jun 2018 15:26:14 +0000 (15:26 +0000)]
fold-vec-neg-int.p8.c: Specify powerpc_p8vector_ok requirement for this test.
[testsuite]
2018-06-12 Will Schmidt <will_schmidt@vnet.ibm.com>
* gcc.target/powerpc/fold-vec-neg-int.p8.c: Specify powerpc_p8vector_ok
requirement for this test.
* gcc.target/powerpc/fold-vec-neg-int.c: Specify powerpc_p8vector_ok
requirement, and -mpower8-vector compile option.
From-SVN: r262153
Segher Boessenkool [Tue, 26 Jun 2018 15:16:58 +0000 (17:16 +0200)]
rs6000: Set up ieee128_float_type_node correctly (PR82625)
We shouldn't init __ieee128 to be the same as long double if the
latter is not even a 128-bit type.
This also reorders the nearby __ibm128 code so both types use similar
logic.
PR target/82625
* config/rs6000/rs6000.c (rs6000_init_builtins): Do not set
ieee128_float_type_node to long_double_type_node unless
TARGET_LONG_DOUBLE_128 is set.
From-SVN: r262152
David Malcolm [Tue, 26 Jun 2018 13:34:59 +0000 (13:34 +0000)]
Introduce dump_location_t
gcc/ChangeLog:
* cfgloop.c (get_loop_location): Convert return type from
location_t to dump_user_location_t, replacing INSN_LOCATION lookups
by implicit construction from rtx_insn *, and using
dump_user_location_t::from_function_decl for the fallback case.
* cfgloop.h (get_loop_location): Convert return type from
location_t to dump_user_location_t.
* cgraphunit.c (walk_polymorphic_call_targets): Update call to
dump_printf_loc to pass in a dump_location_t rather than a
location_t, via the gimple stmt.
* coverage.c (get_coverage_counts): Update calls to
dump_printf_loc to pass in dump_location_t rather than a
location_t.
* doc/optinfo.texi (Dump types): Convert example of
dump_printf_loc from taking "locus" to taking "insn". Update
description of the "_loc" calls to cover dump_location_t.
* dumpfile.c: Include "backend.h", "gimple.h", "rtl.h", and
"selftest.h".
(dump_user_location_t::dump_user_location_t): New constructors,
from gimple *stmt and rtx_insn *.
(dump_user_location_t::from_function_decl): New function.
(dump_loc): Make static.
(dump_gimple_stmt_loc): Convert param "loc" from location_t to
const dump_location_t &.
(dump_generic_expr_loc): Delete.
(dump_printf_loc): Convert param "loc" from location_t to
const dump_location_t &.
(selftest::test_impl_location): New function.
(selftest::dumpfile_c_tests): New function.
* dumpfile.h: Include "profile-count.h".
(class dump_user_location_t): New class.
(struct dump_impl_location_t): New struct.
(class dump_location_t): New class.
(dump_printf_loc): Convert 2nd param from source_location to
const dump_location_t &.
(dump_generic_expr_loc): Delete.
(dump_gimple_stmt_loc): Convert 2nd param from source_location to
const dump_location_t &.
* gimple-fold.c (fold_gimple_assign): Update call to
dump_printf_loc to pass in a dump_location_t rather than a
location_t, via the gimple stmt.
(gimple_fold_call): Likewise.
* gimple-loop-interchange.cc
(loop_cand::analyze_iloop_reduction_var): Update for change to
check_reduction_path.
(tree_loop_interchange::interchange): Update for change to
find_loop_location.
* graphite-isl-ast-to-gimple.c (scop_to_isl_ast): Update for
change in return-type of find_loop_location.
(graphite_regenerate_ast_isl): Likewise.
* graphite-optimize-isl.c (optimize_isl): Likewise.
* graphite.c (graphite_transform_loops): Likewise.
* ipa-devirt.c (ipa_devirt): Update call to dump_printf_loc to
pass in a dump_location_t rather than a location_t, via the
gimple stmt.
* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
* ipa.c (walk_polymorphic_call_targets): Likewise.
* loop-unroll.c (report_unroll): Convert "locus" param from
location_t to dump_location_t.
(decide_unrolling): Update for change to get_loop_location's
return type.
* omp-grid.c (struct grid_prop): Convert field "target_loc" from
location_t to dump_user_location_t.
(grid_find_single_omp_among_assignments_1): Updates calls to
dump_printf_loc to pass in a dump_location_t rather than a
location_t, via the gimple stmt.
(grid_parallel_clauses_gridifiable): Convert "tloc" from
location_t to dump_location_t. Updates calls to dump_printf_loc
to pass in a dump_location_t rather than a location_t, via the
gimple stmt.
(grid_inner_loop_gridifiable_p): Likewise.
(grid_dist_follows_simple_pattern): Likewise.
(grid_gfor_follows_tiling_pattern): Likewise.
(grid_target_follows_gridifiable_pattern): Likewise.
(grid_attempt_target_gridification): Convert initialization
of local "grid" from memset to zero-initialization; FIXME: does
this require C++11? Update call to dump_printf_loc to pass in a
optinfo_location rather than a location_t, via the gimple stmt.
* profile.c (read_profile_edge_counts): Updates call to
dump_printf_loc to pass in a dump_location_t rather than a
location_t
(compute_branch_probabilities): Likewise.
* selftest-run-tests.c (selftest::run_tests): Call
dumpfile_c_tests.
* selftest.h (dumpfile_c_tests): New decl.
* tree-loop-distribution.c (pass_loop_distribution::execute):
Update for change in return type of find_loop_location.
* tree-parloops.c (parallelize_loops): Likewise.
* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Convert
"locus" from location_t to dump_user_location_t.
(canonicalize_loop_induction_variables): Likewise.
* tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_loop): Update
for change in return type of find_loop_location.
* tree-ssa-loop-niter.c (number_of_iterations_exit): Update call
to dump_printf_loc to pass in a dump_location_t rather than a
location_t, via the stmt.
* tree-ssa-sccvn.c (eliminate_dom_walker::before_dom_children):
Likewise.
* tree-vect-loop-manip.c (find_loop_location): Convert return
type from source_location to dump_user_location_t.
(vect_do_peeling): Update for above change.
(vect_loop_versioning): Update for change in type of
vect_location.
* tree-vect-loop.c (check_reduction_path): Convert "loc" param
from location_t to dump_user_location_t.
(vect_estimate_min_profitable_iters): Update for change in type
of vect_location.
* tree-vect-slp.c (vect_print_slp_tree): Convert param "loc" from
location_t to dump_location_t.
(vect_slp_bb): Update for change in type of vect_location.
* tree-vectorizer.c (vect_location): Convert from source_location
to dump_user_location_t.
(try_vectorize_loop_1): Update for change in vect_location's type.
(vectorize_loops): Likewise.
(increase_alignment): Likewise.
* tree-vectorizer.h (vect_location): Convert from source_location
to dump_user_location_t.
(find_loop_location): Convert return type from source_location to
dump_user_location_t.
(check_reduction_path): Convert 1st param from location_t to
dump_user_location_t.
* value-prof.c (check_counter): Update call to dump_printf_loc to
pass in a dump_user_location_t rather than a location_t; update
call to error_at for change in type of "locus".
(check_ic_target): Update call to dump_printf_loc to
pass in a dump_user_location_t rather than a location_t, via the
call_stmt.
From-SVN: r262149
Jonathan Wakely [Tue, 26 Jun 2018 12:24:47 +0000 (13:24 +0100)]
Add missing noexcept on definition to match declaration
* include/bits/regex.tcc (regex_iterator::operator==): Add missing
noexcept.
From-SVN: r262146
Robin Dapp [Tue, 26 Jun 2018 11:50:09 +0000 (11:50 +0000)]
S/390: Fix mtune default.
When building with --with-tune=zEC12 and calling the resulting gcc
with --march=z13 (no extra -mtune), the binary would unexpectedly be compiled
with -march=z13 -mtune=zEC12. This patch avoids using the default tune
parameter if -march is specified as argument but the user can still
explicitly state -march=z13 -mtune=zEC12.
gcc/ChangeLog:
2018-06-26 Robin Dapp <rdapp@linux.vnet.ibm.com>
* config/s390/s390.h (enum processor_flags): Do not use
default tune parameter when -march was specified.
From-SVN: r262143
Jakub Jelinek [Tue, 26 Jun 2018 11:35:52 +0000 (13:35 +0200)]
re PR target/86314 (GCC 7.x and 8.x zero out "eax" before using "rax" in "lock bts")
PR target/86314
* config/i386/i386.md (setcc + movzbl to xor + setcc peephole2s):
Check reg_overlap_mentioned_p in addition to reg_set_p with the same
operands.
* gcc.dg/pr86314.c: New test.
From-SVN: r262141
Jakub Jelinek [Tue, 26 Jun 2018 10:40:50 +0000 (12:40 +0200)]
re PR c++/86291 (OpenMP incorrect for-loop collapsing with iterators and at least 5 nested loops)
PR c++/86291
* parser.c (cp_parser_omp_for_loop_init): Change for_block argument
type from vec<tree, va_gc> * to vec<tree, va_gc> *&.
* testsuite/libgomp.c++/pr86291.C: New test.
From-SVN: r262137
Jakub Jelinek [Tue, 26 Jun 2018 10:36:19 +0000 (12:36 +0200)]
re PR debug/86257 (Program compiled with fPIC crashes while stepping over thread-local variable GDB)
PR debug/86257
* gcc.target/i386/pr86257.c: Add -mtls-dialect=gnu to dg-options.
From-SVN: r262136
Rainer Orth [Tue, 26 Jun 2018 09:14:12 +0000 (09:14 +0000)]
Require 64-bit in gcc.target/i386/pr86257.c
* gcc.target/i386/pr86257.c: Require 64-bit.
From-SVN: r262135
Rainer Orth [Tue, 26 Jun 2018 09:10:15 +0000 (09:10 +0000)]
Require IBM1047 support in g++.dg/pr86082.C
* g++.dg/pr86082.C: Require IBM1047 support.
From-SVN: r262134
Rasmus Villemoes [Tue, 26 Jun 2018 08:58:18 +0000 (10:58 +0200)]
Add myself to MAINTAINERS file
From-SVN: r262133
Richard Biener [Tue, 26 Jun 2018 06:42:46 +0000 (06:42 +0000)]
re PR tree-optimization/86287 (AddressSanitizer: heap-use-after-free on bootstrap with -O3)
2018-06-26 Richard Biener <rguenther@suse.de>
PR tree-optimization/86287
PR bootstrap/86316
* tree-vect-loop.c (vect_transform_loop_stmt): Fix read-after-free.
(vect_analyze_loop): Initialize n_stmts.
From-SVN: r262132
Richard Biener [Tue, 26 Jun 2018 06:40:43 +0000 (06:40 +0000)]
re PR ipa/86271 (ICE due to size mismatch when inlining)
2018-06-26 Richard Biener <rguenther@suse.de>
PR middle-end/86271
* fold-const.c (fold_convertible_p): Pointer extension
isn't valid.
* gcc.dg/pr86271.c: New testcase.
From-SVN: r262131
Alexandre Oliva [Tue, 26 Jun 2018 05:44:26 +0000 (05:44 +0000)]
[PR86064] split single cross-partition range with nonzero locviews
We didn't split cross-partition ranges in loclists to output a
whole-function location expression, but with nonzero locviews, we
force loclists, and then we have to split to avoid cross-partition
list entries.
for gcc/ChangeLog
PR debug/86064
* dwarf2out.c (loc_list_has_views): Adjust comments.
(dw_loc_list): Split single cross-partition range with
nonzero locview.
for gcc/testsuite/ChangeLog
PR debug/86064
* gcc.dg/pr86064.c: New.
From-SVN: r262130
Jeff Law [Tue, 26 Jun 2018 05:19:15 +0000 (23:19 -0600)]
* lib/target-supports.exp
(check_effective_target_logical_op_short_circuit): Add v850.
From-SVN: r262129
GCC Administrator [Tue, 26 Jun 2018 00:16:56 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r262127
Jeff Law [Mon, 25 Jun 2018 23:45:05 +0000 (17:45 -0600)]
predicates.md (const_float_1_operand): Fix match_code test.
* config/v850/predicates.md (const_float_1_operand): Fix match_code
test.
(const_float_0_operand): Remove unused predicate.
* config/v850/v850.md (define_constants): Remove UNSPEC_LOOP.
(define_c_enum unspec): Add LOOP, RCP and RSQRT constants.
(recipsf2): New expander. Original pattern now called
(recipsf2_insn).
(recipdf2, recipdf2_insn): Similarly.
(rsqrtsf2, rsqrtsf2_insn): Similarly
(rsqrtdf2, rsqrtdf2_insn): Similarly
From-SVN: r262123
Gerald Pfeifer [Mon, 25 Jun 2018 22:29:55 +0000 (22:29 +0000)]
stddef.h: Remove an obsolete comment on FreeBSD 5.
* ginclude/stddef.h: Remove an obsolete comment on FreeBSD 5.
Simplify logic for FreeBSD (twice).
From-SVN: r262121
Ian Lance Taylor [Mon, 25 Jun 2018 22:23:49 +0000 (22:23 +0000)]
compiler: improve escape analysis
This CL ports recent enhancements of the escape analysis in the
gc compiler to gofrontend.
- CL 99335: unnamed receiver should not escape.
- CL 105257: propagate loop depth to field. This prevents it
from escaping when a field's address is taken inside a loop
(but not otherwise escape).
- CL 107597: use element type for "indirection" of slice/string.
This prevents the slice/string from escaping when only the
element, in case that it is pointerless, flows to outer scope.
Reviewed-on: https://go-review.googlesource.com/120760
From-SVN: r262120
Jonathan Wakely [Mon, 25 Jun 2018 21:03:49 +0000 (22:03 +0100)]
PR libstdc++/86112 fix printers for Python 2.6
Dict comprehensions are only supported since Python 2.7, so use an
alternative syntax that is backwards compatible.
PR libstdc++/86112
* python/libstdcxx/v6/printers.py (add_one_template_type_printer):
Replace dict comprehension.
From-SVN: r262115
Martin Sebor [Mon, 25 Jun 2018 20:46:45 +0000 (20:46 +0000)]
PR tree-optimization/86204 - wrong strlen result after prior strnlen
gcc/ChangeLog:
PR tree-optimization/86204
* tree-ssa-strlen.c (handle_builtin_strlen): Avoid storing
a strnlen result if it's less than the length of the string.
gcc/testsuite/ChangeLog:
PR tree-optimization/86204
* gcc.dg/strlenopt-46.c: New test.
From-SVN: r262114
Jonathan Wakely [Mon, 25 Jun 2018 20:36:51 +0000 (21:36 +0100)]
Update powerpc64-linux-gnu/baseline_symbols.txt
PR libstdc++/81092
* config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
From-SVN: r262112
Martin Sebor [Mon, 25 Jun 2018 20:33:28 +0000 (20:33 +0000)]
PR tree-optimization/85700 - Spurious -Wstringop-truncation warning with strncat
gcc/ChangeLog:
PR tree-optimization/85700
* gimple-fold.c (gimple_fold_builtin_strncat): Adjust comment.
* tree-ssa-strlen.c (is_strlen_related_p): Handle integer subtraction.
(maybe_diag_stxncpy_trunc): Distinguish strncat from strncpy.
gcc/testsuite/ChangeLog:
PR tree-optimization/85700
* gcc.dg/Wstringop-truncation-4.c: New test.
From-SVN: r262110
Martin Sebor [Mon, 25 Jun 2018 19:46:14 +0000 (19:46 +0000)]
extend.texi (Zero-length arrays): Update and clarify.
gcc/ChangeLog:
* doc/extend.texi (Zero-length arrays): Update and clarify.
From-SVN: r262109
Michael Meissner [Mon, 25 Jun 2018 18:59:55 +0000 (18:59 +0000)]
config.gcc (powerpc64le*): Revert January 16th...
2018-06-25 Michael Meissner <meissner@linux.ibm.com>
* config.gcc (powerpc64le*): Revert January 16th, 2018 patch that
added IEEE/IBM long double multilib support on PowerPC little
endian Linux systems.
* config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Likewise.
(MULTILIB_DEFAULTS): Likewise.
* config/rs6000/rs6000.c (rs6000_option_override_internal):
Likewise.
* config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Likewise.
* config/rs6000/t-ldouble-linux64le-ibm: Delete, no longer used.
* config/rs6000/t-ldouble-linux64le-ieee: Delete, no longer used.
From-SVN: r262105
Fritz Reese [Mon, 25 Jun 2018 18:33:11 +0000 (18:33 +0000)]
Fix -finit-derived for c_ptr and c_funptr in programs which use
iso_c_binding.
gcc/fortran/ChangeLog:
2018-06-25 Fritz Reese <fritzoreese@gmail.com>
PR fortran/82972
PR fortran/83088
PR fortran/85851
* expr.c (component_initializer): Assign init expr to c->initializer.
(generate_isocbinding_initializer): New.
(gfc_generate_initializer): Call generate_isocbinding_initializer to
generate initializers for c_ptr and c_funptr with -finit-derived.
gcc/testsuite/ChangeLog:
2018-06-25 Fritz Reese <fritzoreese@gmail.com>
PR fortran/82972
PR fortran/83088
PR fortran/85851
* gfortran.dg/init_flag_17.f90: New testcase.
From-SVN: r262104
Alexander Monakov [Mon, 25 Jun 2018 17:44:15 +0000 (20:44 +0300)]
gcc_qsort: avoid overlapping memcpy (PR 86311)
PR middle-end/86311
* sort.cc (REORDER_23): Avoid memcpy with same destination and source.
(REORDER_45): Likewise.
From-SVN: r262092
Jonathan Wakely [Mon, 25 Jun 2018 16:46:33 +0000 (17:46 +0100)]
PR libstdc++/86292 fix exception safety of std::vector<InputIterator> constructor
PR libstdc++/86292
* include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>):
Add try-catch block.
* testsuite/23_containers/vector/cons/86292.cc: New.
From-SVN: r262029
Jonathan Wakely [Mon, 25 Jun 2018 16:42:28 +0000 (17:42 +0100)]
* doc/xml/manual/status_cxx2017.xml: Document N4531 status.
From-SVN: r262025
Jonathan Wakely [Mon, 25 Jun 2018 16:23:49 +0000 (17:23 +0100)]
Add experimental::sample and experimental::shuffle from N4531
The additions to <experimental/random> were added in 2015 but the new
algorithms in <experimental/algorithm> were not. This adds them.
* include/experimental/algorithm (sample, shuffle): Add new overloads
using per-thread random number engine.
* testsuite/experimental/algorithm/sample.cc: Simpify and reduce
dependencies by using __gnu_test::test_container.
* testsuite/experimental/algorithm/sample-2.cc: New.
* testsuite/experimental/algorithm/shuffle.cc: New.
From-SVN: r262024
Carl Love [Mon, 25 Jun 2018 16:04:14 +0000 (16:04 +0000)]
p9-extract-1.c: Make second argument of vec_extract a signed int.
gcc/testsuite/ChangeLog:
2018-06-25 Carl Love <cel@us.ibm.com>
* gcc.target/powerpc/p9-extract-1.c: Make second argument of
vec_extract a signed int. Add vec_extract tests for bool char
and bool int.
* gcc.target/powerpc/p9-extract-4.c: New test file for long long
vec_extract tests.
From-SVN: r262023
Jeff Law [Mon, 25 Jun 2018 16:02:16 +0000 (10:02 -0600)]
v850.md (divmodhi4): Make sure to sign extend the dividend to 32 bits.
* config/v850/v850.md (divmodhi4): Make sure to sign extend the
dividend to 32 bits. Adjust length.
(udivmodhi4): Cleanup output template. Fix length.
From-SVN: r262022
Tom de Vries [Mon, 25 Jun 2018 15:56:13 +0000 (15:56 +0000)]
[testsuite/guality] Fix tcl error on gdb -v failure
2018-06-25 Tom de Vries <tdevries@suse.de>
* lib/gcc-gdb-test.exp (report_gdb): Handle gdb -v failure.
From-SVN: r262021
Carl Love [Mon, 25 Jun 2018 15:43:34 +0000 (15:43 +0000)]
vsx.md: Change word selector to prefered location.
gcc/ChangeLog:
2018-06-25 Carl Love <cel@us.ibm.com>
* config/rs6000/vsx.md: Change word selector to prefered location.
Signed-off-by: Carl Love <cel@us.ibm.com>
---
gcc/config/rs6000/vsx.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md
index
a528ef2e8..
6e7a4277f 100644
--- a/gcc/config/rs6000/vsx.md
+++ b/gcc/config/rs6000/vsx.md
@@ -3934,7 +3934,7 @@
operands[5] = gen_rtx_REG (V4SFmode, tmp_regno);
operands[6] = gen_rtx_REG (V4SImode, tmp_regno);
- operands[7] = GEN_INT (BYTES_BIG_ENDIAN ? 1 : 2);
+ operands[7] = GEN_INT (BYTES_BIG_ENDIAN ? 0 : 3);
operands[8] = gen_rtx_REG (V4SImode, reg_or_subregno (operands[0]));
}
[(set_attr "type" "vecperm")
--
2.17.1
From-SVN: r262020
Richard Biener [Mon, 25 Jun 2018 13:04:38 +0000 (13:04 +0000)]
re PR regression/86304 ([MIPS] FAIL: gcc.dg/vect/pr79887.c -mmsa (internal compiler error) starting with r261740)
2018-06-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/86304
* tree-vectorizer.c (vectorize_loops): Walk over new possibly
epilogue-if-converted loops as well.
From-SVN: r262017
Jakub Jelinek [Mon, 25 Jun 2018 12:57:04 +0000 (14:57 +0200)]
re PR target/84786 ([miscompilation] vunpcklpd accessing xmm16-22 targeting KNL)
PR target/84786
* config/i386/sse.md (vshift_count): New mode attr.
(<shift_insn><mode>3<mask_name>): Use <vshift_count>N instead of vN
as last operand's constraint for VI2_AVX2_AVX512BW shifts. Use YvN
instead of vN as last operand's constraint for VI48_AVX2 shifts.
* gcc.target/i386/avx512f-pr84786-3.c: New test.
From-SVN: r262015
Jan Hubicka [Mon, 25 Jun 2018 12:29:45 +0000 (14:29 +0200)]
lto-section-out.c (lto_begin_section): Do not print section name for noaddr and unnumbered dumps.
* lto-section-out.c (lto_begin_section): Do not print section
name for noaddr and unnumbered dumps.
From-SVN: r262013
Richard Biener [Mon, 25 Jun 2018 11:04:01 +0000 (11:04 +0000)]
tree-vectorizer.h (struct vec_info_shared): New structure with parts split out from struct vec_info and loop_nest from...
2018-06-25 Richard Biener <rguenther@suse.de>
* tree-vectorizer.h (struct vec_info_shared): New structure
with parts split out from struct vec_info and loop_nest from
struct _loop_vec_info.
(struct vec_info): Adjust accordingly.
(struct _loop_vec_info): Likewise.
(LOOP_VINFO_LOOP_NEST): Adjust.
(LOOP_VINFO_DATAREFS): Likewise.
(LOOP_VINFO_DDRS): Likewise.
(struct _bb_vec_info): Likewise.
(BB_VINFO_DATAREFS): Likewise.
(BB_VINFO_DDRS): Likewise.
(struct _stmt_vec_info): Add dr_aux member.
(DR_VECT_AUX): Adjust to refer to member of DR_STMTs vinfo.
(DR_MISALIGNMENT_UNINITIALIZED): New.
(set_dr_misalignment): Adjust.
(dr_misalignment): Assert misalign isn't DR_MISALIGNMENT_UNINITIALIZED.
(vect_analyze_loop): Adjust prototype.
(vect_analyze_loop_form): Likewise.
* tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
Compute dependences lazily.
(vect_record_base_alignments): Use shared datarefs/ddrs.
(vect_verify_datarefs_alignment): Likewise.
(vect_analyze_data_refs_alignment): Likewise.
(vect_analyze_data_ref_accesses): Likewise.
(vect_analyze_data_refs): Likewise.
* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Add
constructor parameter for shared part.
(vect_analyze_loop_form): Pass in shared part and adjust.
(vect_analyze_loop_2): Pass in storage for the number of
stmts. Move loop nest finding to the caller. Compute
datarefs lazily.
(vect_analyze_loop): Pass in shared part.
(vect_transform_loop): Verify shared datarefs are unchanged.
* tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Add
constructor parameter for shared part.
(vect_slp_analyze_bb_1): Pass in shared part and adjust.
(vect_slp_bb): Verify shared datarefs are unchanged before
transform.
* tree-vect-stmts.c (ensure_base_align): Adjust for DR_AUX
change.
(new_stmt_vec_info): Initialize DR_AUX misalignment to
DR_MISALIGNMENT_UNINITIALIZED.
* tree-vectorizer.c (vec_info::vec_info): Add constructor
parameter for shared part.
(vec_info::~vec_info): Adjust.
(vec_info_shared::vec_info_shared): New.
(vec_info_shared::~vec_info_shared): Likewise.
(vec_info_shared::save_datarefs): Likewise.
(vec_info_shared::check_datarefs): Likewise.
(try_vectorize_loop_1): Construct shared part live for analyses
of a single loop for multiple vector sizes.
* tree-parloops.c (gather_scalar_reductions): Adjust.
From-SVN: r262009
Richard Biener [Mon, 25 Jun 2018 11:02:10 +0000 (11:02 +0000)]
tree-vect-data-refs.c (vect_find_stmt_data_reference): Modify DR for SIMD lane accesses here and mark DR with (void *)-1 aux.
2018-06-25 Richard Biener <rguenther@suse.de>
* tree-vect-data-refs.c (vect_find_stmt_data_reference): Modify
DR for SIMD lane accesses here and mark DR with (void *)-1 aux.
(vect_analyze_data_refs): Remove similar code from here and
simplify accordingly.
From-SVN: r262008
Richard Biener [Mon, 25 Jun 2018 11:01:07 +0000 (11:01 +0000)]
tree-vect-data-refs.c (vect_check_gather_scatter): Fail for reverse storage order accesses rather than asserting they cannot...
2018-06-25 Richard Biener <rguenther@suse.de>
Eric Botcazou <ebotcazou@libertysurf.fr>
* tree-vect-data-refs.c (vect_check_gather_scatter): Fail
for reverse storage order accesses rather than asserting
they cannot happen here.
* gnat.dg/sso9.adb: New testcase.
* gnat.dg/sso9_pkg.ads: Likewise.
From-SVN: r262007
Tom de Vries [Mon, 25 Jun 2018 10:39:54 +0000 (10:39 +0000)]
[i386/debug] Fix insn prefix in tls_global_dynamic_64_<mode>
2018-06-25 Tom de Vries <tdevries@suse.de>
PR debug/86257
* config/i386/i386.md (define_insn "*tls_global_dynamic_64_<mode>"):
Use data16 instead of .byte for insn prefix.
* gcc.target/i386/pr86257.c: New test.
From-SVN: r262006
Andreas Krebbel [Mon, 25 Jun 2018 07:16:59 +0000 (07:16 +0000)]
C++: Fix PR86082
When turning a user-defined numerical literal into an operator
invocation the literal needs to be translated to the execution
character set.
gcc/cp/ChangeLog:
2018-06-25 Andreas Krebbel <krebbel@linux.ibm.com>
PR C++/86082
* parser.c (make_char_string_pack): Pass this literal chars
through cpp_interpret_string.
(cp_parser_userdef_numeric_literal): Check the result of
make_char_string_pack.
gcc/testsuite/ChangeLog:
2018-06-25 Andreas Krebbel <krebbel@linux.ibm.com>
PR C++/86082
* g++.dg/pr86082.C: New test.
From-SVN: r262003
GCC Administrator [Mon, 25 Jun 2018 00:17:04 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r262002
Maya Rashish [Sun, 24 Jun 2018 21:32:40 +0000 (21:32 +0000)]
stddef.h: Simplify conditions around avoiding re-definition of __size_t.
* ginclude/stddef.h: Simplify conditions around avoiding
re-definition of __size_t.
From-SVN: r261998
Gerald Pfeifer [Sun, 24 Jun 2018 20:38:14 +0000 (20:38 +0000)]
libgomp.texi (Top): Move www.openmp.org to https.
* libgomp.texi (Top): Move www.openmp.org to https.
(Enabling OpenMP): Ditto.
(omp_get_active_level): Ditto.
(omp_get_ancestor_thread_num): Ditto.
(omp_get_cancellation): Ditto.
(omp_get_default_device): Ditto.
(omp_get_dynamic): Ditto.
(omp_get_level): Ditto.
(omp_get_max_active_levels): Ditto.
(omp_get_max_task_priority): Ditto.
(omp_get_max_threads): Ditto.
(omp_get_nested): Ditto.
(omp_get_num_devices): Ditto.
(omp_get_num_procs): Ditto.
(omp_get_num_teams): Ditto.
(omp_get_num_threads): Ditto.
(omp_get_proc_bind): Ditto.
(omp_get_schedule): Ditto.
(omp_get_team_num): Ditto.
(omp_get_team_size): Ditto.
(omp_get_thread_limit): Ditto.
(omp_get_thread_num): Ditto.
(omp_in_parallel): Ditto.
(omp_in_final): Ditto.
(omp_is_initial_device): Ditto.
(omp_set_default_device): Ditto.
(omp_set_dynamic): Ditto.
(omp_set_max_active_levels): Ditto.
(omp_set_nested): Ditto.
(omp_set_num_threads): Ditto.
(omp_set_schedule): Ditto.
(omp_init_lock): Ditto.
(omp_set_lock): Ditto.
(omp_test_lock): Ditto.
(omp_unset_lock): Ditto.
(omp_destroy_lock): Ditto.
(omp_init_nest_lock): Ditto.
(omp_set_nest_lock): Ditto.
(omp_test_nest_lock): Ditto.
(omp_unset_nest_lock): Ditto.
(omp_destroy_nest_lock): Ditto.
(omp_get_wtick): Ditto.
(omp_get_wtime): Ditto.
(OMP_CANCELLATION): Ditto.
(OMP_DISPLAY_ENV): Ditto.
(OMP_DEFAULT_DEVICE): Ditto.
(OMP_DYNAMIC): Ditto.
(OMP_MAX_ACTIVE_LEVELS): Ditto.
(OMP_MAX_TASK_PRIORITY): Ditto.
(OMP_NESTED): Ditto.
(OMP_NUM_THREADS): Ditto.
(OMP_PROC_BIND): Ditto.
(OMP_PLACES): Ditto.
(OMP_STACKSIZE): Ditto.
(OMP_SCHEDULE): Ditto.
(OMP_THREAD_LIMIT): Ditto.
(OMP_WAIT_POLICY): Ditto.
From-SVN: r261997
Jan Hubicka [Sun, 24 Jun 2018 14:11:55 +0000 (16:11 +0200)]
lto-streamer-out.c (tree_is_indexable): Make LABEL_DECL nonindexable unless it is forced or nonlocal...
* lto-streamer-out.c (tree_is_indexable): Make LABEL_DECL nonindexable
unless it is forced or nonlocal; assert that we stream no IMPORTED_DECL.
From-SVN: r261995
Jerry DeLisle [Sun, 24 Jun 2018 04:09:20 +0000 (04:09 +0000)]
re PR fortran/85983 (ICE in check_dtio_interface1, at fortran/interface.c:4748)
2018-06-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/85983
* interface.c (check_dtio_interface1): Delete assert.
From-SVN: r261994
GCC Administrator [Sun, 24 Jun 2018 00:16:33 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r261992
Tom de Vries [Sat, 23 Jun 2018 23:41:51 +0000 (23:41 +0000)]
[testsuite/guality] Fix tcl error on missing gdb
2018-06-24 Tom de Vries <tdevries@suse.de>
* g++.dg/guality/guality.exp: Don't use which on gdb arg to report_gdb.
* gcc.dg/guality/guality.exp: Same.
* gfortran.dg/guality/guality.exp: Same.
* lib/gcc-gdb-test.exp: Do early out if which gdb fails.
From-SVN: r261988
Paolo Carlini [Sat, 23 Jun 2018 07:32:45 +0000 (07:32 +0000)]
decl.c (bad_specifiers): Add const location_t* parameter and use locations in error messages about...
/cp
2018-06-23 Paolo Carlini <paolo.carlini@oracle.com>
* decl.c (bad_specifiers): Add const location_t* parameter and
use locations in error messages about 'inline' and 'virtual'.
(mark_inline_variable): Add location_t parameter and use it in
error_at and pedwarn messages.
(grokdeclarator): Use declspecs->locations[ds_constexpr],
declspecs->locations[ds_concept], declspecs->locations[ds_virtual],
declspecs->locations[ds_inline] in many error messages; adjust
bad_specifiers and mark_inline_variable calls.
(grokvardecl): Use declspecs->locations[ds_concept] in error message.
/testsuite
2018-06-23 Paolo Carlini <paolo.carlini@oracle.com>
* g++.dg/concepts/locations1.C: New.
* g++.dg/cpp0x/locations1.C: Likewise.
* g++.dg/cpp1z/inline-var2.C: Test locations too.
* g++.dg/cpp1z/inline-var3.C: Likewise.
From-SVN: r261982
Maya Rashish [Sat, 23 Jun 2018 05:05:58 +0000 (05:05 +0000)]
invoke.texi (mno-fancy-math-387): Update for changes made to OpenBSD and NetBSD through the years.
* doc/invoke.texi (mno-fancy-math-387): Update for changes
made to OpenBSD and NetBSD through the years.
From-SVN: r261981
Ian Lance Taylor [Sat, 23 Jun 2018 02:44:36 +0000 (02:44 +0000)]
runtime: use #ifdef instead of #if for USING_SPLIT_STACK
USING_SPLIT_STACK is configured as defined/undefined, not 0/1.
Most of the places test USING_SPLIT_STACK with #ifdef, with a
few exceptions. This CL fixes the exceptions.
Reviewed-on: https://go-review.googlesource.com/120596
From-SVN: r261980
GCC Administrator [Sat, 23 Jun 2018 00:16:56 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r261979
Paul Thomas [Fri, 22 Jun 2018 22:31:17 +0000 (22:31 +0000)]
re PR fortran/86281 (SEGV in fortran/resolve.c:resolve_function)
2018-06-22 Paul Thomas <pault@gcc.gnu.org>
Rainer Orth <ro@gcc.gnu.org>
PR fortran/86281
* resolve.c (resolve_contained_fntype): Check for the charlen
before testing the length.
2018-06-22 Paul Thomas <pault@gcc.gnu.org>
PR fortran/86281
* gfortran.dg/assumed_charlen_function_7.f90: Add -std=legacy.
Co-Authored-By: Rainer Orth <ro@gcc.gnu.org>
From-SVN: r261975
Kelvin Nilsen [Fri, 22 Jun 2018 22:28:49 +0000 (22:28 +0000)]
rs6000-c.c (altivec_overloaded_builtins): Change behavior of vec_pack (vector double...
gcc/ChangeLog:
2018-06-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change
behavior of vec_pack (vector double, vector double) to match
behavior of vec_float2 (vector double, vector double).
gcc/testsuite/ChangeLog:
2018-06-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
* gcc.target/powerpc/builtins-3-p8.c (test_pack_float): Remove
this test.
* gcc.target/powerpc/builtins-9.c: New test.
* gcc.target/powerpc/fold-vec-pack-double.c: Modify dg directives
to expect different code generation on big-endian vs.
little-endian targets.
From-SVN: r261974
Jason Merrill [Fri, 22 Jun 2018 21:57:07 +0000 (17:57 -0400)]
PR c++/86219 - ICE with erroneous initializer in template.
* constexpr.c (fold_non_dependent_expr): Add complain parm.
* call.c, expr.c, init.c, pt.c, semantics.c, typeck.c, typeck2.c:
Pass it.
* call.c (build_cxx_call): Don't mess with builtins in a template.
* typeck2.c (store_init_value): If fold_non_dependent_expr didn't
produce a constant value, go back to the uninstantiated form.
From-SVN: r261972
Jason Merrill [Fri, 22 Jun 2018 21:57:01 +0000 (17:57 -0400)]
Avoid taking the address of something just because it's in parens.
* constexpr.c (same_type_ignoring_tlq_and_bounds_p): New.
(cxx_fold_indirect_ref): Use it.
(cxx_eval_constant_expression) [VIEW_CONVERT_EXPR]: Use it.
* cp-tree.h (REF_PARENTHESIZED_P): Allow VIEW_CONVERT_EXPR.
* semantics.c (force_paren_expr): Use VIEW_CONVERT_EXPR instead of
static_cast to reference type.
(maybe_undo_parenthesized_ref): Handle VIEW_CONVERT_EXPR.
From-SVN: r261971
Tom de Vries [Fri, 22 Jun 2018 20:56:08 +0000 (20:56 +0000)]
[testsuite/guality] Use buildarea gdb by default in combined build
2018-06-22 Tom de Vries <tdevries@suse.de>
* g++.dg/guality/guality.exp (guality_gdb_name): Default to
$rootme/../gdb/gdb, if available.
* gcc.dg/guality/guality.exp (guality_gdb_name): Same.
* gfortran.dg/guality/guality.exp (guality_gdb_name): Same.
From-SVN: r261935
Tom de Vries [Fri, 22 Jun 2018 19:50:03 +0000 (19:50 +0000)]
[testsuite/guality] Be verbose about gdb version used
2018-06-22 Tom de Vries <tdevries@suse.de>
* lib/gcc-gdb-test.exp (report_gdb): New proc.
* g++.dg/guality/guality.exp: Use report_gdb.
* gcc.dg/guality/guality.exp: Same.
* gfortran.dg/guality/guality.exp: Same.
From-SVN: r261911
Jakub Jelinek [Fri, 22 Jun 2018 17:22:43 +0000 (19:22 +0200)]
re PR c++/85662 ("error: non-constant condition for static assertion" from __builtin_offsetof in C++)
PR c++/85662
* g++.dg/ext/offsetof3.C: New test.
From-SVN: r261909
Olivier Hainque [Fri, 22 Jun 2018 16:46:22 +0000 (16:46 +0000)]
Improve entry/exit instrumentation for nested functions
2018-06-22 Olivier Hainque <hainque@adacore.com>
* gimplify.c (gimplify_function_tree): Prevent creation
of a trampoline for the address of the current function
passed to entry/exit instrumentation hooks.
From-SVN: r261908
Aaron Sawdey [Fri, 22 Jun 2018 15:37:36 +0000 (10:37 -0500)]
Forgot PR target/86222 in ChangeLog
From-SVN: r261906
Aaron Sawdey [Fri, 22 Jun 2018 15:36:31 +0000 (15:36 +0000)]
rs6000-string.c (expand_strn_compare): Handle -m32 correctly.
2018-06-22 Aaron Sawdey <acsawdey@linux.ibm.com>
* config/rs6000/rs6000-string.c (expand_strn_compare): Handle -m32
correctly.
From-SVN: r261905
Carl Love [Fri, 22 Jun 2018 15:01:34 +0000 (15:01 +0000)]
altivec-7.c: Add qualifiers for counts on AIX versus Linux.
gcc/testsuite/ChangeLog:
2018-06-22 Carl Love <cel@us.ibm.com>
* gcc.target/powerpc/altivec-7.c: Add qualifiers for counts on AIX
versus Linux. Change checks for xxlnor, xxland and xxlxor to also look
for the vnor, vand and vxor instructions.
* gcc.target/powerpc/builtins-1.c: Move vec_or tests to a new file.
Remove counts for xxlor. Fix match on bl __divdi3 and bl __udivdi3.
* gcc.target/powerpc/builtins-4.c: Fix matching for vsl instructions.
* gcc.target/powerpc/builtins-5.c: New test file for vec_or test cases.
* gcc.target/powerpc/vsx-vector-6.p7.c: Fix xxlnor BE expected count.
Add -dp to dg-options, update expected counts.
From-SVN: r261904
Paul Koning [Fri, 22 Jun 2018 14:34:37 +0000 (10:34 -0400)]
Fix test case failures for pdp11 target.
* gcc.c-torture/execute/builtins/lib/chk.c: Use smaller alignment
if pdp11.
* gcc.c-torture/compile/
20010518-2.c: Skip if pdp11 -mint32.
* gcc.c-torture/compile/
20040101-1.c: Ditto.
* gcc.c-torture/compile/
20050622-1.c: Ditto.
* gcc.c-torture/compile/
20080625-1.c: Ditto.
* gcc.c-torture/compile/
20090107-1.c: Ditto.
* gcc.c-torture/compile/920501-12.c: Ditto.
* gcc.c-torture/compile/920501-4.c: Ditto.
* gcc.c-torture/compile/961203-1.c: Ditto.
* gcc.c-torture/compile/limits-externdecl.c: Ditto.
* gcc.c-torture/compile/pr25310.c: Ditto.
From-SVN: r261897
Ian Lance Taylor [Fri, 22 Jun 2018 14:25:52 +0000 (14:25 +0000)]
syscall: remove Ustat
glibc 2.28 removes ustat.h and the ustat function entirely, which
breaks syscall.Ustat.
Updates golang/go#25990
Reviewed-on: https://go-review.googlesource.com/120535
From-SVN: r261896
Jonathan Wakely [Fri, 22 Jun 2018 14:19:12 +0000 (15:19 +0100)]
Fix unexported basic_string symbols for 32-bit targets
* config/abi/pre/gnu.ver: Fix __cxx11::basic_string patterns for
different size_t mangling on 32-bit targets.
From-SVN: r261892
Jonathan Wakely [Fri, 22 Jun 2018 13:05:20 +0000 (14:05 +0100)]
PR libstdc++/86280 fix undefined left shift on 32-bit targets
PR libstdc++/86280
* include/experimental/memory_resource
(__resource_adaptor_common::_AlignMgr::_M_token_size): Use type large
enough for result of left shift.
From-SVN: r261888
Martin Liska [Fri, 22 Jun 2018 11:32:20 +0000 (13:32 +0200)]
Fix emission of jump tables (PR tree-optimization/86263).
2018-06-22 Martin Liska <mliska@suse.cz>
PR tree-optimization/86263
* tree-switch-conversion.c (jump_table_cluster::find_jump_tables):
Bail out if is_enabled is false.
* tree-switch-conversion.h (jump_table_cluster::is_enabled):
New declaration.
(jump_table_cluster::is_enabled): New function.
From-SVN: r261886
Jan Hubicka [Fri, 22 Jun 2018 10:09:10 +0000 (12:09 +0200)]
lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream BINFO_BASE_ACCESSES and BINFO_VPTR_FIELD.
* lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream
BINFO_BASE_ACCESSES and BINFO_VPTR_FIELD.
* tree-streamer-in.c (streamer_read_tree_bitfields): Likewise.
(lto_input_ts_binfo_tree_pointers): Likewise.
* tree-streamer-out.c (streamer_write_tree_bitfields,
write_ts_binfo_tree_pointers): Likewise.
* tree.c (free_lang_data_in_binfo): Clear BINFO_VPTR_FIELD.
From-SVN: r261885
Cesar Philippidis [Fri, 22 Jun 2018 10:04:14 +0000 (03:04 -0700)]
Update OpenACC testcases
gcc/testsuite/
* c-c++-common/goacc/deviceptr-4.c: New file.
* c-c++-common/goacc/kernels-counter-var-redundant-load.c:
Likewise.
* c-c++-common/goacc/kernels-loop-data-2.c: Likewise.
* c-c++-common/goacc/kernels-loop-data-enter-exit-2.c: Likewise.
* c-c++-common/goacc/kernels-loop-data-enter-exit.c: Likewise.
* c-c++-common/goacc/kernels-loop-data-update.c: Likewise.
* c-c++-common/goacc/kernels-loop-data.c: Likewise.
* c-c++-common/goacc/kernels-parallel-loop-data-enter-exit.c:
Likewise.
* c-c++-common/goacc/parallel-reduction.c: Likewise.
* c-c++-common/goacc/private-reduction-1.c: Likewise.
* gfortran.dg/goacc/kernels-parallel-loop-data-enter-exit.f95:
Likewise.
* gfortran.dg/goacc/modules.f95: Likewise.
* gfortran.dg/goacc/routine-8.f90: Likewise.
* gfortran.dg/goacc/routine-level-of-parallelism-1.f90: Likewise.
libgomp/
* testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Don't force "-O2".
* testsuite/libgomp.oacc-c-c++-common/data-2.c: Update.
* testsuite/libgomp.oacc-c-c++-common/host_data-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/mode-transitions.c: Likewise.
* testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
* testsuite/libgomp.oacc-c++/non-scalar-data.C: New file.
* testsuite/libgomp.oacc-c-c++-common/declare-3.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/enter-data.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-update.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-3.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-4.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-local-worker-5.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-3.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-4.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-5.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-gang-6.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-vector-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-vector-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-2.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-3.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-4.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-5.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-6.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-private-vars-loop-worker-7.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/kernels-reduction-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/parallel-loop-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/parallel-loop-1.h: Likewise.
* testsuite/libgomp.oacc-c-c++-common/parallel-loop-2.h: Likewise.
* testsuite/libgomp.oacc-fortran/cublas-fixed.h: Likewise.
* testsuite/libgomp.oacc-fortran/dummy-array.f90: Likewise.
* testsuite/libgomp.oacc-fortran/host_data-2.f90: Likewise.
* testsuite/libgomp.oacc-fortran/host_data-3.f: Likewise.
* testsuite/libgomp.oacc-fortran/host_data-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction-2.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-acc-loop-reduction.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-collapse-3.f90: Likewise.
* testsuite/libgomp.oacc-fortran/kernels-collapse-4.f90: Likewise.
* testsuite/libgomp.oacc-fortran/kernels-independent.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-loop-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/kernels-map-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/kernels-parallel-loop-data-enter-exit.f95:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-1.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-2.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-3.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-gang-6.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-vector-1.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-vector-2.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-1.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-2.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-3.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-4.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-5.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-6.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-private-vars-loop-worker-7.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/kernels-reduction-1.f90:
Likewise.
* testsuite/libgomp.oacc-fortran/lib-12.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-13.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-14.f90: Likewise.
* testsuite/libgomp.oacc-fortran/lib-15.f90: Likewise.
* testsuite/libgomp.oacc-fortran/parallel-loop-1.f90: Likewise.
* testsuite/libgomp.oacc-fortran/reference-reductions.f90: Likewise.
* testsuite/libgomp.oacc-fortran/vector-routine.f90: Likewise.
Co-Authored-By: James Norris <jnorris@codesourcery.com>
Co-Authored-By: Julian Brown <julian@codesourcery.com>
Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com>
Co-Authored-By: Tom de Vries <tom@codesourcery.com>
From-SVN: r261884
Jan Hubicka [Fri, 22 Jun 2018 09:45:54 +0000 (11:45 +0200)]
* tree.c (free_lang_data_in_type): Free all TYPE_VFIELDs.
From-SVN: r261883
Martin Liska [Fri, 22 Jun 2018 08:56:18 +0000 (10:56 +0200)]
Make symbol_summary::get and call_summary::get pure.
2018-06-22 Martin Liska <mliska@suse.cz>
* symbol-summary.h (get): Make it pure and inline move
functionality from ::get function.
(get): Remove and inline into ::get and ::get_create.
(get_create): Move code from ::get function.
From-SVN: r261882
Rainer Orth [Fri, 22 Jun 2018 06:19:14 +0000 (06:19 +0000)]
Don't preprocess .S files with -P on Solaris/x86 (PR target/85994)
PR target/85994
* config/i386/sol2.h (CPP_SPEC): Don't pass -P for
-x assembler-with-cpp.
From-SVN: r261880
Rainer Orth [Fri, 22 Jun 2018 06:16:00 +0000 (06:16 +0000)]
Have g++ define _FILE_OFFSET_BITS=64 on Solaris
* config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
_FILE_OFFSET_BITS=64 for C++.
From-SVN: r261879
François Dumont [Fri, 22 Jun 2018 05:23:47 +0000 (05:23 +0000)]
2018-06-21 François Dumont <fdumont@gcc.gnu.org>
Fix this ChangeLog entry.
From-SVN: r261878
GCC Administrator [Fri, 22 Jun 2018 00:16:44 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r261877
Jonathan Wakely [Thu, 21 Jun 2018 23:29:01 +0000 (00:29 +0100)]
PR libstdc++/86138 prevent implicit instantiation of COW empty rep
The explicit instantiation declarations for std::basic_string are
disabled for C++17 (and later) so that basic_string symbols get
implicitly instantiated in every translation unit that needs them. On
targets that don't support STB_GNU_UNIQUE this leads to multiple copies
of the empty rep symbol for COW strings. In order to detect whether a
COW string needs to deallocate its storage it compares the address with
the empty rep. When there are multiple copies of the empty rep object
the address is not unique, and so string destructors try to delete the
empty rep, which crashes.
In order to guarantee uniqueness of the _S_empty_rep_storage symbol this
patch adds an explicit instantiation declaration for just that symbol.
This means the other symbols are still implicitly instantiated in C++17
code, but for the empty rep the definition in the library gets used.
Separately, there is no need for C++17 code to implicitly instantiate
the I/O functions for strings, so this also restores the explicit
instantiation declarations for those functions.
PR libstdc++/86138
* include/bits/basic_string.tcc:
[__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI]
(basic_string<char>::_Rep::_S_empty_rep_storage)
(basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit
instantiation declarations.
[__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable
explicit instantiation declarations.
* testsuite/21_strings/basic_string/cons/char/86138.cc: New.
* testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New.
From-SVN: r261873
Michael Meissner [Thu, 21 Jun 2018 23:13:25 +0000 (23:13 +0000)]
pack02.c: Use __ibm128 instead of long double if the long double format is IEEE 128-bit...
2018-06-21 Michael Meissner <meissner@linux.ibm.com>
* gcc.target/powerpc/pack02.c: Use __ibm128 instead of long double
if the long double format is IEEE 128-bit for tests that are
explicitly testing IBM extended double support. Use the
appropriate pack and unpack built-in functions. Change calls from
__builtin_isinfl to __builtin_isinf since the later supports all
floating point types.
* gcc.target/powerpc/pr57150.c: Likewise.
* gcc.target/powerpc/pr60203.c: Likewise.
* gcc.target/powerpc/pr67808.c: Likewise.
* gcc.target/powerpc/pr70117.c: Likewise.
* gcc.target/powerpc/tfmode_off.c: Likewise.
From-SVN: r261872