gcc.git
5 years agod/dmd: Merge upstream dmd c185f9df1
Iain Buclaw [Fri, 12 Apr 2019 06:24:53 +0000 (06:24 +0000)]
d/dmd: Merge upstream dmd c185f9df1

Adds new virtual isVersionCondition, this is so that in the code
generation pass, a ConditionDeclaration's condition can be identified
without requiring a Visitor function.

Reviewed-on: https://github.com/dlang/dmd/pull/9591

From-SVN: r270300

5 years agoDaily bump.
GCC Administrator [Fri, 12 Apr 2019 00:16:31 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r270299

5 years agolibphobos: Merge upstream phobos cf95639ff
Iain Buclaw [Thu, 11 Apr 2019 21:11:15 +0000 (21:11 +0000)]
libphobos: Merge upstream phobos cf95639ff

Backports ports committed to upstream phobos since the last sync.

Reviewed-on: https://github.com/dlang/phobos/pull/6947

From-SVN: r270296

5 years agolibphobos: Merge upstream druntime 175bf5fc
Iain Buclaw [Thu, 11 Apr 2019 21:11:03 +0000 (21:11 +0000)]
libphobos: Merge upstream druntime 175bf5fc

Backports extern(C) bindings committed to upstream druntime since the
last sync.

Reviewed-on: https://github.com/dlang/druntime/pull/2552

From-SVN: r270295

5 years agod/dmd: Merge upstream dmd d7ed327ed
Iain Buclaw [Thu, 11 Apr 2019 21:10:49 +0000 (21:10 +0000)]
d/dmd: Merge upstream dmd d7ed327ed

Fixes ICE when accessing empty array in CTFE.

Reviewed-on: https://github.com/dlang/dmd/pull/9563

From-SVN: r270294

5 years agoReplace direct PSTL uses of assert() with a macro
Thomas Rodgers [Thu, 11 Apr 2019 20:40:40 +0000 (20:40 +0000)]
Replace direct PSTL uses of assert() with a macro

This also replaces calls to __TBB_ASSERT so that there are two macro
definitions provided by c++config -
    __PSTL_ASSERT(_Condition)
    __PSTL_ASSERT_MSG(_Condition, _Message)

    * include/bits/c++config:
    Add definition for __PSTL_ASSERT.
    Add definition for __PSTL_ASSERT_MSG.
    * include/pstl/algorithm_impl.h: Replace use of assert().
    * include/pstl/numeric_impl.h: Replace use of assert().
    * include/pstl/parallel_backend_tbb.h:
    Replace use of assert().
    Replace use of __TBB_ASSERT().

    * include/pstl/parallel_backend_utils.h: Replace use of assert().

From-SVN: r270293

5 years agore PR translation/89939 (messages for translation must not contain embedded macro...
Thomas Koenig [Thu, 11 Apr 2019 20:14:27 +0000 (20:14 +0000)]
re PR translation/89939 (messages for translation must not contain embedded macro parameters)

2019-04-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR translation/89939
* frontend-passes.c (B_ERROR): Delete macro.
(C_ERROR): Delete macro.
(B_ERROR_1): New macro.
(C_ERROR_1): New macro.
(C_ERROR_2): New macro.
(inline_matmul_assign): Use new macros.
(call_external_blas): Likewise.

From-SVN: r270292

5 years agoPR libstdc++/90046 fix build failure on epiphany-elf
Jonathan Wakely [Thu, 11 Apr 2019 19:58:14 +0000 (20:58 +0100)]
PR libstdc++/90046 fix build failure on epiphany-elf

The epiphany-elf target aligns structs to 8 bytes, which causes the
static_assert(alignof(_Chunk) == 1) to fail.

Instead of requiring _Chunks to be positionable at any alignment, ensure
new buffers are aligned to alignof(_Chunk). Because the buffer size is a
power of two, we know that both the buffer size and sizeof(_Chunk) are
multiples of alignof(_Chunk). So is p is aligned to alignof(_Chunk) then
so is (p + size - sizeof(_Chunk)). So just ensure the new buffer is
aligned to at least alignof(_Chunk), which should already be true
because the caller requests at least alignof(max_align_t).

PR libstdc++/90046
* src/c++17/memory_resource.cc
(monotonic_buffer_resource::_Chunk::allocate): Increase alignment if
needed to allow placing a _Chunk at the end of the buffer.
(monotonic_buffer_resource::_M_new_buffer): Remove static_assert.

From-SVN: r270291

5 years agore PR rtl-optimization/87763 (aarch64 target testcases fail after r265398)
Steve Ellcey [Thu, 11 Apr 2019 18:03:49 +0000 (18:03 +0000)]
re PR rtl-optimization/87763 (aarch64 target testcases fail after r265398)

2018-04-11  Steve Ellcey  <sellcey@marvell.com>

PR rtl-optimization/87763
* gcc.target/aarch64/combine_bfxil.c: Change some bfxil checks
to bfi.

From-SVN: r270289

5 years agore PR rtl-optimization/87763 (aarch64 target testcases fail after r265398)
Steve Ellcey [Thu, 11 Apr 2019 18:02:41 +0000 (18:02 +0000)]
re PR rtl-optimization/87763 (aarch64 target testcases fail after r265398)

2018-04-11  Steve Ellcey  <sellcey@marvell.com>

PR rtl-optimization/87763
* config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
New Instruction.

From-SVN: r270288

5 years ago[doc] Note variable shadowing at max macro using statement expression
Tom de Vries [Thu, 11 Apr 2019 15:36:59 +0000 (15:36 +0000)]
[doc] Note variable shadowing at max macro using statement expression

When suggesting to rewrite the unsafe (with respect to multiple evaluation of
arguments) macro definition:
...
  #define max(a,b) ((a) > (b) ? (a) : (b))
...
into the safe macro definition:
...
  #define maxint(a,b) \
    ({int _a = (a), _b = (b); _a > _b ? _a : _b; })
...
mention the variable shadowing problem for:
...
  #define maxint3(a, b, c) \
    ({int _a = (a), _b = (b), _c = (c); maxint (maxint (_a, _b), _c); })
...

2019-04-11  Tom de Vries  <tdevries@suse.de>

* doc/extend.texi (@node Statement Exprs): Note variable shadowing at
max macro using statement expression.

From-SVN: r270287

5 years agore PR translation/90035 (Non-translatable C++ parser diagnostics)
Jakub Jelinek [Thu, 11 Apr 2019 15:28:18 +0000 (17:28 +0200)]
re PR translation/90035 (Non-translatable C++ parser diagnostics)

PR translation/90035
* parser.h (struct cp_parser): Add
type_definition_forbidden_message_arg member.
* parser.c (cp_debug_parser): Print it.
(cp_parser_check_type_definition): Pass
parser->type_definition_forbidden_message_arg as second argument to
error.
(cp_parser_has_attribute_expression, cp_parser_sizeof_operand): Set
parser->type_definition_forbidden_message_arg and use G_() with
%qs for parser->type_definition_forbidden_message instead of
building untranslatable message using concat.

From-SVN: r270286

5 years agoxcoffout.h (xcoff_private_rodata_section_name): Declare.
David Edelsohn [Thu, 11 Apr 2019 14:14:35 +0000 (14:14 +0000)]
xcoffout.h (xcoff_private_rodata_section_name): Declare.

        * xcoffout.h (xcoff_private_rodata_section_name): Declare.
        * xcoffout.c (xcoff_private_rodata_section_name): Define.
        * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
        read_only_private_data_section using xcoff_private_rodata_section_name.
        (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.

From-SVN: r270284

5 years ago[aarch64] PR90016 - aarch64: reference to undeclared N in help for command line option
Christophe Lyon [Thu, 11 Apr 2019 10:56:08 +0000 (10:56 +0000)]
[aarch64] PR90016 - aarch64: reference to undeclared N in help for command line option

2019-04-11  Christophe Lyon  <christophe.lyon@linaro.org>

PR target/90016
* config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.

From-SVN: r270280

5 years agore PR rtl-optimization/89965 (wrong code with -O -mtune=nano-x2 -fcaller-saves -fexpe...
Jakub Jelinek [Thu, 11 Apr 2019 09:02:47 +0000 (11:02 +0200)]
re PR rtl-optimization/89965 (wrong code with -O -mtune=nano-x2 -fcaller-saves -fexpensive-optimizations -fno-tree-dce -fno-tree-ter)

PR rtl-optimization/89965
* dce.c (sp_based_mem_offset): New function.
(find_call_stack_args): Use sp_based_mem_offset.

From-SVN: r270278

5 years agoClarify documentation for -flive-patching
Jonathan Wakely [Thu, 11 Apr 2019 08:52:22 +0000 (09:52 +0100)]
Clarify documentation for -flive-patching

* doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.

From-SVN: r270276

5 years agore PR tree-optimization/90020 (-O2 -Os x86-64 wrong code generated for GNU Emacs)
Richard Biener [Thu, 11 Apr 2019 07:34:20 +0000 (07:34 +0000)]
re PR tree-optimization/90020 (-O2 -Os x86-64 wrong code generated for GNU Emacs)

2019-04-11  Richard Biener  <rguenther@suse.de>

PR tree-optimization/90020
* tree-ssa-sccvn.c (vn_reference_may_trap): New function.
* tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
* tree-ssa-pre.c (compute_avail): Use it to not put
possibly trapping references after a call that might not
return into EXP_GEN.
* gcse.c (compute_hash_table_work): Do not elide
marking a block containing a call if the call might not
return.

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

From-SVN: r270275

5 years agore PR tree-optimization/90018 (r265453 miscompiled 527.cam4_r in SPEC CPU 2017)
Richard Biener [Thu, 11 Apr 2019 07:30:59 +0000 (07:30 +0000)]
re PR tree-optimization/90018 (r265453 miscompiled 527.cam4_r in SPEC CPU 2017)

2019-04-11  Richard Biener  <rguenther@suse.de>

PR tree-optimization/90018
* tree-vect-data-refs.c (vect_preserves_scalar_order_p):
Test both SLP and interleaving variants.

* gcc.dg/vect/pr90018.c: New testcase.

From-SVN: r270273

5 years agoS/390: Add arch13 pipeline and model number
Robin Dapp [Thu, 11 Apr 2019 07:04:03 +0000 (07:04 +0000)]
S/390: Add arch13 pipeline and model number

This patch adds the pipeline description and the CPU model number for
arch13.

From-SVN: r270272

5 years agoDaily bump.
GCC Administrator [Thu, 11 Apr 2019 00:16:32 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r270271

5 years agore PR rtl-optimization/87763 (aarch64 target testcases fail after r265398)
Steve Ellcey [Wed, 10 Apr 2019 20:29:57 +0000 (20:29 +0000)]
re PR rtl-optimization/87763 (aarch64 target testcases fail after r265398)

2018-04-10  Steve Ellcey  <sellcey@marvell.com>

PR rtl-optimization/87763
* gcc.target/aarch64/combine_bfxil.c: Change some bfxil checks
to bfi.
* gcc.target/aarch64/combine_bfi_2.c: New test.

From-SVN: r270267

5 years agore PR rtl-optimization/87763 (aarch64 target testcases fail after r265398)
Steve Ellcey [Wed, 10 Apr 2019 20:28:19 +0000 (20:28 +0000)]
re PR rtl-optimization/87763 (aarch64 target testcases fail after r265398)

2018-04-10  Steve Ellcey  <sellcey@marvell.com>

PR rtl-optimization/87763
* config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
New prototype.
* config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
New function.
* config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
New instruction.
(*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
(*aarch64_bfi<GPI:mode>4_noand): Ditto.
(*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
(*aarch64_bfi<GPI:mode>4_noshift): Ditto.

From-SVN: r270266

5 years agoUpdate documentation regarding bogus memory leaks in libstdc++
Jonathan Wakely [Wed, 10 Apr 2019 19:24:04 +0000 (20:24 +0100)]
Update documentation regarding bogus memory leaks in libstdc++

* doc/xml/faq.xml: Add information about emergency EH pool.
* doc/xml/manual/debug.xml: Update list of memory debugging tools.
Move outdated information on mt_allocator to a separate section.
* doc/xml/manual/evolution.xml: Clarify that GLIBCXX_FORCE_NEW
doesn't affect the default allocator.

From-SVN: r270264

5 years agoChange wording of -fipa-icf documentation
Jonathan Wakely [Wed, 10 Apr 2019 14:55:01 +0000 (15:55 +0100)]
Change wording of -fipa-icf documentation

* doc/invoke.texi (Optimize Options): Change "Nevertheless" to
"Although" in -fipa-icf documentation.

From-SVN: r270260

5 years agoFix typo in effective-target check
Jonathan Wakely [Wed, 10 Apr 2019 14:46:03 +0000 (15:46 +0100)]
Fix typo in effective-target check

* testsuite/lib/libstdc++.exp (check_v3_target_parallel_mode): Fix
typo.

From-SVN: r270259

5 years agoFix a stack exhaustion bug in libiberty's demangler when decoding a pathalogically...
Nick Clifton [Wed, 10 Apr 2019 14:44:47 +0000 (14:44 +0000)]
Fix a stack exhaustion bug in libiberty's demangler when decoding a pathalogically constructed mangled name.

PR 89394
* cp-demangle.c (cplus_demangle_fill_name): Reject negative
lengths.
(d_count_templates_scopes): Replace num_templates and num_scopes
parameters with a struct d_print_info pointer parameter.  Adjust
body of the function accordingly.  Add recursion counter and check
that the recursion limit is not reached.
(d_print_init): Pass dpi parameter to d_count_templates_scopes.
Reset recursion counter afterwards, unless the recursion limit was
reached.

From-SVN: r270258

5 years agoClearly document behaviour of multiple -g options
Jonathan Wakely [Wed, 10 Apr 2019 14:39:59 +0000 (15:39 +0100)]
Clearly document behaviour of multiple -g options

This copies the wording from the -O options to clearly state what
happens if more than one -g option is used.

* doc/invoke.texi (Debugging Options): Explicitly state the semantics
of using multiple -g options.

From-SVN: r270257

5 years agoMake gcov docs more precise (PR gcov-profile/89959).
Martin Liska [Wed, 10 Apr 2019 11:44:08 +0000 (13:44 +0200)]
Make gcov docs more precise (PR gcov-profile/89959).

2019-04-10  Martin Liska  <mliska@suse.cz>

PR gcov-profile/89959
* doc/gcov.texi: Make documentation of -x option
more precise.

From-SVN: r270251

5 years agotree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt member.
Richard Biener [Wed, 10 Apr 2019 11:25:10 +0000 (11:25 +0000)]
tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt member.

2019-04-10  Richard Biener  <rguenther@suse.de>

* tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
member.
(DR_GROUP_SAME_DR_STMT): Remove.
* tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
* tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
replace with assert.
(vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
(vect_record_grouped_load_vectors): Remove unreachable code.

From-SVN: r270250

5 years agoPR libstdc++/89851 Add testcase for std::variant equality
Jonathan Wakely [Wed, 10 Apr 2019 10:43:39 +0000 (11:43 +0100)]
PR libstdc++/89851 Add testcase for std::variant equality

Add a test for the regression introduced with r269422 and fixed with
r270056.

PR libstdc++/89851
* testsuite/20_util/variant/89851.cc: New test.

From-SVN: r270249

5 years ago[aarch64] PR90016 - aarch64: reference to undeclared N in help for command line option
Richard Earnshaw [Wed, 10 Apr 2019 09:51:16 +0000 (09:51 +0000)]
[aarch64] PR90016 - aarch64: reference to undeclared N in help for command line option

'to N' is now redundant and misleading given the earlier change to use
<number>.

Removed.

PR target/90016
* config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
obsolete reference to N.

From-SVN: r270248

5 years agore PR middle-end/90025 (botan2 miscompilation on s390x-linux since r268957)
Jakub Jelinek [Wed, 10 Apr 2019 07:28:05 +0000 (09:28 +0200)]
re PR middle-end/90025 (botan2 miscompilation on s390x-linux since r268957)

PR middle-end/90025
* expr.c (store_expr): Set properly size on the MEM passed to
clear_storage.

* gcc.c-torture/execute/pr90025.c: New test.

From-SVN: r270247

5 years agore PR c++/90010 (valgrind error with snprintf and -Wall)
Jakub Jelinek [Wed, 10 Apr 2019 07:27:20 +0000 (09:27 +0200)]
re PR c++/90010 (valgrind error with snprintf and -Wall)

PR c++/90010
* gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
with strlen in between hostsz-3 and hostsz-1 inclusive when no
translation is needed, and when translation is needed, only append
... if the string length is hostsz or more bytes long.  Avoid using
strncpy or strcat.

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

From-SVN: r270246

5 years agoDaily bump.
GCC Administrator [Wed, 10 Apr 2019 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r270245

5 years agoc-ada-spec.c (print_destructor): Deal with deleting destructors.
Eric Botcazou [Tue, 9 Apr 2019 19:29:17 +0000 (19:29 +0000)]
c-ada-spec.c (print_destructor): Deal with deleting destructors.

* c-ada-spec.c (print_destructor): Deal with deleting destructors.
(dump_ada_declaration) <FUNCTION_DECL>: Likewise.

From-SVN: r270239

5 years agoAdd comments and style fixes to <variant>
Jonathan Wakely [Tue, 9 Apr 2019 18:50:48 +0000 (19:50 +0100)]
Add comments and style fixes to <variant>

* include/std/variant: Adjust whitespace. Add comments.
(_Multi_array): Leave primary template undefined.
(_Multi_array<_Tp>): Define partial specialization for base case of
recursion.
(__gen_vtable_impl, __gen_vtable): Remove redundant && from type
which is always a reference.
(__gen_vtable::_S_apply()): Remove function, inline body into
default member initializer.
* testsuite/20_util/variant/visit.cc: Test with noncopyable types.

From-SVN: r270238

5 years agoFix std::visit to support arbitrary callables
Jonathan Wakely [Tue, 9 Apr 2019 18:50:43 +0000 (19:50 +0100)]
Fix std::visit to support arbitrary callables

The __visitor_result_type helper didn't use std::invoke and so didn't
compile when the visitor was a pointer-to-member rather than a function
object. Use std::invoke_result instead.

* include/std/variant (__variant_idx_cookie): Add member type.
(__visitor_result_type): Remove.
(__do_visit): Use invoke_result instead of __visitor_result_type.
* testsuite/20_util/variant/visit.cc: New test.

From-SVN: r270237

5 years agoPR libstdc++/90008 remove unused capture from variant rel ops
Jonathan Wakely [Tue, 9 Apr 2019 18:50:39 +0000 (19:50 +0100)]
PR libstdc++/90008 remove unused capture from variant rel ops

PR libstdc++/90008
* include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Remove
unused capture.
* testsuite/20_util/variant/90008.cc: New test.

From-SVN: r270236

5 years ago* gcc.target/i386/ifcvt-onecmpl-abs-1.c
Uros Bizjak [Tue, 9 Apr 2019 18:16:14 +0000 (20:16 +0200)]
* gcc.target/i386/ifcvt-onecmpl-abs-1.c
(dg-options): Use -O2 -fdump-rtl-ce1.
(dg-final): Scan ce1 RTL dump instead of asm dump.

From-SVN: r270234

5 years agoAdd PSTL internal namespace qualifications
Thomas Rodgers [Tue, 9 Apr 2019 15:45:26 +0000 (15:45 +0000)]
Add PSTL internal namespace qualifications

* include/pstl/algorithm_impl.h: Add namespace qualification.
* include/pstl/execution_defs.h: Add namespace qualification.
* include/pstl/execution_impl.h: Add namespace qualification.
* include/pstl/numeric_impl.h: Add namespace qualification.
* include/pstl/parallel_backend_tbb.h: Add namespace qualification.
* include/pstl/unseq_backend_simd.h: Add namespace qualification.
* include/pstl/parallel_backend_utils.h: Include <cassert>.

From-SVN: r270231

5 years agore PR translation/90011 (trailing space in diagnostic)
Jakub Jelinek [Tue, 9 Apr 2019 13:19:16 +0000 (15:19 +0200)]
re PR translation/90011 (trailing space in diagnostic)

PR translation/90011
* typeck2.c (check_narrowing): Remove trailing space from diagnostics.

From-SVN: r270229

5 years agoHi there,
Matthew Malcomson [Tue, 9 Apr 2019 11:39:59 +0000 (11:39 +0000)]
Hi there,

The "*neon_mov<mode>" patterns for 128 bit sized quantities uses the "Dn"
constraint to match vmov.f32 and vmov.i<vec-width> patterns.
This constraint boils down to using the `neon_immediate_valid` function.
Once the constraint has matched, the output C statement asserts that function
passes.

The output C statement calls `neon_immediate_valid` with the mode taken from the
iterator, while the constraint takes the mode from the operand.
This can cause a discrepency when the operand is a CONST_INT, as the constraint
passes VOIDmode which `neon_immediate_valid` treats as DImode, while the C
statement passes the mode of the iterator which can be TImode.
When this happens, the `neon_immediate_valid` can fail in the second call (if
e.g. the CONST_INT is a valid immediate in DImode but not TImode) which would
trigger the assertion.

The testcase added with this patch triggers this when compiled with an arm cross
compiler using the command line below.
gcc -march=armv8-a -c neon-immediate-timode.c -O1 -mfloat-abi=hard -mfpu=neon-fp-armv8

This patch splits the original "Dn" constraint into three new constraints, "DN"
for TImode CONST_INT, "Dn" for DImode CONST_INT, and "Dm" for CONST_VECTOR.
Splitting things up this way requires using one extra alternative in the
"*neon_mov<mode>" patterns, but makes it clear from the constraint what mode is
being used.

We also remove the behaviour of treating VOIDmode as DImode in
`neon_valid_immediate` since the original "Dn" constraint was the only place
that functionality was used.  VOIDmode is now never passed to that function.
An assertion has been added to the function to ensure this problem is caught
earlier on.

Bootstrapped on arm-none-linux-gnueabihf
Regtested on cross-compiler arm-none-eabi

gcc/ChangeLog:

2019-04-09  Matthew Malcomson  <matthew.malcomson@arm.com>

PR target/90024
* config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
* config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
into three.
* config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
differences directly.
(*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.

gcc/testsuite/ChangeLog:

2019-04-09  Matthew Malcomson  <matthew.malcomson@arm.com>

PR target/90024
* gcc.dg/torture/neon-immediate-timode.c: New test.

From-SVN: r270226

5 years agore PR translation/90011 (trailing space in diagnostic)
Jakub Jelinek [Tue, 9 Apr 2019 10:27:14 +0000 (12:27 +0200)]
re PR translation/90011 (trailing space in diagnostic)

PR translation/90011
* ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
from diagnostics.
* config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
diagnostics.
* config/riscv/freebsd.h (LINK_SPEC): Likewise.
* config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
* config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
trailing space from -gsplit-dwarf diagnostics.

From-SVN: r270225

5 years agore PR middle-end/89998 (ICE: verify_gimple failed in printf-return-value)
Jakub Jelinek [Tue, 9 Apr 2019 10:26:13 +0000 (12:26 +0200)]
re PR middle-end/89998 (ICE: verify_gimple failed in printf-return-value)

PR tree-optimization/89998
* gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
instead of integer_type_node if possible, don't add ranges if return
type is not compatible with int.
* gimple-fold.c (gimple_fold_builtin_sprintf,
gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
integer_type_node.

* gcc.c-torture/compile/pr89998-1.c: New test.
* gcc.c-torture/compile/pr89998-2.c: New test.

From-SVN: r270224

5 years agoCome up with bootstrap-lto-lean config.
Martin Liska [Tue, 9 Apr 2019 08:49:14 +0000 (10:49 +0200)]
Come up with bootstrap-lto-lean config.

2019-04-09  Martin Liska  <mliska@suse.cz>

* Makefile.in: Regenerate.
* Makefile.tpl: Pass GENERATOR_CFLAGS
in all stages.
2019-04-09  Martin Liska  <mliska@suse.cz>

* bootstrap-lto-lean.mk: New file.
2019-04-09  Martin Liska  <mliska@suse.cz>

* Makefile.in: Use GENERATOR_CFLAGS for all generators.
* doc/install.texi: Document the new config.

From-SVN: r270223

5 years agoSVE fallout from PR90006
Richard Sandiford [Tue, 9 Apr 2019 07:50:51 +0000 (07:50 +0000)]
SVE fallout from PR90006

2019-04-08  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
use gimple_expr_type for load and store calls.  Skip over the
condition argument in a conditional internal function.
Protect use of TREE_INT_CST_LOW.

From-SVN: r270222

5 years agore PR target/90015 (riscv: typo "intterupt" in diagnostic)
Jakub Jelinek [Tue, 9 Apr 2019 06:38:07 +0000 (08:38 +0200)]
re PR target/90015 (riscv: typo "intterupt" in diagnostic)

PR target/90015
* config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
(riscv_merge_decl_attributes): Fix typo in diagnostics.  Remove
trailing period from it too.

* gcc.target/riscv/interrupt-conflict-mode.c (foo): Adjust expected
diagnostics.

From-SVN: r270221

5 years agocompiler: sort packages in export data more deterministically
Ian Lance Taylor [Tue, 9 Apr 2019 04:36:51 +0000 (04:36 +0000)]
compiler: sort packages in export data more deterministically

    We can have multiple packages with the same name, so also sort by pkgpath.
    To avoid an inconsistent sort, sort by symbol and pointer address if
    we somehow get two different packages with the same name and pkgpath.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/171032

From-SVN: r270220

5 years agoDaily bump.
GCC Administrator [Tue, 9 Apr 2019 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r270219

5 years agoFix visit<R> for variant.
Ville Voutilainen [Mon, 8 Apr 2019 19:45:48 +0000 (22:45 +0300)]
Fix visit<R> for variant.

* include/std/variant (__do_visit): Add a template parameter
for enforcing same return types for visit.
(__gen_vtable_impl): Likewise.
(_S_apply_single_alt): Adjust.
(__visit_invoke_impl): New. Handle casting to void.
(__do_visit_invoke): New. Enforces same return types.
(__do_visit_invoke_r): New. Converts return types.
(__visit_invoke): Adjust.
(__gen_vtable):  Add a template parameter for enforcing
same return types for visit.
* testsuite/20_util/variant/visit_r.cc: Add a test for a visitor with
different return types.
* testsuite/20_util/variant/visit_neg.cc: New. Ensures that
visitors with different return types don't accidentally
compile with regular visitation.

From-SVN: r270216

5 years agotypeck2.c (digest_init_r): Don't condition the object slicing warning on flag_checking.
Marek Polacek [Mon, 8 Apr 2019 19:31:00 +0000 (19:31 +0000)]
typeck2.c (digest_init_r): Don't condition the object slicing warning on flag_checking.

* typeck2.c (digest_init_r): Don't condition the object slicing warning
on flag_checking.

From-SVN: r270215

5 years agolibgo: update to Go 1.12.2
Ian Lance Taylor [Mon, 8 Apr 2019 18:36:25 +0000 (18:36 +0000)]
libgo: update to Go 1.12.2

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/170706

From-SVN: r270214

5 years ago[AArch64] Add tsv110 pipeline scheduling
wu yuan [Mon, 8 Apr 2019 17:08:32 +0000 (17:08 +0000)]
[AArch64] Add tsv110 pipeline scheduling

Committed on behalf of Wu Yuan:

2019-04-04  wu yuan <wuyuan5@huawei.com>

* config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
* config/aarch64/aarch64.md : Add "tsv110.md"
* config/aarch64/tsv110.md: New file.

From-SVN: r270212

5 years agore PR tree-optimization/90006 (gcc loops indefinitely around vect_get_constant_vector...
Richard Biener [Mon, 8 Apr 2019 13:54:02 +0000 (13:54 +0000)]
re PR tree-optimization/90006 (gcc loops indefinitely around vect_get_constant_vectors on -O2 -ftree-slp-vectorize -fno-math-errno)

2019-04-08  Richard Biener  <rguenther@suse.de>

PR tree-optimization/90006
* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
calls like lrint.

* gcc.dg/vect/bb-slp-pr90006.c: New testcase.

From-SVN: r270210

5 years agoLOCAL_PATCHES: Add revision.
Martin Liska [Mon, 8 Apr 2019 13:09:26 +0000 (15:09 +0200)]
LOCAL_PATCHES: Add revision.

From-SVN: r270209

5 years agoAdd missing libsanitizer extra patch (r259664) (PR sanitizer/89941).
Martin Liska [Mon, 8 Apr 2019 13:08:30 +0000 (15:08 +0200)]
Add missing libsanitizer extra patch (r259664) (PR sanitizer/89941).

2019-04-08  Martin Liska  <mliska@suse.cz>

PR sanitizer/89941
* sanitizer_common/sanitizer_platform_limits_linux.cc (defined):
Reapply patch from r259664.
* sanitizer_common/sanitizer_platform_limits_posix.h (defined):
Likewise.

From-SVN: r270208

5 years agoThe fma_forest, fma_root_node and func_fma_steering classes lack a copy constructor.
Andrea Corallo [Mon, 8 Apr 2019 12:59:24 +0000 (12:59 +0000)]
The fma_forest, fma_root_node and func_fma_steering classes lack a copy constructor.

The fma_forest, fma_root_node and func_fma_steering classes lack a
copy constructor.  However, they contain pointers to allocated memory
so this omission can be regarded as poor style.  We don't need to copy
such objects, so declare the copy constructor private to inhibit
accidental copying.

2019-04-08  Andrea Corallo  <andrea.corallo@arm.com>

PR target/83033
* config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
construction.
(fma_root_node): Likewise.
(func_fma_steering): Likewise.

From-SVN: r270207

5 years agore PR rtl-optimization/89865 (FAIL: gcc.target/i386/pr49095.c scan-assembler-times...
Jakub Jelinek [Mon, 8 Apr 2019 12:36:58 +0000 (14:36 +0200)]
re PR rtl-optimization/89865 (FAIL: gcc.target/i386/pr49095.c scan-assembler-times \\\\), % 45)

PR rtl-optimization/89865
* config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.

* gcc.target/i386/pr49095.c: Don't expect any RMW sequences.

From-SVN: r270206

5 years agore PR rtl-optimization/89865 (FAIL: gcc.target/i386/pr49095.c scan-assembler-times...
Jakub Jelinek [Mon, 8 Apr 2019 12:35:22 +0000 (14:35 +0200)]
re PR rtl-optimization/89865 (FAIL: gcc.target/i386/pr49095.c scan-assembler-times \\\\), % 45)

PR rtl-optimization/89865
* config/i386/i386.md
(SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
numbers not to clash with the additional operands[4].
(peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
with extra register copy in the middle.

* gcc.target/i386/pr49095.c: Adjust number of expected RMW spots
on ia32.

From-SVN: r270205

5 years agoAdd data_file to GCOV interm. format (PR gcov-profile/89961).
Martin Liska [Mon, 8 Apr 2019 12:16:15 +0000 (14:16 +0200)]
Add data_file to GCOV interm. format (PR gcov-profile/89961).

2019-04-08  Martin Liska  <mliska@suse.cz>

PR gcov-profile/89961
* doc/gcov.texi: Document data_file.
* gcov.c (generate_results): Add data_info into JSON output.

From-SVN: r270204

5 years agore PR middle-end/89725 (ICE in get_fnname_from_decl, at varasm.c:1723)
Bin Cheng [Mon, 8 Apr 2019 11:52:18 +0000 (11:52 +0000)]
re PR middle-end/89725 (ICE in get_fnname_from_decl, at varasm.c:1723)

2019-04-01  Bin Cheng  <bin.cheng@linux.alibaba.com>

PR tree-optimization/89725
* tree-chrec.c (chrec_contains_symbols): New parameter.  Handle outer
loop's chrec as invariant symbol.
* tree-chrec.h (chrec_contains_symbols): New parameter.
* tree-data-ref.c (analyze_miv_subscript): Pass new argument.
(build_classic_dist_vector_1, add_other_self_distances): Bypass access
function of loops not in DDR's loop_nest.
* tree-data-ref.h (index_in_loop_nest): Add unreachable check.

* gcc.dg/tree-ssa/pr89725.c: New test.

From-SVN: r270203

5 years agoFix expected scanned pattern.
Martin Liska [Mon, 8 Apr 2019 08:42:00 +0000 (10:42 +0200)]
Fix expected scanned pattern.

2019-04-08  Martin Liska  <mliska@suse.cz>

* gcc.target/riscv/arch-1.c: Fix expected scanned pattern.

From-SVN: r270202

5 years agore PR c++/89914 (ICE in nothrow_spec_p, at cp/except.c:1238)
Paolo Carlini [Mon, 8 Apr 2019 08:13:50 +0000 (08:13 +0000)]
re PR c++/89914 (ICE in nothrow_spec_p, at cp/except.c:1238)

/cp
2019-04-08  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/89914
* semantics.c (trait_expr_value): Don't use TYPE_NOTHROW_P
when maybe_instantiate_noexcept fails.
(classtype_has_nothrow_assign_or_copy_p): Likewise.
* method.c (implicitly_declare_fn): Avoid passing error_mark_node
to build_exception_variant.

/testsuite
2019-04-08  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/89914
* g++.dg/ext/has_nothrow_constructor-3.C: New.

From-SVN: r270201

5 years ago[testsuite,libstdc++-v3] Fix 27_io/filesystem/iterators/caching.cc
Christophe Lyon [Mon, 8 Apr 2019 07:17:30 +0000 (07:17 +0000)]
[testsuite,libstdc++-v3] Fix 27_io/filesystem/iterators/caching.cc

2019-04-08  Christophe Lyon  <christophe.lyon@linaro.org>

* testsuite/27_io/filesystem/iterators/caching.cc: Add
dg-require-filesystem-ts.

From-SVN: r270199

5 years agore PR target/89623 (Can't build mips-wrs-vxworks cross-compiler)
Chenghua Xu [Mon, 8 Apr 2019 06:37:00 +0000 (06:37 +0000)]
re PR target/89623 (Can't build mips-wrs-vxworks cross-compiler)

2019-04-08  Chenghua Xu  <paul.hua.gm@gmail.com>

gcc/
PR target/89623
* config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
Mask.

From-SVN: r270198

5 years agoDaily bump.
GCC Administrator [Mon, 8 Apr 2019 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r270195

5 years agore PR fortran/89904 (ICE in gfortran starting with r270045)
Harald Anlauf [Sun, 7 Apr 2019 19:42:05 +0000 (19:42 +0000)]
re PR fortran/89904 (ICE in gfortran starting with r270045)

2019-04-07  Harald Anlauf  <anlauf@gmx.de>

PR fortran/89904
* ChangeLog: Correct ChangeLog entry.

From-SVN: r270192

5 years agoChangeLog: Fix whitespace.
Uros Bizjak [Sun, 7 Apr 2019 19:30:22 +0000 (21:30 +0200)]
ChangeLog: Fix whitespace.

* ChangeLog: Fix whitespace.
* testsuite/ChangeLog: Ditto.

From-SVN: r270191

5 years agore PR target/89945 (ICE in gen_lowpart_general, at rtlhooks.c:63)
Uros Bizjak [Sun, 7 Apr 2019 19:19:08 +0000 (21:19 +0200)]
re PR target/89945 (ICE in gen_lowpart_general, at rtlhooks.c:63)

PR target/89945
* config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.

testsuite/ChangeLog:

PR target/89945
* gcc.target/i386/pr89945.c: New test.

From-SVN: r270190

5 years agoRegenerate libiberty/functions.texi
Alan Modra [Sun, 7 Apr 2019 11:30:35 +0000 (21:00 +0930)]
Regenerate libiberty/functions.texi

This patch just picks up changes made in r231983 (git 2afaef0360)
and r268793 (git 0f7c25df5f).

* functions.texi: Regenerate.

From-SVN: r270189

5 years agoc-ada-spec.c (is_float128): New predicate extracted from...
Eric Botcazou [Sun, 7 Apr 2019 10:34:19 +0000 (10:34 +0000)]
c-ada-spec.c (is_float128): New predicate extracted from...

c-family/
* c-ada-spec.c (is_float128): New predicate extracted from...
(dump_ada_node) <COMPLEX_TYPE>: Use it to recognize __cfloat128.
<REAL_TYPE>: ...here.  Call it.
ada/
* libgnat/i-cexten.ads (CFloat_128): New type.

From-SVN: r270188

5 years agoDaily bump.
GCC Administrator [Sun, 7 Apr 2019 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r270187

5 years agore PR fortran/87352 (Large stack usage with new gfortran)
Thomas Koenig [Sat, 6 Apr 2019 22:10:28 +0000 (22:10 +0000)]
re PR fortran/87352 (Large stack usage with new gfortran)

2019-04-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/87352
* gfortran.h (gfc_component): Add finalized field.
* class.c (finalize_component): If the component is already
finalized, return early.  Set component->finalized on exit.

2019-04-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/87352
* gfortran.dg/finalize_28.f90: Adjust count of __builtin_free.
* gfortran.dg/finalize_33.f90: Likewise.
* gfortran.dg/finalize_34.f90: New test.

From-SVN: r270184

5 years agore PR fortran/89981 (gfortran -pedantic rejects code in 8.3.1 that is accepted with...
Thomas Koenig [Sat, 6 Apr 2019 14:16:01 +0000 (14:16 +0000)]
re PR fortran/89981 (gfortran -pedantic rejects code in 8.3.1 that is accepted with 8.3.0)

2019-04-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/89981
* resolve.c (resolve_global_procedure): If the global symbol is an
ENTRY, also look up its name among the entries.

2019-04-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/89981
* gfortran.dg/entry_22.f90: New test.

From-SVN: r270182

5 years agoDaily bump.
GCC Administrator [Sat, 6 Apr 2019 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r270181

5 years agoPR c++/87145 - bogus error converting class type in template arg list.
Marek Polacek [Fri, 5 Apr 2019 21:22:40 +0000 (21:22 +0000)]
PR c++/87145 - bogus error converting class type in template arg list.

* pt.c (convert_nontype_argument): Don't call
build_converted_constant_expr if it could involve calling a conversion
function with a instantiation-dependent constructor as its argument.

* g++.dg/cpp0x/constexpr-conv3.C: New test.
* g++.dg/cpp0x/constexpr-conv4.C: New test.

From-SVN: r270178

5 years agoPR bootstrap/89980 - pointer initialization with empty string folded to zero
Martin Sebor [Fri, 5 Apr 2019 19:49:38 +0000 (13:49 -0600)]
PR bootstrap/89980 - pointer initialization with empty string folded to zero

gcc/cp/ChangeLog:

PR bootstrap/89980
* decl.c (reshape_init_array_1): Avoid treating empty strings
as zeros in array initializers.
Use trivial_type_p () instead of TYPE_HAS_TRIVIAL_DFLT().

gcc/testsuite/ChangeLog:

PR bootstrap/89980
* g++.dg/init/array52.C: New test.

From-SVN: r270177

5 years agoImplement std::visit<R> for C++2a (P0655R1)
Jonathan Wakely [Fri, 5 Apr 2019 18:06:02 +0000 (19:06 +0100)]
Implement std::visit<R> for C++2a (P0655R1)

* doc/xml/manual/status_cxx2020.xml: Update status.
* include/std/variant (visit<R>): Define for C++2a (P0655R1).
* testsuite/20_util/variant/visit_r.cc: New test.

From-SVN: r270176

5 years agoUse hidden friends for directory iterator comparisons
Jonathan Wakely [Fri, 5 Apr 2019 16:56:31 +0000 (17:56 +0100)]
Use hidden friends for directory iterator comparisons

The equality operators for directory iterators are not explicitly
specified in the standard, they're only required to meet the iterator
requirements. This means we don't need to declare them at namespace
scope and can implement them as hidden friends.

Also add 'noexcept' to directory_iterator's dereference operators.

* include/bits/fs_dir.h (directory_iterator::operator*)
(directory_iterator::operator->): Add noexcept.
(operator==, operator!=): Replace namespace-scope equality operators
for directory iterators with hidden friends.

From-SVN: r270175

5 years agoPR libstdc++/89986 export directory_iterator::increment
Jonathan Wakely [Fri, 5 Apr 2019 16:56:27 +0000 (17:56 +0100)]
PR libstdc++/89986 export directory_iterator::increment

PR libstdc++/89986
* config/abi/pre/gnu.ver: Add missing exports.
* testsuite/27_io/filesystem/iterators/directory_iterator.cc: Test
increment member.

From-SVN: r270174

5 years agoShare all recursive_directory_iterator state [LWG 2708]
Jonathan Wakely [Fri, 5 Apr 2019 16:56:23 +0000 (17:56 +0100)]
Share all recursive_directory_iterator state [LWG 2708]

Implement the proposed resolution of LWG 2708 by moving the _M_options
and _M_pending members out of the recursive_directory_iterator into the
shared _Dir_stack object. Because _Dir_stack is an opaque type, the
member functions that access the _M_options and _M_pending variables
cannot be inline. Move them into the library.

As a drive-by fix, add noexcept to the non-throwing member functions of
recursive_directory_iterator.

* config/abi/pre/gnu.ver: Export new symbols.
* include/bits/fs_dir.h (recursive_directory_iterator::options())
(recursive_directory_iterator::recursion_pending())
(recursive_directory_iterator::disable_recursion_pending()): Remove
inline definitions. Make noexcept.
(recursive_directory_iterator::depth())
(recursive_directory_iterator::operator*())
(recursive_directory_iterator::operator->()): Make noexcept.
(recursive_directory_iterator::_M_options)
(recursive_directory_iterator::_M_pending): Remove data members.
* src/c++17/fs_path.cc (_Dir_stack): Add constructor and data members.
(recursive_directory_iterator::recursive_directory_iterator): Remove
ctor-initializer. Use new constructor for _Dir_stack.
(recursive_directory_iterator::options())
(recursive_directory_iterator::recursion_pending())
(recursive_directory_iterator::disable_recursion_pending()): Add
non-inline definitions.
(recursive_directory_iterator::depth()): Make noexcept.
(recursive_directory_iterator::increment(error_code&))
(recursive_directory_iterator::pop(error_code&)): Adjust to new
location of options and recursion_pending members.
* testsuite/27_io/filesystem/iterators/recursion_pending.cc: New test.
* testsuite/util/testsuite_fs.h (__gnu_test::scoped_file): Add
user-declared move constructor and assignment operator, to make the
type move-only.

From-SVN: r270173

5 years agoFix directory_iterator handling of DT_UNKNOWN
Jonathan Wakely [Fri, 5 Apr 2019 16:56:18 +0000 (17:56 +0100)]
Fix directory_iterator handling of DT_UNKNOWN

We need to handle DT_UNKNOWN earlier, not only during directory
recursion, so that the cached file_type value in the directory_entry
won't be used.

* src/c++17/fs_dir.cc (_Dir::advance(bool, error_code&)): Handle
d_type == DT_UNKNOWN immediately.
(_Dir::should_recurse(bool, error_code&)): Remove file_type::unknown
handling here.
* testsuite/27_io/filesystem/iterators/caching.cc: New test.

From-SVN: r270172

5 years agoMake filesystem::path safe for self assignment
Jonathan Wakely [Fri, 5 Apr 2019 16:56:14 +0000 (17:56 +0100)]
Make filesystem::path safe for self assignment

The standard says "If *this and p are the same object, has no effect."
Previously we ended up clearing the path.

* include/bits/fs_path.h (path::operator=(path&&)): Check for self
assignment.
* src/c++17/fs_path.cc (path::operator=(const path&)): Likewise.
* testsuite/27_io/filesystem/path/assign/copy.cc: Test self
assignment.

From-SVN: r270171

5 years agoPR libstdc++/87431 re-adjust never-valueless optimizations
Jonathan Wakely [Fri, 5 Apr 2019 16:56:09 +0000 (17:56 +0100)]
PR libstdc++/87431 re-adjust never-valueless optimizations

Avoid creating arbitrarily large objects on the stack when emplacing
trivially copyable objects into a variant. Currently we provide the
strong exception-safety guarantee for all trivially copyable types, by
constructing a second variant and then doing a non-throwing move
assignment from the temporary. This patch restricts that behaviour to
trivially copyable types that are no larger than 256 bytes. For larger
types the object will be emplaced directly into the variant, and if its
initialization throws then the variant becomes valueless.

Also implement Antony Polukhin's suggestion to whitelist specific types
that are not trivially copyable but can be efficiently move-assigned.
Emplacing those types will never cause a variant to become valueless.
The whitelisted types are: std::shared_ptr, std::weak_ptr,
std::unique_ptr, std::function, and std::any. Additionally,
std::basic_string, std::vector, and __gnu_debug::vector are whitelisted
if their allocator traits give them a non-throwing move assignment
operator. Specifically, this means std::string is whitelisted, but
std::pmr::string is not.

As part of this patch, additional if-constexpr branches are added for
the cases where the initialization is known to be non-throwing (so the
overhead of the try-catch block can be avoided) and where a scalar is
being produced by a potentially-throwing conversion operator (so that
the overhead of constructing and move-assigning a variant is avoided).
These changes should have no semantic effect, just better codegen.

PR libstdc++/87431 (again)
* include/bits/basic_string.h (__variant::_Never_valueless_alt):
Define partial specialization for basic_string.
* include/bits/shared_ptr.h (_Never_valueless_alt): Likewise for
shared_ptr and weak_ptr.
* include/bits/std_function.h (_Never_valueless_alt): Likewise for
function.
* include/bits/stl_vector.h (_Never_valueless_alt): Likewise for
vector.
* include/bits/unique_ptr.h (_Never_valueless_alt): Likewise for
unique_ptr.
* include/debug/vector (_Never_valueless_alt): Likewise for debug
vector.
* include/std/any (_Never_valueless_alt): Define explicit
specialization for any.
* include/std/variant (_Never_valueless_alt): Define primary template.
(__never_valueless): Use _Never_valueless_alt instead of
is_trivially_copyable.
(variant::emplace<N>(Args&&...)): Add special case for non-throwing
initializations to avoid try-catch overhead. Add special case for
scalars produced by potentially-throwing conversions. Use
_Never_valueless_alt instead of is_trivially_copyable for the
remaining strong exception-safety cases.
(variant::emplace<N>(initializer_list<U>, Args&&...)): Likewise.
* testsuite/20_util/variant/87431.cc: Run both test functions.
* testsuite/20_util/variant/exception_safety.cc: New test.
* testsuite/20_util/variant/run.cc: Use pmr::string instead of string,
so the variant becomes valueless.

From-SVN: r270170

5 years agoGuard notes for -Waddress-of-packed-member on warning emission (PR c/89985)
David Malcolm [Fri, 5 Apr 2019 15:15:37 +0000 (15:15 +0000)]
Guard notes for -Waddress-of-packed-member on warning emission (PR c/89985)

gcc/c-family/ChangeLog:
PR c/89985
* c-warn.c (check_address_or_pointer_of_packed_member): Add
auto_diagnostic_group.  Guard inform calls by result of
warning_at call.

gcc/testsuite/ChangeLog:
PR c/89985
* c-c++-common/pr89985.c: New test.

From-SVN: r270169

5 years ago[testsuite] PR71598: Fix testcases again
Christophe Lyon [Fri, 5 Apr 2019 15:10:12 +0000 (15:10 +0000)]
[testsuite] PR71598: Fix testcases again

2019-04-05  Christophe Lyon  <christophe.lyon@linaro.org>

PR c/71598
* gcc.dg/torture/pr71598-1.c: dg-prune arm linker messages about
size of enums.
* gcc.dg/torture/pr71598-2.c: Likewise.

From-SVN: r270168

5 years agosched-deps.c (sched_macro_fuse_insns): Check return value of targetm.fixed_condition_...
Joern Rennecke [Fri, 5 Apr 2019 15:01:01 +0000 (15:01 +0000)]
sched-deps.c (sched_macro_fuse_insns): Check return value of targetm.fixed_condition_code_regs.

        * sched-deps.c (sched_macro_fuse_insns): Check return value of
        targetm.fixed_condition_code_regs.

From-SVN: r270167

5 years agoPR c++/89973 - -Waddress-of-packed-member ICE with invalid conversion.
Marek Polacek [Fri, 5 Apr 2019 14:56:53 +0000 (14:56 +0000)]
PR c++/89973 - -Waddress-of-packed-member ICE with invalid conversion.

PR c++/89973 - -Waddress-of-packed-member ICE with invalid conversion.
* c-warn.c (check_address_or_pointer_of_packed_member): Check the type
of RHS.

* g++.dg/warn/Waddress-of-packed-member2.C: New test.

From-SVN: r270166

5 years agore PR debug/89892 (gcc generates wrong debug information at -O2)
Richard Biener [Fri, 5 Apr 2019 11:55:45 +0000 (11:55 +0000)]
re PR debug/89892 (gcc generates wrong debug information at -O2)

2019-04-05  Richard Biener  <rguenther@suse.de>

PR debug/89892
PR debug/89905
* tree-cfgcleanup.c (remove_forwarder_block): Always move
debug bind stmts but reset them if they are not valid at the
destination.

* gcc.dg/guality/pr89892.c: New testcase.
* gcc.dg/guality/pr89905.c: Likewise.
* gcc.dg/guality/loop-1.c: Likewise.

From-SVN: r270165

5 years agoFix ChangeLog entries.
Martin Liska [Fri, 5 Apr 2019 09:04:41 +0000 (09:04 +0000)]
Fix ChangeLog entries.

contrib/ChangeLog:

2019-04-03  Martin Liska  <mliska@suse.cz>

PR translation/89936
* check-internal-format-escaping.py: Properly detect wrong
apostrophes.

gcc/ChangeLog:

2019-04-03  Martin Liska  <mliska@suse.cz>

PR translation/89936
* collect-utils.c (collect_execute): Use %< and %>, or %qs in
order to wrap keywords or arguments.
* collect2.c (main): Likewise.
(scan_prog_file): Likewise.
(scan_libraries): Likewise.
* common/config/riscv/riscv-common.c (riscv_subset_list::parsing_subset_version): Likewise.
(riscv_subset_list::parse_std_ext): Likewise.
* config/aarch64/aarch64.c (aarch64_override_options_internal): Likewise.
* config/arm/arm.c (arm_option_override): Likewise.
* config/cris/cris.c (cris_print_operand): Likewise.
* config/darwin-c.c (darwin_pragma_options): Likewise.
(darwin_pragma_unused): Likewise.
(darwin_pragma_ms_struct): Likewise.
* config/ft32/ft32.c (ft32_print_operand): Likewise.
* config/i386/i386.c (print_reg): Likewise.
(ix86_print_operand): Likewise.
* config/i386/xm-djgpp.h: Likewise.
* config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
* config/m32c/m32c.c (m32c_option_override): Likewise.
* config/msp430/msp430.c (msp430_option_override): Likewise.
* config/nds32/nds32.c (nds32_option_override): Likewise.
* config/nvptx/mkoffload.c (main): Likewise.
* config/rx/rx.c (rx_print_operand): Likewise.
(valid_psw_flag): Likewise.
* config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
(vms_pragma_nomember_alignment): Likewise.
(vms_pragma_extern_model): Likewise.
* lto-wrapper.c (compile_offload_image): Likewise.
* omp-offload.c (oacc_parse_default_dims): Likewise.
* symtab.c (symtab_node::verify_base): Likewise.
* tlink.c (recompile_files): Likewise.
(start_tweaking): Likewise.
* tree-profile.c (parse_profile_filter): Likewise.

gcc/objc/ChangeLog:

2019-04-03  Martin Liska  <mliska@suse.cz>

PR translation/89936
* objc-act.c (objc_add_property_declaration): Use %< and %>, or %qs in
order to wrap keywords or arguments.
(objc_add_synthesize_declaration_for_property): Likewise.

From-SVN: r270164

5 years agoRemove usage of apostrophes in error and warning messages (PR translation/89935).
Martin Liska [Fri, 5 Apr 2019 08:37:44 +0000 (10:37 +0200)]
Remove usage of apostrophes in error and warning messages (PR translation/89935).

2019-04-05  Martin Liska  <mliska@suse.cz>

PR translation/89935
* check-internal-format-escaping.py: Properly detect wrong
apostrophes.
2019-04-05  Martin Liska  <mliska@suse.cz>

PR translation/89935
* collect-utils.c (collect_execute): Use %< and %>, or %qs in
order to wrap keywords or arguments.
* collect2.c (main): Likewise.
(scan_prog_file): Likewise.
(scan_libraries): Likewise.
* common/config/riscv/riscv-common.c (riscv_subset_list::parsing_subset_version): Likewise.
(riscv_subset_list::parse_std_ext): Likewise.
* config/aarch64/aarch64.c (aarch64_override_options_internal): Likewise.
* config/arm/arm.c (arm_option_override): Likewise.
* config/cris/cris.c (cris_print_operand): Likewise.
* config/darwin-c.c (darwin_pragma_options): Likewise.
(darwin_pragma_unused): Likewise.
(darwin_pragma_ms_struct): Likewise.
* config/ft32/ft32.c (ft32_print_operand): Likewise.
* config/i386/i386.c (print_reg): Likewise.
(ix86_print_operand): Likewise.
* config/i386/xm-djgpp.h: Likewise.
* config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
* config/m32c/m32c.c (m32c_option_override): Likewise.
* config/msp430/msp430.c (msp430_option_override): Likewise.
* config/nds32/nds32.c (nds32_option_override): Likewise.
* config/nvptx/mkoffload.c (main): Likewise.
* config/rx/rx.c (rx_print_operand): Likewise.
(valid_psw_flag): Likewise.
* config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
(vms_pragma_nomember_alignment): Likewise.
(vms_pragma_extern_model): Likewise.
* lto-wrapper.c (compile_offload_image): Likewise.
* omp-offload.c (oacc_parse_default_dims): Likewise.
* symtab.c (symtab_node::verify_base): Likewise.
* tlink.c (recompile_files): Likewise.
(start_tweaking): Likewise.
* tree-profile.c (parse_profile_filter): Likewise.
2019-04-05  Martin Liska  <mliska@suse.cz>

PR translation/89935
* objc-act.c (objc_add_property_declaration): Use %< and %>, or %qs in
order to wrap keywords or arguments.
(objc_add_synthesize_declaration_for_property): Likewise.

From-SVN: r270163

5 years agoMake FMA code cope with redundant negates (PR89956)
Richard Sandiford [Fri, 5 Apr 2019 07:31:12 +0000 (07:31 +0000)]
Make FMA code cope with redundant negates (PR89956)

This patch fixes a case in which, due to forced missed optimisations
in earlier passes, we have:

    _1 = a * b
    _2 = -_1
    _3 = -_1
    _4 = _2 + _3

and treated _4 as two FNMA candidates, once via _2 and once via _3.

2019-04-05  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
PR tree-optimization/89956
* tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
multiple negates of the same value.

gcc/testsuite/
PR tree-optimization/89956
* gfortran.dg/pr89956.f90: New test.

From-SVN: r270162

5 years agoPR c++/89948 - ICE with break in statement-expr.
Jason Merrill [Fri, 5 Apr 2019 02:52:23 +0000 (22:52 -0400)]
PR c++/89948 - ICE with break in statement-expr.

* constexpr.c (cxx_eval_statement_list): Jumping out of a
statement-expr is non-constant.

From-SVN: r270161

5 years agoPR c++/89966 - error with non-type auto tparm.
Jason Merrill [Fri, 5 Apr 2019 02:50:52 +0000 (22:50 -0400)]
PR c++/89966 - error with non-type auto tparm.

My patch for PR 86932 broke this testcase by passing tf_partial to
coerce_template_template_parms, which prevented do_auto_deduction from
actually replacing the auto.

* pt.c (do_auto_deduction): Clear tf_partial.

From-SVN: r270160

5 years agoPR c++/86986 - ICE with TTP with parameter pack.
Jason Merrill [Fri, 5 Apr 2019 02:50:18 +0000 (22:50 -0400)]
PR c++/86986 - ICE with TTP with parameter pack.

Three separate issues were breaking this testcase.  One, we were trying to
look at the type of a template template parameter to see if it's a valid
non-type template parameter.  Two, we were treating a parameter pack named
in the type of a template parameter pack of a TTP pack as being one of the
packs expanded by the outer pack.  Three, we weren't supplying all the
necessary levels of template arguments when TTP matching.

* pt.c (coerce_template_parameter_pack): Only look at the type of a
non-type parameter pack.
(fixed_parameter_pack_p_1): Don't recurse into the type of a
non-type parameter pack.
(coerce_template_template_parms): Call add_outermost_template_args.

From-SVN: r270159

5 years agoDaily bump.
GCC Administrator [Fri, 5 Apr 2019 00:16:13 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r270158

5 years agoPR c++/89974 - ICE on a definition of a non-type specialization on a struct object...
Martin Sebor [Thu, 4 Apr 2019 23:10:23 +0000 (23:10 +0000)]
PR c++/89974 - ICE on a definition of a non-type specialization on a struct object with pointer to member function

PR c++/89974 - ICE on a definition of a non-type specialization on a struct object with pointer to member function
PR c++/89878 - same specializations on a zero-initialized struct object as a non-type parameter treated as distinct
PR c++/89833 - sorry, unimplemented: string literal in function template signature
PR c++/47488 - sorry, unimplemented: string literal in function template signature

gcc/cp/ChangeLog:

PR c++/89974
PR c++/89878
PR c++/89833
PR c++/47488
* decl.c (reshape_init_array_1): Strip trailing zero-initializers
from arrays of trivial type and known size.
* mangle.c (write_expression): Convert braced initializer lists
to STRING_CSTs.
(write_expression): Trim trailing zero-initializers from arrays
of trivial type.
(write_template_arg_literal): Mangle strings the same as braced
initializer lists.

gcc/testsuite/ChangeLog:

PR c++/89974
PR c++/89878
PR c++/89833
PR c++/47488
* gcc/testsuite/g++.dg/abi/mangle69.C: New test.
* gcc/testsuite/g++.dg/abi/mangle70.C: New test.
* gcc/testsuite/g++.dg/abi/mangle71.C: New test.
* gcc/testsuite/g++.dg/abi/mangle72.C: New test.
* gcc/testsuite/g++.dg/cpp0x/constexpr-array19.C: New test.
* gcc/testsuite/g++.dg/cpp2a/nontype-class15.C: New test.
* gcc/testsuite/g++.dg/cpp2a/nontype-class16.C: New test.
* gcc/testsuite/g++.dg/init/array51.C: New test.

From-SVN: r270155

5 years agoPR middle-end/89957 - ICE calling strnlen with an int128_t bound in a known range
Martin Sebor [Thu, 4 Apr 2019 22:38:10 +0000 (22:38 +0000)]
PR middle-end/89957 - ICE calling strnlen with an int128_t bound in a known range

PR middle-end/89957 - ICE calling strnlen with an int128_t bound in a known range
PR middle-end/89911 - [9 Regression] ICE in get_attr_nonstring_decl

gcc/ChangeLog:

PR middle-end/89957
PR middle-end/89911
* builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
have the same precision since the function crashes otherwise.
* calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
has non-zero arguments.

gcc/testsuite/ChangeLog:

PR middle-end/89957
PR middle-end/89911
* gcc.dg/Wstringop-overflow-13.c: New test.

From-SVN: r270154

5 years agoPR middle-end/89934 - ICE on a call with fewer arguments to strncpy declared without...
Martin Sebor [Thu, 4 Apr 2019 21:59:49 +0000 (21:59 +0000)]
PR middle-end/89934 - ICE on a call with fewer arguments to strncpy declared without prototype

gcc/ChangeLog:

PR middle-end/89934
* gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
out if the number of arguments is less than expected.

gcc/testsuite/ChangeLog:

PR middle-end/89934
* gcc.dg/Wrestrict-19.c: New test.
* gcc.dg/Wrestrict-5.c: Add comment.  Remove unused code.

From-SVN: r270152

5 years agore PR target/89399 (ICE: RTL check: expected code 'set', 'clobber' or 'clobber_high...
Jeff Law [Thu, 4 Apr 2019 20:52:16 +0000 (14:52 -0600)]
re PR target/89399 (ICE: RTL check: expected code 'set', 'clobber' or 'clobber_high', have 'parallel' in combine_reaching_defs, at ree.c:783)

PR rtl-optimization/89399
* ree.c (combine_set_extension): Use single_set rather than
digging into PATTERN for items on the candidate list.
(combine_reaching_defs): Likewise.

PR rtl-optimization/89399
* gcc.c-torture/compile/pr89399.c: New test.

From-SVN: r270151