gcc.git
5 years ago[libbacktrace] Fix memory leak in build_address_map
Tom de Vries [Fri, 28 Dec 2018 03:43:15 +0000 (03:43 +0000)]
[libbacktrace] Fix memory leak in build_address_map

While upon failure in build_address_map we call free_unit_addrs_vector, this
does not actually free the addrs vector, but merely the abbrevs of the units
pointed at by the elements of the addrs vector.

Fix this by adding code to build_address_map to make sure that the addrs vector
is freed upon failure.

Bootstrapped and reg-tested on x86_64.

2018-12-28  Tom de Vries  <tdevries@suse.de>

* dwarf.c (build_address_map): Free addrs vector upon failure.

From-SVN: r267442

5 years agoDaily bump.
GCC Administrator [Fri, 28 Dec 2018 00:16:12 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r267441

5 years agoipa-devirt.c (polymorphic_call_target_d): Add n_odr_types.
Jan Hubicka [Thu, 27 Dec 2018 21:23:30 +0000 (22:23 +0100)]
ipa-devirt.c (polymorphic_call_target_d): Add n_odr_types.

* ipa-devirt.c (polymorphic_call_target_d): Add n_odr_types.
(polymorphic_call_target_hasher::hash): Hash it.
(polymorphic_call_target_hasher::equal): Compare it.
(possible_polymorphic_call_targets): Set it.
* tree.c (free_lang_data): Rebuild type inheritance graph even on
non-LTO path.

* g++.dg/ipa/devirt-53.C: New testcase.

From-SVN: r267438

5 years agore PR fortran/81027 (Assumed-shape array reported as deferred.)
Steven G. Kargl [Thu, 27 Dec 2018 21:13:53 +0000 (21:13 +0000)]
re PR fortran/81027 (Assumed-shape array reported as deferred.)

2018-12-27  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/81027
* expr.c (gfc_check_init_expr): Distinguish assumed-shape versus
deferred-shape dummy arguments in an error message.

2018-12-27  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/81027
* gfortran.dg/pr81027.f90: New test.
* gfortran.dg/initialization_7.f90: Update error message.

From-SVN: r267437

5 years agoaligned1.f03: Fix invalid code that now causes an error after r267415.
Steven G. Kargl [Thu, 27 Dec 2018 20:57:12 +0000 (20:57 +0000)]
aligned1.f03: Fix invalid code that now causes an error after r267415.

2018-12-27  Steven G. Kargl  <kargl@gcc.gnu.org>

* libgomp.fortran/aligned1.f03: Fix invalid code that now causes
an error after r267415.

From-SVN: r267436

5 years agoruntime: delete export_arm_test.go
Ian Lance Taylor [Thu, 27 Dec 2018 16:34:50 +0000 (16:34 +0000)]
runtime: delete export_arm_test.go

    The only thing export_arm_test.go does is to export usplit,
    which does not exist in gccgo.

    Reviewed-on: https://go-review.googlesource.com/c/155760

From-SVN: r267435

5 years agoruntime: let ARM32 EABI personality function continue unwind when called from traceback
Ian Lance Taylor [Thu, 27 Dec 2018 16:31:50 +0000 (16:31 +0000)]
runtime: let ARM32 EABI personality function continue unwind when called from traceback

    On ARM32 EABI, unlike other platforms, the personality function is
    called during _Unwind_Backtrace (libgcc/unwind-arm-common.inc:581).
    In this case, simply unwind the frame without returning any
    handlers. Otherwise traceback will loop if there is a frame with
    a defer on stack.

    Reviewed-on: https://go-review.googlesource.com/c/155759

From-SVN: r267434

5 years agoCherry pick libsanitizer patch (https://reviews.llvm.org/D54856).
Martin Liska [Thu, 27 Dec 2018 09:47:20 +0000 (10:47 +0100)]
Cherry pick libsanitizer patch (https://reviews.llvm.org/D54856).

2018-12-27  Martin Liska  <mliska@suse.cz>

  PR sanitizer/86229
* asan/asan_errors.cc (ErrorAllocTypeMismatch::Print): Cherry
pick rL350085.
* asan/asan_errors.h (struct ErrorAllocTypeMismatch): Likewise.

From-SVN: r267432

5 years agoFix slowness in gcov (PR gcov-profile/88225).
Martin Liska [Thu, 27 Dec 2018 08:59:35 +0000 (09:59 +0100)]
Fix slowness in gcov (PR gcov-profile/88225).

2018-12-27  Martin Liska  <mliska@suse.cz>

PR gcov-profile/88225
* gcov.c(source_info::get_functions_at_location):
Use newly added line_to_function_map.
(source_info::add_function): New.
(output_json_intermediate_file): Use a pointer return
type for get_functions_at_location.
(process_all_functions): Use add_function instead
of direct push to a s->functions container.
(release_structures): Release ident_to_fn.
(read_graph_file): Register function into ident_to_fn.
(read_count_file): Use the map.
(output_lines): Handle pointer return type of
get_functions_at_location.

From-SVN: r267431

5 years agoComparison with an enum should mention enum value.
Martin Liska [Thu, 27 Dec 2018 08:51:14 +0000 (09:51 +0100)]
Comparison with an enum should mention enum value.

2018-12-27  Martin Liska  <mliska@suse.cz>

* builtins.c (expand_movstr): Compare with RETURN_BEGIN.
* expr.c (move_by_pieces): Likewise.
(store_by_pieces): Likewise.
(store_expr): Fix GNU coding style.

From-SVN: r267430

5 years agoUse proper location for tls_init function (PR c++/88263).
Martin Liska [Thu, 27 Dec 2018 08:46:13 +0000 (09:46 +0100)]
Use proper location for tls_init function (PR c++/88263).

2018-12-27  Martin Liska  <mliska@suse.cz>

PR c++/88263
* decl2.c (get_local_tls_init_fn): Add location_t argument and
use it.
(get_tls_init_fn): Call it with location of variable for which
we'll need to create tls_init function.
(handle_tls_init): Likewise.
2018-12-27  Martin Liska  <mliska@suse.cz>

PR c++/88263
* g++.dg/gcov/pr88263.C: New test.

From-SVN: r267429

5 years agoruntime: on ARM32 EABI, don't get LSDA if compact model is used
Ian Lance Taylor [Thu, 27 Dec 2018 03:13:11 +0000 (03:13 +0000)]
runtime: on ARM32 EABI, don't get LSDA if compact model is used

    On ARM32 EABI, when the "compact" unwinding model is used, it
    does not have standard LSDA and _Unwind_GetLanguageSpecificData
    will not return data that is parseable by us. Check this
    conditon before calling _Unwind_GetLanguageSpecificData.

    Fix ARM32 build.

    Reviewed-on: https://go-review.googlesource.com/c/155758

From-SVN: r267428

5 years agoaarch64-cores.def (octeontx): New.
Andrew Pinski [Thu, 27 Dec 2018 01:07:43 +0000 (01:07 +0000)]
aarch64-cores.def (octeontx): New.

2018-12-26  Andrew Pinski  <apinski@marvell.com>

        * config/aarch64/aarch64-cores.def (octeontx): New.
        (octeontx81): Likewise.
        (octeontx83): Likewise.
        * config/aarch64/aarch64-tune.md: Regenerate.
        * doc/invoke.texi (AArch64 Options) [mtune]: Add octeontx, octeontx81
        and octeontx83.

From-SVN: r267427

5 years agoDaily bump.
GCC Administrator [Thu, 27 Dec 2018 00:16:33 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r267426

5 years agore PR fortran/85357 (ICE on invalid code with equal procedure names)
Steven G. Kargl [Wed, 26 Dec 2018 21:08:53 +0000 (21:08 +0000)]
re PR fortran/85357 (ICE on invalid code with equal procedure names)

2018-12-26  Steven G. Kargl  <kargl@gcc.gnu.org>

        PR fortran/85357
        * gfortran.df/pr85357.f90: New test.

From-SVN: r267423

5 years agore PR fortran/85407 (Replace gcc_assert in module.c:read_module by more helpful diagn...
Harald Anlauf [Wed, 26 Dec 2018 20:37:28 +0000 (20:37 +0000)]
re PR fortran/85407 (Replace gcc_assert in module.c:read_module by more helpful diagnostics)

2018-12-26  Harald Anlauf  <anlauf@gmx.de>

PR fortran/85407
* module.c (read_module): Convert assert to fatal error to give
user a sensible error message.

From-SVN: r267422

5 years agoDaily bump.
GCC Administrator [Wed, 26 Dec 2018 00:16:25 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r267421

5 years agoDaily bump.
GCC Administrator [Tue, 25 Dec 2018 00:16:35 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r267418

5 years agore PR fortran/45513 (BOZ kinds differently handled, F2008: BOZ in bit intrinsics)
Steven G. Kargl [Mon, 24 Dec 2018 18:26:25 +0000 (18:26 +0000)]
re PR fortran/45513 (BOZ kinds differently handled, F2008: BOZ in bit intrinsics)

2018-12-24  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/45513
PR fortran/81509
* check.c: Rename function gfc_check_iand to gfc_check_iand_ieor_ior.
* check.c (boz_args_check): New function.  Check I and J not both BOZ.
(gfc_check_dshift,gfc_check_iand_ieor_ior, gfc_check_ishft,
 gfc_check_and, gfc_check_merge_bits): Use it.
* check.c (gfc_check_iand_ieor_ior): Force conversion of BOZ to kind
type of other agrument.  Remove silly GNU extension.
(gfc_check_ieor, gfc_check_ior): Delete now unused functions.
* intrinsic.c (add_functions): Use gfc_check_iand_ieor_ior. Wrap long
line.
* intrinsic.h: Rename gfc_check_iand to gfc_check_iand_ieor_ior.
Delete prototype for bool gfc_check_ieor and gfc_check_ior
* intrinsic.texi: Update documentation for boz-literal-constant.

2018-12-24  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/45513
PR fortran/81509
* gfortran.dg/graphite/id-26.f03: Fix non-conforming use of IAND.
* gfortran.dg/pr81509_1.f90: New test.
* gfortran.dg/pr81509_2.f90: New test.

From-SVN: r267415

5 years agoieee_9.f90: XFAIL on arm*-*-gnueabi[hf].
Steven G. Kargl [Mon, 24 Dec 2018 18:03:49 +0000 (18:03 +0000)]
ieee_9.f90: XFAIL on arm*-*-gnueabi[hf].

2018-12-24  Steven G. Kargl  <kargl@gcc.gnu.org>

* gfortran.dg/ieee/ieee_9.f90:  XFAIL on arm*-*-gnueabi[hf].

From-SVN: r267414

5 years agogimple-fold.c (get_range_strlen_tree): Factored out of get_range_strlen.
Martin Sebor [Mon, 24 Dec 2018 15:32:11 +0000 (15:32 +0000)]
gimple-fold.c (get_range_strlen_tree): Factored out of get_range_strlen.

* gimple-fold.c (get_range_strlen_tree): Factored out of
get_range_strlen.  Minor comment updates/additions.  Assert
argument is not a simple SSA_NAME.
(get_range_strlen): Call get_range_strlen_tree as appropriate.
Minor comment updates/additions.

From-SVN: r267412

5 years agoipa-devirt.c (dump_targets): Cap number of targets printed.
Jan Hubicka [Mon, 24 Dec 2018 11:26:15 +0000 (12:26 +0100)]
ipa-devirt.c (dump_targets): Cap number of targets printed.

* ipa-devirt.c (dump_targets): Cap number of targets printed.
(dump_possible_polymorphic_call_targets): Add verbose parameter.
(ipa_devirt): Use it.
* ipa-utils.h (dump_possible_polymorphic_call_targets): Add verbose
parametrs.

From-SVN: r267400

5 years agoFix double-application of patch.
Jan Hubicka [Mon, 24 Dec 2018 11:23:57 +0000 (11:23 +0000)]
Fix double-application of patch.

From-SVN: r267399

5 years agotree.c (fld_simplified_type): Temporarily disable array simplification.
Jan Hubicka [Mon, 24 Dec 2018 11:21:25 +0000 (12:21 +0100)]
tree.c (fld_simplified_type): Temporarily disable array simplification.

* tree.c (fld_simplified_type): Temporarily disable array
simplification.

* gcc.c-torture/pr88140.c: New testcase.

From-SVN: r267398

5 years agolto-symtab.c (lto_symtab_merge_decls_2): Do not report ODR violations for method...
Jan Hubicka [Mon, 24 Dec 2018 11:12:42 +0000 (12:12 +0100)]
lto-symtab.c (lto_symtab_merge_decls_2): Do not report ODR violations for method whose basetype was already reported.

* lto-symtab.c (lto_symtab_merge_decls_2): Do not report ODR violations
for method whose basetype was already reported.

* ipa-devirt.c (odr_type_violation_reported_p): New.
* ipa-utils.h (odr_type_violation_reported_p): Declare.

From-SVN: r267397

5 years agoFix PR67974 for Darwin by adding an asm shim for AVX.
Iain Sandoe [Mon, 24 Dec 2018 09:02:03 +0000 (09:02 +0000)]
Fix PR67974 for Darwin by adding an asm shim for AVX.

The PR is about a set of tests that were not executed because of
missing asm support.

However, the assembler can handle the insns now, so the tests are
attempted (but with a missing asm shim they fail).

This adds the shim.

In principle (bugs notwithstanding) Darwin’s x86_64 ABI is supposed
to follow the sysv psABI so we can have essentially a copy of the
Linux one.

2018-12-24  Iain Sandoe  <iain@sandoe.co.uk>

PR testsuite/67974
* gcc.target/x86_64/abi/avx/asm-support-darwin.s: New.

From-SVN: r267395

5 years agopowerpc-darwin, skip ident tests.
Iain Sandoe [Mon, 24 Dec 2018 08:55:01 +0000 (08:55 +0000)]
powerpc-darwin, skip ident tests.

The c-c++-common tests fail (or XPASS depending on which) on
powerpc Darwin because it doesn't currently emit .ident marker.

Since there's no support for .ident in the assembler, we can't
enable the output and therefore these tests should be skipped.

2018-12-24  Iain Sandoe  <iain@sandoe.co.uk>

* c-c++-common/ident-0a.c: Skip for powerpc-darwin.
* c-c++-common/ident-0b.c: Likewise.
* c-c++-common/ident-1a.c: Likewise.
* c-c++-common/ident-1b.c: Likewise.
* c-c++-common/ident-2a.c: Likewise.
* c-c++-common/ident-2b.c: Likewise.

From-SVN: r267394

5 years agodarwin, configuration, check properly for dwarf2 debug line support
Iain Sandoe [Mon, 24 Dec 2018 08:43:20 +0000 (08:43 +0000)]
darwin, configuration, check properly for dwarf2 debug line support

This corrects a long-standing misconfiguration for Darwin.
The assembler supports the “.file” and “.loc” directives, but
the GCC configury was not detecting this because it was
using objdump, which does not exist on most Darwin installations.

We added support for “otool” to GCC and now we can use that to
make the check that’s done with objdump on ELF targets.

2018-12-24  Iain Sandoe  <iain@sandoe.co.uk>

* configure.ac (dwarf2_debug_line): Check for the debug_line
section using otool when there’s no objdump available.
* configure: Regenerate.

From-SVN: r267393

5 years agoipa-utils.c (ipa_merge_profiles): Fix updating of fnsummary; also handle rescaling...
Jan Hubicka [Mon, 24 Dec 2018 01:37:44 +0000 (02:37 +0100)]
ipa-utils.c (ipa_merge_profiles): Fix updating of fnsummary; also handle rescaling of mismatched profiles.

* ipa-utils.c (ipa_merge_profiles): Fix updating of fnsummary;
also handle rescaling of mismatched profiles.
* ipa-fnsummary.c (analyze_function): Handle speculative edges.

From-SVN: r267392

5 years agoDaily bump.
GCC Administrator [Mon, 24 Dec 2018 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r267391

5 years ago2018-12-23 François Dumont <fdumont@gcc.gnu.org>
François Dumont [Sun, 23 Dec 2018 18:11:38 +0000 (18:11 +0000)]
2018-12-23  François Dumont  <fdumont@gcc.gnu.org>

* libstdc++-v3/testsuite/util/testsuite_allocator.h
(CustomPointerAlloc<>::allocate(size_t, pointer)): Replace by...
(CustomPointerAlloc<>::allocate(size_t, const_void_pointer)): ...this.

From-SVN: r267381

5 years agoRespect pointer_traits on node deallocation in _ReuseOrAllocNode parenthesis operator.
François Dumont [Sun, 23 Dec 2018 18:05:23 +0000 (18:05 +0000)]
Respect pointer_traits on node deallocation in _ReuseOrAllocNode parenthesis operator.

2018-12-23  François Dumont  <fdumont@gcc.gnu.org>

Respect pointer_traits on node deallocation in _ReuseOrAllocNode
parenthesis operator.

* include/bits/hashtable_policy.h
(_Hashtable_alloc<>::_M_deallocate_node_ptr(__node_type*)): New.
(_Hashtable_alloc<>::_M_deallocate_node(__node_type*)): Use latter.
(_ReuseOrAllocNode<>::operator<_Arg>()(_Arg&&)): Likewise.

From-SVN: r267380

5 years agore PR fortran/77703 (ICE on assignment to pointer function)
Paul Thomas [Sun, 23 Dec 2018 17:35:13 +0000 (17:35 +0000)]
re PR fortran/77703 (ICE on assignment to pointer function)

2018-12-23  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/77703
* resolve.c (get_temp_from_expr): Use the string length of
constant character expressions.

2018-12-23  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/77703
* gfortran.dg/ptr_func_assign_5.f08 : New test.

From-SVN: r267379

5 years agobuiltins.h (c_strlen_data): Add new fields and comments.
Martin Sebor [Sun, 23 Dec 2018 16:00:45 +0000 (16:00 +0000)]
builtins.h (c_strlen_data): Add new fields and comments.

* builtins.h (c_strlen_data): Add new fields and comments.
* builtins.c (unterminated_array): Change field reference from
"len" to "minlen" in c_strlen_data instance.
* gimple-fold.c (get_range_strlen): Likewise.
* gimple-ssa-sprintf.c (get_string_length): Likewise.

Co-Authored-By: Jeff Law <law@redhat.com>
From-SVN: r267378

5 years agobuiltins.c (unterminated_array): Rename "data" to "lendata".
Martin Sebor [Sun, 23 Dec 2018 15:49:43 +0000 (15:49 +0000)]
builtins.c (unterminated_array): Rename "data" to "lendata".

* builtins.c (unterminated_array): Rename "data" to "lendata".  Fix
a few comments.
(expand_builtin_strnlen, expand_builtin_stpcpy_1): Likewise.
(fold_builtin_strlen): Likewise.
* gimple-fold.c (get_range_strlen): Likewise.  Also rename a couple
instances of "type" to "optype" and "arg" to "fld".

Co-Authored-By: Jeff Law <law@redhat.com>
From-SVN: r267377

5 years agobuiltins.c (unterminated_array): Use empty brace initialization for c_strlen_data.
Martin Sebor [Sun, 23 Dec 2018 15:37:28 +0000 (15:37 +0000)]
builtins.c (unterminated_array): Use empty brace initialization for c_strlen_data.

2018-12-23  Martin Sebor  <msebor@redhat.com>
    Jeff Law  <law@redhat.com>

* builtins.c (unterminated_array): Use empty brace initialization
for c_strlen_data.
(c_strlen, expand_builtin_strnlen): Likewise.
(expand_builtin_stpcpy_1, fold_builtin_strlen): Likewise.
* gimple-fold.c (get_range_strlen): Likewise.
(gimple_fold_builtin_stpcpy): Likewise.
* gimple-ssa-sprintf.c (get_string_length): Likewise.

Co-Authored-By: Jeff Law <law@redhat.com>
From-SVN: r267376

5 years ago[RS6000] PR88346, Inconsistent list of CPUs supported after r266502
Alan Modra [Sun, 23 Dec 2018 13:28:20 +0000 (23:58 +1030)]
[RS6000] PR88346, Inconsistent list of CPUs supported after r266502

This patch removes the %e error for AIX, since it seems there has been
no attempt to keep cpu support up to date for AIX, and adds missing
entries to ASM_CPU_SPEC in rs6000.h.  The rs64a->rs64 name change
happened a long time ago as a fix for PR20813 (git commit c92b4c3f5b).

PR 88346
* config/rs6000/rs6000.h (ASM_CPU_SPEC): Correct %e message.  Handle
-mcpu=rs64, not -mcpu=rs64a.  Handle -mcpu=powerpc64 and -mcpu=titan.
* config/rs6000/driver-rs6000.c (asm_names): Similarly.
* config/rs6000/aix71.h (ASM_CPU_SPEC): Delete %e message.  Handle
-mcpu=rs64, not -mcpu=rs64a.
* config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise.

From-SVN: r267375

5 years agoFix Ada bootstrap for Darwin9 and earlier.
Iain Sandoe [Sun, 23 Dec 2018 12:51:52 +0000 (12:51 +0000)]
Fix Ada bootstrap for Darwin9 and earlier.

2018-12-23  Iain Sandoe  <iain@sandoe.co.uk>

gcc/ada/

* adaint.c [__APPLE__] (__gnat_lwp_self): Ensure that the system
interface used is available on the target.

From-SVN: r267374

5 years agoLTO-wrapper, don't pre-link early debug objects.
Iain Sandoe [Sun, 23 Dec 2018 12:43:47 +0000 (12:43 +0000)]
LTO-wrapper, don't pre-link early debug objects.

Pass them to the final link, the pre-link wasn't effective.
Make the temp filenames easier to follow.
Also save them in the CWD when save-temps is given.

2018-12-23  Iain Sandoe  <iain@sandoe.co.uk>

* lto-wrapper.c (tool_cleanup): Don’t report ficticious temp files.
(debug_objcopy): Improve temp filenames.  Append the early
debug objects to the outfiles.  Remove the phase prelinking the
early debug. Emit the early debug filenames for ld.

From-SVN: r267373

5 years agoFix ident tests by Enabling ident output for X86 Darwin.
Iain Sandoe [Sun, 23 Dec 2018 11:04:14 +0000 (11:04 +0000)]
Fix ident tests by Enabling ident output for X86 Darwin.

The c-c++-common tests fail (or XPASS depending on which) on Darwin
because it doesn't currently emit .ident marker.  For X86 Darwin, this
is a trivial oversight; the assembler supports the directive.  We can
therefore use the default target hook there.

2018-12-23  Iain Sandoe  <iain@sandoe.co.uk>

        * config/i386/darwin.h (TARGET_ASM_OUTPUT_IDENT): New.

From-SVN: r267372

5 years agouse simple-object instead of nm to determine if files contain LTO.
Iain Sandoe [Sun, 23 Dec 2018 10:43:59 +0000 (10:43 +0000)]
use simple-object instead of nm to determine if files contain LTO.

This replaces the use of nm to search for the LTO common symbol marker
and uses simple object to see if there's a section starting with
".gnu.lto_." or ".gnu.offload_lto_"

2018-12-23  Iain Sandoe  <iain@sandoe.co.uk>

* collect2.c (maybe_run_lto_and_relink): Don’t say we have a temp file
unless we actually did some LTO.
(has_lto_section, is_lto_object_file): New.
(maybe_lto_object_file): Remove.
(scan_prog_file): Use is_lto_object_file() instead of scanning the
output of nm.

From-SVN: r267371

5 years agoHandle -save-temps in collect2
Iain Sandoe [Sun, 23 Dec 2018 10:35:28 +0000 (10:35 +0000)]
Handle -save-temps in collect2

Handle the option, make the saved filenames and paths easier to handle.
Don't print '[Leaving...]' for files we never created and don't exist - or unless
verbose is true.

2018-12-23  Iain Sandoe  <iain@sandoe.co.uk>

* collect2.c (main): Parse the output file early so we can make nicer
temp names.  Respond to “-save-temps” in the GCC OPTIONS.
(maybe_unlink): Don’t print “[Leaving…”] for files we never created
and don’t exist.

From-SVN: r267370

5 years agoEnsure collect2 responds to intended commmand line options.
Iain Sandoe [Sun, 23 Dec 2018 10:28:51 +0000 (10:28 +0000)]
Ensure collect2 responds to intended commmand line options.

To ensure compatibility with the flags consumed by ld, some of the flags
needed by collect2 come from the command line and some are passed
in the COLLECT_GCC_OPTIONS.

Here we combine initial parses of both and then set the LTO mode accordingly.

2018-12-23  Iain Sandoe  <iain@sandoe.co.uk>

* collect2.c (main): Combine flags from both the command line and
COLLECT_GCC_OPTIONS to determine the set in force

From-SVN: r267369

5 years agore PR fortran/88328 (ICE in resolve_tag_format, at fortran/io.c:1641)
Steven G. Kargl [Sun, 23 Dec 2018 05:18:27 +0000 (05:18 +0000)]
re PR fortran/88328 (ICE in resolve_tag_format, at fortran/io.c:1641)

2018-12-22  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/88328
* io.c (resolve_tag_format): Add error for zero-sized array.
(gfc_resolve_dt): Manipulate gfc_current_locus to get sensible error
message locus.

2018-12-22  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/88328
* gfortran.dg/pr88328.f90: New test.

From-SVN: r267367

5 years agoDaily bump.
GCC Administrator [Sun, 23 Dec 2018 00:16:22 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r267366

5 years agoRemove support for demangling GCC 2.x era mangling schemes.
Jason Merrill [Sun, 23 Dec 2018 00:06:34 +0000 (19:06 -0500)]
Remove support for demangling GCC 2.x era mangling schemes.

libiberty/
* cplus-dem.c: Remove cplus_mangle_opname, cplus_demangle_opname,
internal_cplus_demangle, and all subroutines.
(libiberty_demanglers): Remove entries for ancient GNU (pre-3.0),
Lucid, ARM, HP, and EDG demangling styles.
(cplus_demangle): Remove 'work' variable.  Don't call
internal_cplus_demangle.
include/
* demangle.h: Remove support for ancient GNU (pre-3.0), Lucid,
ARM, HP, and EDG demangling styles.

From-SVN: r267363

5 years ago* ipa-utils.c (ipa_merge_profiles): Recompute summaries.
Jan Hubicka [Sat, 22 Dec 2018 21:13:41 +0000 (22:13 +0100)]
* ipa-utils.c (ipa_merge_profiles): Recompute summaries.

From-SVN: r267361

5 years agotree.c: (obj_type_ref_class): Move to...
Jan Hubicka [Sat, 22 Dec 2018 20:06:52 +0000 (21:06 +0100)]
tree.c: (obj_type_ref_class): Move to...

* tree.c: (obj_type_ref_class): Move to...
* ipa-devirt.c (obj_type_ref_class): Move to here; lookup main
odr type.
(get_odr_type): Compensate for type simplification.

* g++.dg/ipa/devirt-30.C: Add dg-do.
* g++.dg/lto/devirt-1_0.C: New testcase.
* g++.dg/lto/devirt-2_0.C: New testcase.
* g++.dg/lto/devirt-3_0.C: New testcase.
* g++.dg/lto/devirt-4_0.C: New testcase.
* g++.dg/lto/devirt-5_0.C: New testcase.
* g++.dg/lto/devirt-6_0.C: New testcase.
* g++.dg/lto/devirt-13_0.C: New testcase.
* g++.dg/lto/devirt-14_0.C: New testcase.
* g++.dg/lto/devirt-19_0.C: New testcase.
* g++.dg/lto/devirt-22_0.C: New testcase.
* g++.dg/lto/devirt-23_0.C: New testcase.
* g++.dg/lto/devirt-30_0.C: New testcase.
* g++.dg/lto/devirt-34_0.C: New testcase.

From-SVN: r267359

5 years ago[Patch, PowerPC/Darwin] Fix library export of long double symbols.
Iain Sandoe [Sat, 22 Dec 2018 20:06:47 +0000 (20:06 +0000)]
[Patch, PowerPC/Darwin] Fix library export of long double symbols.

During 8.x, the rs6000 target-specific mangling was reorganised which uncovered
a long-standing bug in Darwin’s mangling for ‘IBM’ long double.  Now the symbols
are correctly mangled, and we end up with a bunch of test link fails.

This patch adds the necessary subset of the Linux long double exports to Darwin’s
export table.

2018-12-22  Iain Sandoe  <iain@sandoe.co.uk>

* /config/os/bsd/darwin/ppc-extra.ver: Append long double symbols.

From-SVN: r267358

5 years agore PR fortran/85798 (ICE in get_array_index, at fortran/data.c:69)
Steven G. Kargl [Sat, 22 Dec 2018 19:37:06 +0000 (19:37 +0000)]
re PR fortran/85798 (ICE in get_array_index, at fortran/data.c:69)

2018-12-22  Steven G . Kargl  <kargl@gcc.gnu.org>

PR fortran/85798
* decl.c (gfc_match_data): If a component of a derived type entity
appears in data statement, check that does not have the allocatable
attribute.

2018-12-22  Steven G . Kargl  <kargl@gcc.gnu.org>

PR fortran/85798
* gfortran.dg/pr85798.f90: New test.

From-SVN: r267356

5 years agore PR fortran/88169 (Rejects USE rename of namelist group)
Steven G. Kargl [Sat, 22 Dec 2018 17:26:12 +0000 (17:26 +0000)]
re PR fortran/88169 (Rejects USE rename of namelist group)

2018-12-21  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/88169
* module.c (mio_namelist): Remove an error condition/message that
is contrary to the Fortran standard.

2018-12-21  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/88169
* gfortran.dg/pr88169_1.f90: new test.
* gfortran.dg/pr88169_2.f90: Ditto.
* gfortran.dg/pr88169_3.f90: Ditto.

From-SVN: r267351

5 years agobackport: re PR fortran/85544 (ICE in gfc_conv_scalarized_array_ref, at fortran/trans...
Thomas Koenig [Sat, 22 Dec 2018 14:21:01 +0000 (14:21 +0000)]
backport: re PR fortran/85544 (ICE in gfc_conv_scalarized_array_ref, at fortran/trans-array.c:3385)

2018-12-22  Thomas Koenig  <tkoenig@gcc.gnu.org>

    Backport from trunk
    PR fortran/85544
    * gfortran.dg/power_7.f90: New test.

From-SVN: r267348

5 years agore PR fortran/85544 (ICE in gfc_conv_scalarized_array_ref, at fortran/trans-array...
Thomas Koenig [Sat, 22 Dec 2018 14:14:44 +0000 (14:14 +0000)]
re PR fortran/85544 (ICE in gfc_conv_scalarized_array_ref, at fortran/trans-array.c:3385)

2018-12-22  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/85544
* frontend-passes.c (optimize_power): Remove.
(optimize_op): Remove call to optimize_power.
* trans-expr.c (gfc_conv_power_op): Handle cases of 1**integer,
(2|4|8|16) ** integer and (-1) ** integer.

2018-12-22  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/85544
* gfortran.dg/power_7.f90: New test.

From-SVN: r267347

5 years agoDaily bump.
GCC Administrator [Sat, 22 Dec 2018 00:16:32 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r267346

5 years agore PR fortran/69121 (IEEE_SCALB is not generic)
Steven G. Kargl [Fri, 21 Dec 2018 21:09:17 +0000 (21:09 +0000)]
re PR fortran/69121 (IEEE_SCALB is not generic)

2018-12-21  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/69121
* ieee/ieee_arithmetic.F90: Provide missing interfaces for IEEE_SCALB.

2018-12-21  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/69121
* gfortran.dg/ieee/ieee_9.f90: New test.

From-SVN: r267343

5 years agore PR c++/86524 (std::less with pointer arguments not usable in static_assert in...
Jakub Jelinek [Fri, 21 Dec 2018 19:58:36 +0000 (20:58 +0100)]
re PR c++/86524 (std::less with pointer arguments not usable in static_assert in constexpr function)

PR c++/86524
PR c++/88446
* cp-tree.h (cp_fold_maybe_rvalue, cp_fold_rvalue): Declare.
(fold_non_dependent_expr): Add manifestly_const_eval argument.
* constexpr.c (cxx_eval_builtin_function_call): Evaluate
__builtin_constant_p if ctx->manifestly_const_eval even in constexpr
functions.  Don't reuse dummy{1,2} vars between different arguments.
Use cp_fold_rvalue instead of cp_fully_fold.  Fix comment typo.
(fold_non_dependent_expr): Add manifestly_const_eval argument, pass
it through to cxx_eval_outermost_constant_expr and
maybe_constant_value.
* cp-gimplify.c (cp_fold_maybe_rvalue, cp_fold_rvalue): No longer
static.
* semantics.c (finish_static_assert): Call fold_non_dependent_expr
with true as manifestly_const_eval.

* g++.dg/cpp1y/constexpr-86524.C: New test.
* g++.dg/cpp2a/is-constant-evaluated4.C: New test.
* g++.dg/cpp2a/is-constant-evaluated5.C: New test.
* g++.dg/cpp2a/is-constant-evaluated6.C: New test.

From-SVN: r267341

5 years agocorrect double semi-colons
Paul Thomas [Fri, 21 Dec 2018 19:25:02 +0000 (19:25 +0000)]
correct double semi-colons

From-SVN: r267340

5 years agore PR middle-end/85594 (ICE during expand when compiling with -fwrapv -fopenmp)
Jakub Jelinek [Fri, 21 Dec 2018 19:17:13 +0000 (20:17 +0100)]
re PR middle-end/85594 (ICE during expand when compiling with -fwrapv -fopenmp)

PR middle-end/85594
PR middle-end/88553
* omp-expand.c (extract_omp_for_update_vars): Regimplify the condition
if needed.
(expand_omp_for_generic): Don't clobber t temporary for ordered loops.

* gcc.dg/gomp/pr85594.c: New test.
* gcc.dg/gomp/pr88553.c: New test.

From-SVN: r267339

5 years agore PR ipa/88561 (PGO devirtualization miscompilation of firefox)
Jan Hubicka [Fri, 21 Dec 2018 19:13:06 +0000 (20:13 +0100)]
re PR ipa/88561 (PGO devirtualization miscompilation of firefox)

PR ipa/88561
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::ipa_polymorphic_call_context): Handle
arguments of thunks correctly.
(ipa_polymorphic_call_context::get_dynamic_context): Be ready for
NULL instance pinter.
* lto-cgraph.c (lto_output_node): Always stream thunk info.

From-SVN: r267338

5 years agore PR fortran/87881 (gfortran.dg/inquiry_type_ref_(1.f08|3.f90) fail on darwin)
Paul Thomas [Fri, 21 Dec 2018 19:09:42 +0000 (19:09 +0000)]
re PR fortran/87881 (gfortran.dg/inquiry_type_ref_(1.f08|3.f90) fail on darwin)

2018-12-21  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/87881
* expr.c (find_inquiry_ref): Loop through the inquiry refs in
case there are two of them.
(simplify_ref_chain): Return true after a successful call to
find_inquiry_ref.

2018-12-21  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/87881
* gfortran.dg/inquiry_part_ref_4.f90: New test.

From-SVN: r267337

5 years agoS/390: Add support for double<->long vector converts
Andreas Krebbel [Fri, 21 Dec 2018 18:57:00 +0000 (18:57 +0000)]
S/390: Add support for double<->long vector converts

gcc/ChangeLog:

2018-12-21  Andreas Krebbel  <krebbel@linux.ibm.com>

* config/s390/vector.md ("floatv2div2df2", "floatunsv2div2df2")
("fix_truncv2dfv2di2", "fixuns_truncv2dfv2di2"): New pattern
definitions.

gcc/testsuite/ChangeLog:

2018-12-21  Andreas Krebbel  <krebbel@linux.ibm.com>

* gcc.target/s390/vector/fp-signedint-convert-1.c: New test.
* gcc.target/s390/vector/fp-unsignedint-convert-1.c: New test.

From-SVN: r267336

5 years agopr88418.c (dg-options): Add -mno-avx.
Uros Bizjak [Fri, 21 Dec 2018 18:13:22 +0000 (19:13 +0100)]
pr88418.c (dg-options): Add -mno-avx.

        * gcc.target/i386/pr88418.c (dg-options): Add -mno-avx.

From-SVN: r267334

5 years agoUpdate maintainer email address
Thomas Preud'homme [Fri, 21 Dec 2018 17:53:03 +0000 (17:53 +0000)]
Update maintainer email address

2018-12-21  Thomas Preud'homme  <thomas.preudhomme@linaro.org>

    * MAINTAINERS (Write After Approval): Update my maintainer address.

From-SVN: r267330

5 years ago* MAINTAINERS (Write After Approval): Add myself.
Gergö Barany [Fri, 21 Dec 2018 17:23:16 +0000 (17:23 +0000)]
* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r267329

5 years agore PR rtl-optimization/87727 (gcc.target/sparc/overflow-2.c FAILs)
Eric Botcazou [Fri, 21 Dec 2018 16:09:23 +0000 (16:09 +0000)]
re PR rtl-optimization/87727 (gcc.target/sparc/overflow-2.c FAILs)

PR rtl-optimization/87727
* combine.c (cant_combine_insn_p): On a LEAF_REGISTERS target, combine
again moves from leaf hard registers.

* final.c (final_scan_insn_1) <NOTE_INSN_INLINE_ENTRY>: Minor tweak.

From-SVN: r267328

5 years agore PR target/88522 (Error: operand size mismatch for `vpgatherqq')
Jakub Jelinek [Fri, 21 Dec 2018 16:01:53 +0000 (17:01 +0100)]
re PR target/88522 (Error: operand size mismatch for `vpgatherqq')

PR target/88522
* config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask,
*avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask,
*avx512pf_scatterpf<mode>df_mask): Use %X5 instead of %5 for
-masm=intel.
(gatherq_mode): Remove mode iterator.
(*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2): Use X instead
of <xtg_mode>.
(*avx512f_gatherdi<mode>): Use X instead of <gatherq_mode>.
(*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>,
*avx512f_scatterdi<mode>): Use %X5 for -masm=intel.

From-SVN: r267327

5 years agore PR rtl-optimization/88563 (wrong code with -O2 -fno-code-hoisting -fno-tree-ccp...
Jakub Jelinek [Fri, 21 Dec 2018 15:54:55 +0000 (16:54 +0100)]
re PR rtl-optimization/88563 (wrong code with -O2 -fno-code-hoisting -fno-tree-ccp -fno-tree-dominator-opts -fno-tree-forwprop -fno-tree-fre -fno-tree-pre -fno-tree-vrp)

PR rtl-optimization/88563
* expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Swap innermode
and mode arguments to convert_modes.  Likewise swap mode and word_mode
arguments.  Handle both arguments with VOIDmode before convert_modes
of one of them.  Formatting fixes.

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

From-SVN: r267326

5 years agore PR target/88556 (Inline built-in sinh, cosh, tanh for -ffast-math)
Uros Bizjak [Fri, 21 Dec 2018 13:30:58 +0000 (14:30 +0100)]
re PR target/88556 (Inline built-in sinh, cosh, tanh for -ffast-math)

PR target/88556
* internal-fn.def (COSH): New.
(SINH): Ditto.
(TANH): Ditto.
* optabs.def (cosh_optab): New.
(sinh_optab): Ditto.
(tanh_optab): Ditto.
* config/i386/i386-protos.h (ix86_emit_i387_sinh): New prototype.
(ix86_emit_i387_cosh): Ditto.
(ix86_emit_i387_tanh): Ditto.
* config/i386/i386.c (ix86_emit_i387_sinh): New function.
(ix86_emit_i387_cosh): Ditto.
(ix86_emit_i387_tanh): Ditto.
* config/i386/i386.md (sinhxf2): New expander.
(sinh<mode>2): Ditto.
(coshxf2): Ditto.
(cosh<mode>2): Ditto.
(tanhxf2): Ditto.
(tanh<mode>2): Ditto.

From-SVN: r267325

5 years agore PR c++/87125 (ICE in tsubst_copy starting with r261084)
Jakub Jelinek [Fri, 21 Dec 2018 12:11:57 +0000 (13:11 +0100)]
re PR c++/87125 (ICE in tsubst_copy starting with r261084)

PR c++/87125
* g++.dg/cpp0x/pr87125.C: New test.

From-SVN: r267324

5 years ago[ARM] Fix size-optimization-ieee testcase failure
Thomas Preud'homme [Fri, 21 Dec 2018 11:49:04 +0000 (11:49 +0000)]
[ARM] Fix size-optimization-ieee testcase failure

On some version of dejagnu, options in RUNTESTFLAGS are appended to the
command-line and thus any -mfloat-abi=softfp or -mfloat-abi=hard in
there overwrite the -mfloat-abi=soft in the dg-options for
size-optimization-ieee-* tests. Test is still run though because
arm_soft_ok returns true if -mfloat-abi=soft is accepted, even if the
file is not compiled for softfloat due to a later -mfloat-abi on the
command line.

This patch adds a dg-skip-if to those tests to ensure they are not run
in softfp or hard mode.

2018-12-21  Thomas Preud'homme  <thomas.preudhomme@linaro.org>

    gcc/testsuite/
    * gcc.target/arm/size-optimization-ieee-1.c: Skip if passing
    -mfloat-abi=softfp or -mfloat-abi=hard.
    * gcc.target/arm/size-optimization-ieee-2.c: Likewise.
    * gcc.target/arm/size-optimization-ieee-3.c: Likewise.

From-SVN: r267323

5 years agore PR target/88547 (missed optimization for vector comparisons)
Jakub Jelinek [Fri, 21 Dec 2018 10:37:11 +0000 (11:37 +0100)]
re PR target/88547 (missed optimization for vector comparisons)

PR target/88547
* config/i386/i386.c (ix86_expand_int_sse_cmp): Optimize
x > y ? 0 : -1 into min (x, y) == x ? -1 : 0.

* gcc.target/i386/pr88547-1.c: Expect only 2 knotb and 2 knotw
insns instead of 4, check for vpminud, vpminuq and no vpsubd or
vpsubq.
* gcc.target/i386/sse2-pr88547-1.c: New test.
* gcc.target/i386/sse2-pr88547-2.c: New test.
* gcc.target/i386/sse4_1-pr88547-1.c: New test.
* gcc.target/i386/sse4_1-pr88547-2.c: New test.
* gcc.target/i386/avx2-pr88547-1.c: New test.
* gcc.target/i386/avx2-pr88547-2.c: New test.
* gcc.target/i386/avx512f-pr88547-2.c: New test.
* gcc.target/i386/avx512vl-pr88547-1.c: New test.
* gcc.target/i386/avx512vl-pr88547-2.c: New test.
* gcc.target/i386/avx512vl-pr88547-3.c: New test.
* gcc.target/i386/avx512f_cond_move.c (y): Change from unsigned int
array to int array.

From-SVN: r267322

5 years agox86: VAESDEC{,LAST} allow memory inputs
Jan Beulich [Fri, 21 Dec 2018 09:31:30 +0000 (09:31 +0000)]
x86: VAESDEC{,LAST} allow memory inputs

They are no different from their VAESENC{,LAST} counterparts in this
regard.

From-SVN: r267321

5 years agosupport --with-multilib-list=@name for ARM
Alexandre Oliva [Fri, 21 Dec 2018 05:40:53 +0000 (05:40 +0000)]
support --with-multilib-list=@name for ARM

Introduce @name as a means to specify alternate multilib profiles as
arguments to --with-multilib-list.

So far this is only implemented for ARM.

for  gcc/ChangeLog

* config.gcc (tmake_file): Add name to tmake_file for
        each @name in --with-multilib-list on arm-*-* targets.
* doc/install.texi (with-multilib-list): Document it.

From-SVN: r267320

5 years agoPR c++/88196 - ICE with class non-type template parameter.
Marek Polacek [Fri, 21 Dec 2018 03:34:06 +0000 (03:34 +0000)]
PR c++/88196 - ICE with class non-type template parameter.

* pt.c (convert_nontype_argument): If the expr is a PTRMEM_CST, also
check if the type we're converting it to is TYPE_PTRMEM_P.

* g++.dg/cpp0x/ptrmem-cst-arg1.C: Tweak dg-error.
* g++.dg/cpp2a/nontype-class10.C: New test.
* g++.dg/template/pr54858.C: Tweak dg-error.

From-SVN: r267319

5 years agotree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use DR_TARGET_ALIGNMENT...
Jakub Jelinek [Fri, 21 Dec 2018 01:03:33 +0000 (02:03 +0100)]
tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use DR_TARGET_ALIGNMENT on dr_info rather than dr.

* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use
DR_TARGET_ALIGNMENT on dr_info rather than dr.  Spelling fixes.

From-SVN: r267318

5 years agoDaily bump.
GCC Administrator [Fri, 21 Dec 2018 00:16:33 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r267317

5 years agotree-vect-data-refs.c (vect_enhance_data_refs_alignment): Don't do versioning for...
Joern Rennecke [Thu, 20 Dec 2018 23:00:00 +0000 (23:00 +0000)]
tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Don't do versioning for data accesses with misaligned step.

2018-12-20  Joern Rennecke  <joern.rennecke@riscy-ip.com>

        * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Don't do
        versioning for data accesses with misaligned step.

From-SVN: r267314

5 years agoC/C++: Add -Waddress-of-packed-member
H.J. Lu [Thu, 20 Dec 2018 21:41:48 +0000 (21:41 +0000)]
C/C++: Add -Waddress-of-packed-member

When address of packed member of struct or union is taken, it may result
in an unaligned pointer value.  This patch adds -Waddress-of-packed-member
to check alignment at pointer assignment and warn unaligned address as
well as unaligned pointer:

$ cat x.i
struct pair_t
{
  char c;
  int i;
} __attribute__ ((packed));

extern struct pair_t p;
int *addr = &p.i;
$ gcc -O2 -S x.i
x.i:8:13: warning: taking address of packed member of ‘struct pair_t’ may result in an unaligned pointer value [-Waddress-of-packed-member]
8 | int *addr = &p.i;
  |             ^

$ cat c.i
struct B { int i; };
struct C { struct B b; } __attribute__ ((packed));

long* g8 (struct C *p) { return p; }
$ gcc -O2 -S c.i -Wno-incompatible-pointer-types
c.i: In function ‘g8’:
c.i:4:18: warning: converting a packed ‘struct C *’ pointer (alignment 1) to ‘long int *’ (alignment 8) may may result in an unaligned pointer value [-Waddress-of-packed-member]
4 | long* g8 (struct C *p) { return p; }
  |                  ^
c.i:2:8: note: defined here
2 | struct C { struct B b; } __attribute__ ((packed));
  |        ^
$

This warning is enabled by default.  Since read_encoded_value_with_base
in unwind-pe.h has

  union unaligned
    {
      void *ptr;
      unsigned u2 __attribute__ ((mode (HI)));
      unsigned u4 __attribute__ ((mode (SI)));
      unsigned u8 __attribute__ ((mode (DI)));
      signed s2 __attribute__ ((mode (HI)));
      signed s4 __attribute__ ((mode (SI)));
      signed s8 __attribute__ ((mode (DI)));
    } __attribute__((__packed__));
  _Unwind_Internal_Ptr result;

and GCC warns:

gcc/libgcc/unwind-pe.h:210:37: warning: taking address of packed member of 'union unaligned' may result in an unaligned pointer value [-Waddress-of-packed-member]
    result = (_Unwind_Internal_Ptr) u->ptr;
                                    ^
we need to add GCC pragma to ignore -Waddress-of-packed-member.

gcc/

PR c/51628
* doc/invoke.texi: Document -Wno-address-of-packed-member.

gcc/c-family/

PR c/51628
* c-common.h (warn_for_address_or_pointer_of_packed_member): New.
* c-warn.c (check_alignment_of_packed_member): New function.
(check_address_of_packed_member): Likewise.
(check_and_warn_address_of_packed_member): Likewise.
(warn_for_address_or_pointer_of_packed_member): Likewise.
* c.opt: Add -Wno-address-of-packed-member.

gcc/c/

PR c/51628
* c-typeck.c (convert_for_assignment): Call
warn_for_address_or_pointer_of_packed_member.

gcc/cp/

PR c/51628
* call.c (convert_for_arg_passing): Call
warn_for_address_or_pointer_of_packed_member.
* typeck.c (convert_for_assignment): Likewise.

gcc/testsuite/

PR c/51628
* c-c++-common/pr51628-1.c: New test.
* c-c++-common/pr51628-2.c: Likewise.
* c-c++-common/pr51628-3.c: Likewise.
* c-c++-common/pr51628-4.c: Likewise.
* c-c++-common/pr51628-5.c: Likewise.
* c-c++-common/pr51628-6.c: Likewise.
* c-c++-common/pr51628-7.c: Likewise.
* c-c++-common/pr51628-8.c: Likewise.
* c-c++-common/pr51628-9.c: Likewise.
* c-c++-common/pr51628-10.c: Likewise.
* c-c++-common/pr51628-11.c: Likewise.
* c-c++-common/pr51628-12.c: Likewise.
* c-c++-common/pr51628-13.c: Likewise.
* c-c++-common/pr51628-14.c: Likewise.
* c-c++-common/pr51628-15.c: Likewise.
* c-c++-common/pr51628-26.c: Likewise.
* c-c++-common/pr51628-27.c: Likewise.
* c-c++-common/pr51628-28.c: Likewise.
* c-c++-common/pr51628-29.c: Likewise.
* c-c++-common/pr51628-30.c: Likewise.
* c-c++-common/pr51628-31.c: Likewise.
* c-c++-common/pr51628-32.c: Likewise.
* gcc.dg/pr51628-17.c: Likewise.
* gcc.dg/pr51628-18.c: Likewise.
* gcc.dg/pr51628-19.c: Likewise.
* gcc.dg/pr51628-20.c: Likewise.
* gcc.dg/pr51628-21.c: Likewise.
* gcc.dg/pr51628-22.c: Likewise.
* gcc.dg/pr51628-23.c: Likewise.
* gcc.dg/pr51628-24.c: Likewise.
* gcc.dg/pr51628-25.c: Likewise.
* c-c++-common/asan/misalign-1.c: Add
-Wno-address-of-packed-member.
* c-c++-common/asan/misalign-2.c: Likewise.
* c-c++-common/ubsan/align-2.c: Likewise.
* c-c++-common/ubsan/align-4.c: Likewise.
* c-c++-common/ubsan/align-6.c: Likewise.
* c-c++-common/ubsan/align-7.c: Likewise.
* c-c++-common/ubsan/align-8.c: Likewise.
* c-c++-common/ubsan/align-10.c: Likewise.
* g++.dg/ubsan/align-2.C: Likewise.
* gcc.target/i386/avx512bw-vmovdqu16-2.c: Likewise.
* gcc.target/i386/avx512f-vmovdqu32-2.c: Likewise.
* gcc.target/i386/avx512f-vmovdqu64-2.c: Likewise.
* gcc.target/i386/avx512vl-vmovdqu16-2.c: Likewise.
* gcc.target/i386/avx512vl-vmovdqu32-2.c: Likewise.
* gcc.target/i386/avx512vl-vmovdqu64-2.c: Likewise.

libgcc/

* unwind-pe.h (read_encoded_value_with_base): Add GCC pragma
to ignore -Waddress-of-packed-member.

From-SVN: r267313

5 years agoieee_arithmetic.F90: Re-organize file to eliminate #ifdef ...
Steven G. Kargl [Thu, 20 Dec 2018 19:39:30 +0000 (19:39 +0000)]
ieee_arithmetic.F90: Re-organize file to eliminate #ifdef ...

2018-12-20  Steven G. Kargl  <kargl@gcc.gnu.org>

* libgfortran/ieee/ieee_arithmetic.F90: Re-organize file to
eliminate #ifdef ... #endif.  No functional change.

From-SVN: r267312

5 years agoFix filesystem::path tests that fail on Windows
Jonathan Wakely [Thu, 20 Dec 2018 18:12:11 +0000 (18:12 +0000)]
Fix filesystem::path tests that fail on Windows

* testsuite/27_io/filesystem/operations/proximate.cc: Fix test for
MinGW.
* testsuite/27_io/filesystem/path/append/source.cc: Likewise.
* testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.

From-SVN: r267308

5 years agore PR target/88457 (ICE: Max. number of generated reload insns per insn is achieved...
Vladimir Makarov [Thu, 20 Dec 2018 18:07:51 +0000 (18:07 +0000)]
re PR target/88457 (ICE: Max. number of generated reload insns per insn is achieved (90))

2018-12-20  Vladimir Makarov  <vmakarov@redhat.com>

PR target/88457
* ira-color.c (fast_allocation): Choose the best cost hard reg.

2018-12-20  Vladimir Makarov  <vmakarov@redhat.com>

PR target/88457
* ira-color.c (fast_allocation): Choose the best cost hard reg.

From-SVN: r267307

5 years agore PR c++/88180 (ICE in vec<tree_node*, va_gc, vl_embed>::quick_push(tree_node* const&))
Jakub Jelinek [Thu, 20 Dec 2018 17:34:19 +0000 (18:34 +0100)]
re PR c++/88180 (ICE in vec<tree_node*, va_gc, vl_embed>::quick_push(tree_node* const&))

PR c++/88180
* parser.c (cp_parser_class_specifier_1): If
cp_parser_check_type_definition fails, skip default arguments, NSDMIs,
etc. like for erroneous template args.

* g++.dg/parse/pr88180.C: New test.
* g++.dg/pr85039-1.C: Don't expect diagnostics inside of the type
definition's NSDMIs.

From-SVN: r267306

5 years agocp-tree.h (cp_fully_fold_init): Declare.
Jakub Jelinek [Thu, 20 Dec 2018 17:31:05 +0000 (18:31 +0100)]
cp-tree.h (cp_fully_fold_init): Declare.

* cp-tree.h (cp_fully_fold_init): Declare.
* cp-gimplify.c (cp_fully_fold_init): New function.
* typeck2.c (split_nonconstant_init, store_init_value): Use it
instead of cp_fully_fold.

From-SVN: r267305

5 years ago[AArch64][SVE] Add ABS support
Richard Sandiford [Thu, 20 Dec 2018 16:34:31 +0000 (16:34 +0000)]
[AArch64][SVE] Add ABS support

For some reason we missed ABS out of the list of supported integer
operations when adding the SVE port initially.

2018-12-20  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* config/aarch64/iterators.md (SVE_INT_UNARY, fp_int_op): Add abs.
(SVE_FP_UNARY): Sort.

gcc/testsuite/
* gcc.target/aarch64/pr64946.c: Force nosve.
* gcc.target/aarch64/ssadv16qi.c: Likewise.
* gcc.target/aarch64/usadv16qi.c: Likewise.
* gcc.target/aarch64/vect-abs-compile.c: Likewise.
* gcc.target/aarch64/sve/abs_1.c: New test.

From-SVN: r267304

5 years ago[AArch64][SVE] Fix IFN_COND_FMLA movprfx alternative
Richard Sandiford [Thu, 20 Dec 2018 16:32:46 +0000 (16:32 +0000)]
[AArch64][SVE] Fix IFN_COND_FMLA movprfx alternative

This patch fixes a cut-&-pasto in the (match_dup 4) version of
"cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>".  (It's a shame
that there's so much cut-&-paste in these patterns, but it's hard
to avoid without more infrastructure.)

2018-12-20  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* config/aarch64/aarch64-sve.md (*cond_<optab><mode>_4): Use
sve_fmla_op rather than sve_fmad_op for the movprfx alternative.

gcc/testsuite/
* gcc.target/aarch64/sve/fmla_2.c: New test.
* gcc.target/aarch64/sve/fmla_2_run.c: Likewise

From-SVN: r267303

5 years agoPR tree-optimization/84053 - missing -Warray-bounds accessing a local array across...
Martin Sebor [Thu, 20 Dec 2018 16:25:13 +0000 (16:25 +0000)]
PR tree-optimization/84053 - missing -Warray-bounds accessing a local array across inlined function boundaries

gcc/testsuite/ChangeLog:
* gcc.dg/Warray-bounds-36.c: New test.

From-SVN: r267302

5 years ago-Wtautological-compare: fix comparison of macro expansions
David Malcolm [Thu, 20 Dec 2018 14:18:48 +0000 (14:18 +0000)]
-Wtautological-compare: fix comparison of macro expansions

gcc/c-family/ChangeLog:
PR c++/87504
* c-warn.c (get_outermost_macro_expansion): New function.
(spelled_the_same_p): Use it to unwind the macro expansions, and
compare the outermost macro in each nested expansion, rather than
the innermost.

gcc/testsuite/ChangeLog:
PR c++/87504
* c-c++-common/Wtautological-compare-8.c: New test.

From-SVN: r267299

5 years ago[PR 88214] Assert that ptr is a pointer
Martin Jambor [Thu, 20 Dec 2018 14:14:22 +0000 (15:14 +0100)]
[PR 88214] Assert that ptr is a pointer

2018-12-20  Martin Jambor  <mjambor@suse.cz>

PR ipa/88214
* tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Assert that
ptr is a pointer.

From-SVN: r267298

5 years agoAdd missing test from previous commit
Jonathan Wakely [Thu, 20 Dec 2018 12:32:17 +0000 (12:32 +0000)]
Add missing test from previous commit

* testsuite/27_io/filesystem/directory_entry/lwg3171.cc: New test
(missed from previous commit).

From-SVN: r267297

5 years agore PR tree-optimization/84362 (Auto-vectorization regression when accessing member...
Richard Biener [Thu, 20 Dec 2018 11:39:59 +0000 (11:39 +0000)]
re PR tree-optimization/84362 (Auto-vectorization regression when accessing member variable through getter/accessor)

2018-12-20  Richard Biener  <rguenther@suse.de>

PR tree-optimization/84362
* tree-ssa-loop-im.c: Include alias.h, builtins.h and tree-dfa.h.
(struct im_mem_ref): add ref_canonical flag.
(struct mem_ref_hasher): Use ao_ref as compare_type.
(mem_ref_hasher::equal): Adjust and add variant comparing ao_ref
parts.
(mem_ref_alloc): Take ao_ref parameter, initialize ref_canonical
member.
(gather_mem_refs_stmt): Set up ao_ref early and do the lookup
using it.  If we have non-equal refs canonicalize the one
in the hashtable used for insertion.
(tree_ssa_lim_initialize): Adjust.

* g++.dg/vect/pr84362.cc: New testcase.

From-SVN: r267296

5 years agofix typo.
Xiong Hu Luo [Thu, 20 Dec 2018 08:44:42 +0000 (08:44 +0000)]
fix typo.

From-SVN: r267294

5 years agore PR target/88547 (missed optimization for vector comparisons)
Jakub Jelinek [Thu, 20 Dec 2018 07:58:02 +0000 (08:58 +0100)]
re PR target/88547 (missed optimization for vector comparisons)

PR target/88547
* config/i386/i386.c (ix86_expand_sse_movcc): For maskcmp, try to
emit vpmovm2? instruction perhaps after knot?.  Reorganize code
so that it doesn't have to test !maskcmp in almost every conditional.

* gcc.target/i386/pr88547-1.c: New test.

From-SVN: r267293

5 years ago[RS6000] Fix non-linux powerpc breakage
Alan Modra [Thu, 20 Dec 2018 01:08:14 +0000 (11:38 +1030)]
[RS6000] Fix non-linux powerpc breakage

svn r266496, git commit ab6b1bb456f broke non-linux powerpc builds
due to GNU_USER_DYNAMIC_LINKER being undefined.

* config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Define.

From-SVN: r267292

5 years agoDaily bump.
GCC Administrator [Thu, 20 Dec 2018 00:16:44 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r267291

5 years agore PR fortran/87992 (ICE in resolve_fl_variable, at fortran/resolve.c:12314)
Steven G. Kargl [Wed, 19 Dec 2018 22:31:25 +0000 (22:31 +0000)]
re PR fortran/87992 (ICE in resolve_fl_variable, at fortran/resolve.c:12314)

2018-12-19  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/87992
* resolve.c (resolve_fl_variable): Avoid a NULL pointer.

2018-12-19  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/87992
* gfortran.dg/pr87992.f90: New test.

From-SVN: r267288

5 years agoconfig.gcc: Enable TARGET_DEFAULT_ASYNC_UNWIND_TABLES on aarch64*-*-freebsd*
Andreas Tobler [Wed, 19 Dec 2018 21:41:03 +0000 (22:41 +0100)]
config.gcc: Enable TARGET_DEFAULT_ASYNC_UNWIND_TABLES on aarch64*-*-freebsd*

2018-12-19  Andreas Tobler  <andreast@gcc.gnu.org>

* config.gcc: Enable TARGET_DEFAULT_ASYNC_UNWIND_TABLES on
aarch64*-*-freebsd*

From-SVN: r267287

5 years agoi386.md (SWI1248_AVX512BWDQ_64): Rename from SWI1248_AVX512BWDQ2_64.
Uros Bizjak [Wed, 19 Dec 2018 20:44:59 +0000 (21:44 +0100)]
i386.md (SWI1248_AVX512BWDQ_64): Rename from SWI1248_AVX512BWDQ2_64.

* config/i386/i386.md (SWI1248_AVX512BWDQ_64): Rename from
SWI1248_AVX512BWDQ2_64.  Unconditionally enable HImode.
(*cmp<mode>_ccz_1): Emit kortest instead of ktest insn.
Use SWI1248_AVX512BWDQ_64 mode iterator and enable only for
TARGET_AVX512F.

testsuite/ChangeLog:

* gcc.target/i386/avx512dq-pr82855.c: Update scan-assembler pattern.

From-SVN: r267286

5 years agoFix grammar in libstdc++ ABI history documentation
Jonathan Wakely [Wed, 19 Dec 2018 20:16:57 +0000 (20:16 +0000)]
Fix grammar in libstdc++ ABI history documentation

* doc/xml/manual/abi.xml: Add missing word.

From-SVN: r267285

5 years ago[ARM] Optimize executable size when using softfloat fmul/dmul
Thomas Preud'homme [Wed, 19 Dec 2018 17:34:18 +0000 (17:34 +0000)]
[ARM] Optimize executable size when using softfloat fmul/dmul

Softfloat single precision and double precision floating-point
multiplication routines in libgcc share some code with the
floating-point division of their corresponding precision. As the code
is structured now, this leads to *all* division code being pulled in an
executable in softfloat mode even if only multiplication is
performed.

This patch create some new LIB1ASMFUNCS macros to also build files with
just the multiplication and shared code as weak symbols. By putting
these earlier in the static library, they can then be picked up when
only multiplication is used and they are overriden by the global
definition in the existing file containing both multiplication and
division code when division is needed.

The patch also removes changes made to the FUNC_START and ARM_FUNC_START
macros in r218124 since the intent was to put multiplication and
division code into their own section in a later patch to achieve the
same size optimization. That approach relied on specific section layout
to ensure multiplication and division were not too far from the shared
bit of code in order to the branches to be within range. Due to lack of
guarantee regarding section layout, in particular with all the
possibility of linker scripts, this approach was chosen instead. This
patch keeps the two testcases that were posted by Tony Wang on the mailing
list to implement this approach and adds a new one.

2018-12-19  Thomas Preud'homme  <thomas.preudhomme@linaro.org>

    libgcc/
    * /config/arm/lib1funcs.S (FUNC_START): Remove unused sp_section
    parameter and corresponding code.
    (ARM_FUNC_START): Likewise in both definitions.
    Also update footer comment about condition that need to match with
    gcc/config/arm/elf.h to also include libgcc/config/arm/t-arm.
    * config/arm/ieee754-df.S (muldf3): Also build it if L_arm_muldf3 is
    defined.  Weakly define it in this case.
    * config/arm/ieee754-sf.S (mulsf3): Likewise with L_arm_mulsf3.
    * config/arm/t-elf (LIB1ASMFUNCS): Build _arm_muldf3.o and
    _arm_mulsf3.o before muldiv versions if targeting Thumb-1 only. Add
    comment to keep condition in sync with the one in
    libgcc/config/arm/lib1funcs.S and gcc/config/arm/elf.h.

    gcc/
    * config/arm/elf.h: Update comment about condition that need to
    match with libgcc/config/arm/lib1funcs.S to also include
    libgcc/config/arm/t-arm.
    * doc/sourcebuild.texi (output-exists, output-exists-not): Rename
    subsubsection these directives are in to "Check for output files".
    Move scan-symbol to that section and add to it new scan-symbol-not
    directive.

2018-12-19  Tony Wang  <tony.wang@arm.com>
    Thomas Preud'homme  <thomas.preudhomme@linaro.org>

    gcc/testsuite/
    * lib/lto.exp (lto-execute): Define output_file and testname_with_flags
    to same value as execname.
    (scan-symbol): Move and rename to ...
    * lib/gcc-dg.exp (scan-symbol-common): This.  Adapt into a
    helper function returning true or false if a symbol is present.
    (scan-symbol): New procedure.
    (scan-symbol-not): Likewise.
    * gcc.target/arm/size-optimization-ieee-1.c: New testcase.
    * gcc.target/arm/size-optimization-ieee-2.c: Likewise.
    * gcc.target/arm/size-optimization-ieee-3.c: Likewise.

From-SVN: r267282

5 years ago[nvptx] Add PTX_CTA_SIZE
Tom de Vries [Wed, 19 Dec 2018 17:16:10 +0000 (17:16 +0000)]
[nvptx] Add PTX_CTA_SIZE

2018-12-19  Tom de Vries  <tdevries@suse.de>

* config/nvptx/nvptx.c (PTX_CTA_SIZE): Define.

From-SVN: r267281