* 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
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
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
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
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
* 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
* 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
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
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
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
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
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
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
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
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
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
* 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
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
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
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
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
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
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
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
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
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
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
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
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