Commit Graph

160390 Commits

Author SHA1 Message Date
Vladimir Makarov
e0cd6bc009 re PR target/83712 ("Unable to find a register to spill" when compiling for thumb1)
2018-03-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/83712
	* lra-assigns.c (assign_by_spills): Return a flag of reload
	assignment failure.  Do not process the reload assignment
	failures.  Do not spill other reload pseudos if they has the same
	reg class.
	(lra_assign): Add a return arg.  Set up from the result of
	assign_by_spills call.
	(find_reload_regno_insns, lra_split_hard_reg_for): New functions.
	* lra-constraints.c (split_reg): Add a new arg.  Use it instead of
	usage_insns if it is not NULL.
	(spill_hard_reg_in_range): New function.
	(split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg.
	* lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New
	function prototypes.
	(lra_assign): Change prototype.
	* lra.c (lra): Add code to deal with fails by splitting hard reg
	live ranges.

2018-03-09  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/83712
	* gcc.target/arm/pr83712.c: New.

From-SVN: r258390
2018-03-09 16:00:36 +00:00
Kyrylo Tkachov
a4017ff772 [arm] PR target/83193: Do not print arch/cpu hints twice on invalid -march/-mcpu
Currently when handling an invalid -march or -mcpu option on a toolchain without an explicit --with-mode configuration
and compiling without an explicit -mthumb or -marm the arm specs end up calling arm_target_thumb_only to determine
the "thumbness" of the target, which involves parsing the architecture or cpu name. But the functions doing that
parsing also emit error messages and hints on invalid arguments. Later when we parse the architecture or cpu string to
as part of the canonicalisation process (arm_canon_arch_option) we end up emitting the errors again.

The solution in this patch is to silence the errors during the arm_target_thumb_only processing so that they are not emitted
twice. arm_canon_arch_option is guaranteed to run as well, so it can emit the errors and hints that it needs.

Bootstrapped and tested on arm-none-linux-gnueabihf.

Checked that we emit the arch/cpu hints for invalid -march/-mcpu options only once when no "thumbness" options were specified
during configuration or invocation.

	PR target/83193
	* common/config/arm/arm-common.c (arm_parse_arch_option_name):
	Accept complain bool parameter.  Only emit errors if it is true.
	(arm_parse_cpu_option_name): Likewise.
	(arm_target_thumb_only): Adjust callers of the above.
	* config/arm/arm-protos.h (arm_parse_cpu_option_name): Adjust
	prototype to take a default true bool parameter.
	(arm_parse_arch_option_name): Likewise.

From-SVN: r258389
2018-03-09 15:42:10 +00:00
David Malcolm
deb3da39d6 jit: use 'configure' to replace hard-coded linker options (PR jit/64089 and PR jit/84288)
gcc/ChangeLog:
	PR jit/64089
	PR jit/84288
	* Makefile.in (LD_VERSION_SCRIPT_OPTION, LD_SONAME_OPTION): New.
	* configure: Regenerate.
	* configure.ac ("linker --version-script option"): New.
	("linker soname option"): New.

gcc/jit/ChangeLog:
	PR jit/64089
	PR jit/84288
	* Make-lang.in (COMMA): New.
	(LIBGCCJIT_VERSION_SCRIPT_OPTION): New.
	(LIBGCCJIT_SONAME_OPTION): New.
	(jit): Move --version-script and -soname linker options to the
	above.


Co-Authored-By: Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>

From-SVN: r258388
2018-03-09 15:24:44 +00:00
Richard Biener
20003c3cc3 re PR tree-optimization/84775 (ICE on valid code at -O3: in check_loop_closed_ssa_def, at tree-ssa-loop-manip.c:709)
2018-03-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/84775
	* tree-if-conv.c (add_bb_predicate_gimplified_stmts): Delink
	immediate uses of predicate stmts and mark them modified.

	Revert
	PR tree-optimization/84178
	* tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates
	to caller.
	(version_loop_for_if_conversion): Delay update_ssa call.
	(tree_if_conversion): Delay update_ssa until after predicate
	insertion.

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

From-SVN: r258387
2018-03-09 13:29:39 +00:00
Andreas Krebbel
a4c6bd0821 S/390: libatomic: Fix 16 byte atomic exchange
The compiler builtin will use the hardware instruction cdsg if the
memory operand is properly aligned and will fall back to the
library call otherwise.
In case the compiler for one part is able to detect that the
location is aligned and fails to do so for another usage of the hw
instruction and the sw fall back would be mixed on the same memory
location.  To avoid this the library fall back also has to use the
hardware instruction if possible.

libatomic/ChangeLog:

2018-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/exch_n.c: New file.
	* configure.tgt: Add the config directory for s390.

From-SVN: r258384
2018-03-09 12:32:22 +00:00
Nathan Sidwell
d04e6ed5ae [PR c++/84733] ICE in check-local-shadow
https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00425.html
	PR c++/84733
	* name-lookup.c (do_pushdecl_with_scope): Only clear
	current_function_decl when pushing a non-class (i.e. namespace)
	scope.

From-SVN: r258383
2018-03-09 12:13:55 +00:00
Jakub Jelinek
77a5c1b62d re PR debug/84404 (Several "leb128 operand is an undefined symbol" in go testsuite with latest debug improvements)
PR debug/84404
	* gcc.dg/graphite/pr84404.c: Only compile on pthread effective
	targets.

From-SVN: r258382
2018-03-09 10:58:49 +01:00
Eric Botcazou
00db1bf12b re PR target/84763 (ICE in i386_pe_seh_cold_init)
PR target/84763
	* config/i386/winnt.c (i386_pe_seh_cold_init): Use small pre-allocation
	when the function accesses prior frames.

From-SVN: r258381
2018-03-09 09:06:52 +00:00
François Dumont
5da6b01355 printers.py (build_libstdcxx_dictionary): Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers registration.
2018-03-09  François Dumont  <fdumont@gcc.gnu.org>

	* python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary):
	Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers
	registration.

From-SVN: r258380
2018-03-09 05:56:07 +00:00
Jonathan Wakely
5dbbf8991d PR libstdc++/84769 qualify std::get and std::get_if to avoid ADL
PR libstdc++/84769
	* include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>):
	Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>.

From-SVN: r258376
2018-03-09 01:10:02 +00:00
Jonathan Wakely
311735dbc6 Use non-throwing is_directory in filesystem::create_directory
The create_dir helper was calling the throwing form of
filesystem::is_directory instead of passing the error_code argument.
Since std::filesystem::create_directory(const path&, error_code&) is
noexcept, it would call std::terminate if an error occurred in
is_directory.

Passing the error_code also takes care of clearing it in the case where
is_directory returns true.

	src/filesystem/ops.cc (create_dir): Pass error_code to is_directory.
	src/filesystem/std-ops.cc (create_dir): Likewise.

From-SVN: r258375
2018-03-09 01:09:58 +00:00
GCC Administrator
0bfd8ca928 Daily bump.
From-SVN: r258374
2018-03-09 00:16:13 +00:00
Jakub Jelinek
372e261580 re PR debug/84456 (gcc.dg/guality/pr49888.c fail)
PR debug/84456
	* dwarf2out.c (dw_loc_list): If list && loc_list->first->next, call
	gen_llsym, otherwise call maybe_gen_llsym.

From-SVN: r258371
2018-03-08 22:50:37 +01:00
Jason Merrill
80bac2eb06 re PR c++/80598 (-Wunused triggers for functions used in uninstantiated templates)
PR c++/80598
	* call.c (build_over_call): In templates set TREE_USED (first_fn) when
	not calling mark_used for the benefit of -Wunused-function warning.

	* g++.dg/warn/Wunused-function4.C: New test.

From-SVN: r258370
2018-03-08 22:18:50 +01:00
Jakub Jelinek
86c6352c2f re PR inline-asm/84742 (internal compiler error: in process_alt_operands, at lra-constraints.c:2112)
PR inline-asm/84742
	* recog.c (asm_operand_ok): Return 0 if multi-character constraint
	has ',' character inside of it.

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

From-SVN: r258369
2018-03-08 21:55:03 +01:00
Kyrylo Tkachov
c8574943c1 [AArch64] PR target/84748: Mark *compare_cstore<mode>_insn as clobbering CC reg
In this wrong-code PR the combine pass ends up moving a CC-using instruction past a *compare_cstore<mode>_insn
insn_and_split. After reload the *compare_cstore<mode>_insn splitter ends up generating a SUBS instruction that
clobbers the condition flags, and things go bad.

The solution is simple, the *compare_cstore<mode>_insn pattern should specify that it clobbers the CC register
so that combine (or any other pass) does not assume that it can move CC-using patterns across it.

This patch does that and fixes the testcase.

The testcase FAILs on GCC 8 only, but the buggy pattern is in GCC 6 onwards, so we should backport this as
a latent bug fix after it's had some time to bake in trunk.

Bootstrapped and tested on aarch64-none-linux-gnu.

	PR target/84748
	* config/aarch64/aarch64.md (*compare_cstore<mode>_insn): Mark pattern
	as clobbering CC_REGNUM.

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

From-SVN: r258366
2018-03-08 15:50:25 +00:00
Richard Biener
24545562ca re PR tree-optimization/84552 (Compile time hog w/ -O2 -floop-nest-optimize -fno-tree-copy-prop -fno-tree-fre -fno-tree-loop-ivcanon)
2018-03-08  Richard Biener  <rguenther@suse.de>

	PR middle-end/84552
	* tree-scalar-evolution.c: Include tree-into-ssa.h.
	(follow_copies_to_constant): Do not follow SSA names registered
	for update.

	* gcc.dg/graphite/pr84552.c: New testcase.

From-SVN: r258365
2018-03-08 14:41:39 +00:00
Richard Biener
7fea20f6b8 re PR tree-optimization/84178 (ICE in release_bb_predicate)
2018-03-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/84178
	* tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates
	to caller.
	(version_loop_for_if_conversion): Delay update_ssa call.
	(tree_if_conversion): Delay update_ssa until after predicate
	insertion.

	* gcc.dg/torture/pr84178-2.c: New testcase.

From-SVN: r258364
2018-03-08 12:56:40 +00:00
David Malcolm
8b9a03d644 tree-if-conv.c: fix ICE seen with -fno-tree-forwprop (PR tree-optimization/84178)
PR tree-optimization/84178 reports a couple of source files that ICE inside
ifcvt when compiled with -03 -fno-tree-forwprop (trunk and gcc 7).

Both cases involve problems with ifcvt's per-BB gimplified predicates.

Testcase 1 fails this assertion within release_bb_predicate during cleanup:

283	      if (flag_checking)
284		for (gimple_stmt_iterator i = gsi_start (stmts);
285		     !gsi_end_p (i); gsi_next (&i))
286		  gcc_assert (! gimple_use_ops (gsi_stmt (i)));

The testcase contains a division in the loop, which leads to
if_convertible_loop_p returning false (due to gimple_could_trap_p being true
for the division).  This happens *after* the per-BB gimplified predicates
have been created in predicate_bbs (loop).
Hence tree_if_conversion bails out to "cleanup", but the gimplified predicates
exist and make use of SSA names; for example this conjunction for two BB
conditions:

  _4 = h4.1_112 != 0;
  _175 = (signed char) _117;
  _176 = _175 >= 0;
  _174 = _4 & _176;

is using SSA names.

This assertion was added in r236498 (aka c3deca2519d97c55876869c57cf11ae1e5c6cf8b):

    2016-05-20  Richard Biener  <rguenther@suse.de>

        * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
        gimple_seq_add_seq_without_update.
        (release_bb_predicate): Assert we have no operands to free.
        (if_convertible_loop_p_1): Calculate post dominators later.
        Do not free BB predicates here.
        (combine_blocks): Do not recompute BB predicates.
        (version_loop_for_if_conversion): Save BB predicates around
        loop versioning.

        * gcc.dg/tree-ssa/ifc-cd.c: Adjust.

The following patch fixes this by adding a call to gimple_seq_discard
to release_bb_predicate.  It also updates the assertion, so that
instead of asserting the stmts have no imm uses, instead assert that
they weren't added to a bb before discarding them (otherwise discarding
them would be a bug).  We know this is the case because
insert_gimplified_predicates has:

	  /* Once the sequence is code generated, set it to NULL.  */
	  set_bb_predicate_gimplified_stmts (bb, NULL);

but asserting it seems appropriate as a double-check.

The patch doesn't address the 2nd issue within PR tree-optimization/84178.

gcc/ChangeLog:
	PR tree-optimization/84178
	* tree-if-conv.c (release_bb_predicate): Remove the
	the assertion that the stmts have NULL use_ops.
	Discard the statements, asserting that they haven't
	yet been added to a BB.

gcc/testsuite/ChangeLog:
	PR tree-optimization/84178
	* gcc.c-torture/compile/pr84178-1.c: New test.

From-SVN: r258363
2018-03-08 12:17:36 +00:00
Thomas Schwinge
24b830b6cd Fix ifunc detection in target-supports.exp file.
2018-03-08  Thomas Schwinge  <thomas@codesourcery.com>

	* lib/target-supports.exp: Do not return zero from a ifunc
	function.

From-SVN: r258362
2018-03-08 09:26:24 +00:00
Richard Biener
de341bf0fb re PR tree-optimization/84746 (ICE on valid code at -O2 and -O3: Segmentation fault)
2018-03-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/84746
	* tree-ssa-pre.c (find_leader_in_sets): Deal with SET1 being NULL.
	(phi_translate): Pass in destination ANTIC_OUT set.
	(phi_translate_1): Likewise.  For a simplified result lookup
	a leader in ANTIC_OUT and AVAIL_OUT, not the ANTIC_IN sets.
	(phi_translate_set): Adjust.
	(do_pre_regular_insertion): Likewise.
	(do_pre_partial_partial_insertion): Likewise.

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

From-SVN: r258361
2018-03-08 09:23:44 +00:00
Martin Liska
5223e95ac2 Document gcov-io (PR gcov-profile/84735).
2018-03-08  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/84735
	* doc/gcov.texi: Document usage of profile files.
	* gcov-io.h: Document changes in the format.

From-SVN: r258360
2018-03-08 09:05:26 +00:00
Alexandre Oliva
bc7b0ffa63 [LVU] reset view at function entry, omit views at line zero
Location views might be associated with locations that lack line
number information (line number zero), but since we omit .loc
directives that would have been issued with line number zero, we also
omit the symbolic view numbers that would have been issued at such
points.

Resetting views at function entry points address some of these issues,
and alleviate the huge chains of symbolic views that have burdened
assemblers since we disabled -ginternal-reset-location-views by
default, but other problems of undefined views remain when it's not
the whole function that lacks line number info, just parts of it.

So, when we encounter a request to output a view that may have been
referenced, but we decide to omit the .loc because the line is zero,
we will now omit the view as well, i.e., we will internally regard
that view as zero-numbered.

for  gcc/ChangeLog

	PR debug/84404
	PR debug/84408
	* dwarf2out.c (struct dw_line_info_table): Update comments for
	view == -1.
	(FORCE_RESET_NEXT_VIEW): New.
	(FORCE_RESETTING_VIEW_P): New.
	(RESETTING_VIEW_P): Check for -1 too.
	(ZERO_VIEW_P): Likewise.
	(new_line_info_table): Force-reset next view.
	(dwarf2out_begin_function): Likewise.
	(dwarf2out_source_line): Simplify zero_view_p initialization.
	Test FORCE_RESETTING_VIEW_P and RESETTING_VIEW_P instead of
	view directly.  Omit view when omitting .loc at line 0.

for  gcc/testsuite/ChangeLog

	PR debug/84404
	PR debug/84408
	* gcc.dg/graphite/pr84404.c: New.

From-SVN: r258355
2018-03-08 08:27:56 +00:00
Jakub Jelinek
ce8b1a1f13 re PR tree-optimization/84740 (ICE in build_constructors, at tree-switch-conversion.c:965)
PR tree-optimization/84740
	* tree-switch-conversion.c (process_switch): Call build_constructors
	only if info.phi_count is non-zero.

	* gcc.dg/torture/pr84740.c: New test.

From-SVN: r258354
2018-03-08 08:29:42 +01:00
Jakub Jelinek
686faaece3 re PR tree-optimization/84739 (ICE in get_value_for_expr, at tree-ssa-ccp.c:649)
PR tree-optimization/84739
	* tree-tailcall.c (find_tail_calls): Check call arguments against
	DECL_ARGUMENTS (current_function_decl) rather than
	DECL_ARGUMENTS (func) when checking for tail recursion.

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

From-SVN: r258351
2018-03-08 07:56:59 +01:00
François Dumont
fe6bd21a0b printers.py (NodeIteratorPrinter): New.
2018-03-08  François Dumont  <fdumont@gcc.gnu.org>

	* python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New.
	(StdListIteratorPrinter): Inherit from latter.
	(StdFwdListIteratorPrinter): New, inherit from latter.
	(StdDebugIteratorPrinter.to_string): Use non-debug iterator printer
	when iterator has no associated container.
	(build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and
	__gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace
	registrations.
	* testsuite/libstdc++-prettyprinters/debug.cc: Adapt.
	* testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt.

From-SVN: r258350
2018-03-08 06:26:15 +00:00
Martin Sebor
1b1a188198 PR tree-optimization/83519 - missing -Wrestrict on an overlapping strcpy to a non-member array
gcc/testsuite/ChangeLog:

	* gcc.dg/Wrestrict-13.c: New test.

From-SVN: r258348
2018-03-07 17:56:07 -07:00
Steven G. Kargl
00df7c36f5 re PR fortran/64124 ([F95] Valid constant expr rejected)
2018-03-07  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/64124
	PR fortran/70409
	* decl.c (gfc_match_char_spec): Try to reduce a charlen to a constant.

2018-03-07  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/64124
	PR fortran/70409
	* gfortran.dg/pr64124.f90: New tests.
	* gfortran.dg/pr70409.f90: New tests.

From-SVN: r258347
2018-03-08 00:42:41 +00:00
GCC Administrator
4b7b455cf9 Daily bump.
From-SVN: r258345
2018-03-08 00:16:14 +00:00
Jakub Jelinek
1c883d03cf contrib.texi: Add entries for Martin Liska...
* doc/contrib.texi: Add entries for Martin Liska, David Malcolm,
	Marek Polacek, extend Vladimir Makarov's, Jonathan Wakely's and
	Volker Reichelt's entry and add entries for people that perform
	GCC fuzzy testing and report numerous bugs.

From-SVN: r258342
2018-03-07 22:59:09 +01:00
Jason Merrill
68ad1bf7d0 lambda.c (is_capture_proxy_with_ref): Remove.
* lambda.c (is_capture_proxy_with_ref): Remove.

	* constexpr.c, expr.c, cp-tree.h, semantics.c: Adjust.

From-SVN: r258341
2018-03-07 16:04:18 -05:00
Segher Boessenkool
335b7b5ad2 rs6000: -mreadonly-in-sdata (PR82411)
This adds a new option -mreadonly-in-sdata (on by default) that
controls whether readonly data can be put in sdata.  (For EABI this
does nothing, readonly data is put in sdata2 as usual).


	PR target/82411
	* config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Don't put
	readonly data in sdata, if that is disabled.
	* config/rs6000/sysv4.opt (mreadonly-in-sdata): New option.
	* doc/invoke.texi (RS/6000 and PowerPC Options): Document
	-mreadonly-in-sdata option.

gcc/testsuite/
	PR target/82411
	* gcc.target/powerpc/ppc-sdata-2.c: Skip if -mno-readonly-in-sdata.

From-SVN: r258340
2018-03-07 21:27:11 +01:00
Martin Sebor
a76acaedce PR tree-optimization/84468 - bogus -Wstringop-truncation despite assignment after conditional strncpy
gcc/ChangeLog:

	PR tree-optimization/84468
	* tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Consider successor
	basic block when looking for nul assignment.

gcc/testsuite/ChangeLog:

	PR tree-optimization/84468
	* g++.dg/warn/Wstringop-truncation-2.C: New test.
	* gcc.dg/Wstringop-truncation.c: New test.
	* gcc.dg/Wstringop-truncation-2.c: New test.

From-SVN: r258339
2018-03-07 12:30:31 -07:00
Eric Botcazou
b78b513e41 re PR target/84277 (A lot of new acats testsuite failures)
PR target/84277
	* except.h (output_function_exception_table): Adjust prototype.
	* except.c (output_function_exception_table): Remove FNNAME parameter
	and add SECTION parameter.  Ouput one part of the table at a time.
	* final.c (final_scan_insn_1) <NOTE_INSN_SWITCH_TEXT_SECTIONS>: Output
	the first part of the exception table and emit unwind directives.
	* config/i386/i386-protos.h (i386_pe_end_cold_function): Declare.
	(i386_pe_seh_cold_init): Likewise.
	* config/i386/cygming.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro.
	(ASM_DECLARE_COLD_FUNCTION_SIZE): Likewise.
	* config/i386/i386.c (x86_expand_epilogue): Fix wording in comment.
	(ix86_output_call_insn): Emit a nop in one more case for SEH.
	* config/i386/winnt.c: Include except.h.
	(struct seh_frame_state): Add reg_offset, after_prologue and
	in_cold_section fields.
	(i386_pe_seh_end_prologue): Set seh->after_prologue.
	(i386_pe_seh_cold_init): New function.
	(i386_pe_seh_fini): Add COLD parameter and bail out if it is not equal
	to seh->in_cold_section.
	(seh_emit_push): Record the offset of the push.
	(seh_emit_save): Record the offet of the save.
	(i386_pe_seh_unwind_emit): Deal with NOTE_INSN_SWITCH_TEXT_SECTIONS.
	Test seh->after_prologue to disregard the epilogue.
	(i386_pe_end_function): Pass FALSE to i386_pe_seh_fini.
	(i386_pe_end_cold_function): New function.

From-SVN: r258338
2018-03-07 15:54:59 +00:00
Ian Lance Taylor
123ba0918c runtime: push arena on AIX higher due to clashes
Reviewed-on: https://go-review.googlesource.com/99117

From-SVN: r258337
2018-03-07 15:22:46 +00:00
Ian Lance Taylor
2dab5d909f runtime: use a fence instruction before rdtsc
This implements the same choices made in the gc runtime, except that
    for 32-bit x86 we only use the fence instruction if the processor
    supports SSE2.
    
    The code here is hacked up for speed; the gc runtime uses straight
    assembler.
    
    Reviewed-on: https://go-review.googlesource.com/97715

From-SVN: r258336
2018-03-07 14:31:03 +00:00
Sebastian Huber
6cde8c545b Ada: Fix s-oscons.ads generation
The $(GNATLIBCFLAGS) are already included in $(GNATLIBCFLAGS_FOR_C).

We must call the C compiler with the right machine flags.  So, add
$(GNATLIBCFLAGS_FOR_C) to $(OSCONS_EXTRACT).  For example, on a bi-arch
compiler supporting 32-bit and 64-bit instruction sets we pick otherwise
only one variant due to a missing -m32 or -m64 flag.

gcc/ada
	* gcc-interface/Makefile.in (OSCONS_CPP): Remove redundant
	$(GNATLIBCFLAGS).
	(OSCONS_EXTRACT): Add $(GNATLIBCFLAGS_FOR_C).

From-SVN: r258334
2018-03-07 12:10:24 +00:00
Jakub Jelinek
454144fcc5 re PR target/84565 (ICE in extract_insn, at recog.c:2304 on aarch64)
PR fortran/84565
	* config/aarch64/predicates.md (aarch64_simd_reg_or_zero): Use
	aarch64_simd_or_scalar_imm_zero rather than aarch64_simd_imm_zero.

	* gfortran.dg/pr84565.f90: New test.

From-SVN: r258333
2018-03-07 11:39:32 +01:00
Jakub Jelinek
b6f03d1312 re PR c++/84704 (internal compiler error: gimplification failed)
PR c++/84704
	* gimple-expr.c (create_tmp_var_raw): Set DECL_NAMELESS flag
	on tmp_var.
	* tree-pretty-print.c (dump_decl_name): For TDF_COMPARE_DEBUG,
	don't print names of DECL_NAMELESS DECL_IGNORED_P decls.

From-SVN: r258317
2018-03-07 10:19:36 +01:00
Jakub Jelinek
0f1de8d013 re PR middle-end/84723 (ICE in create_target_clone, at multiple_target.c:275)
PR middle-end/84723
	* multiple_target.c: Include tree-inline.h and intl.h.
	(expand_target_clones): Diagnose and fail if node->definition and
	!tree_versionable_function_p (node->decl).

	* gcc.target/i386/pr84723-1.c: New test.
	* gcc.target/i386/pr84723-2.c: New test.
	* gcc.target/i386/pr84723-3.c: New test.
	* gcc.target/i386/pr84723-4.c: New test.
	* gcc.target/i386/pr84723-5.c: New test.

From-SVN: r258316
2018-03-07 10:16:07 +01:00
Denis Chertykov
d06202a0cb Fix Changelog commit errro.
From-SVN: r258314
2018-03-07 11:53:33 +03:00
John David Anglin
9250872b8d pa.h (ASM_GENERATE_INTERNAL_LABEL): Revise to use sprint_ul.
* config/pa/pa.h (ASM_GENERATE_INTERNAL_LABEL): Revise to use
	sprint_ul.
	(ASM_OUTPUT_ADDR_VEC_ELT): Revise for above change.
	(ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
	* config/pa/pa64-hpux.h (ASM_GENERATE_INTERNAL_LABEL): Revise as above.

From-SVN: r258312
2018-03-07 00:47:41 +00:00
Steven G. Kargl
1d792a6d0e re PR fortran/64107 ([F95] Pure function as array size)
2018-03-06  Steven G. Kargl  <kargl@gcc.gnu.org>

        PR fortran/64107
        * gfortran.dg/pr64107.f90: New test.

From-SVN: r258311
2018-03-07 00:25:30 +00:00
John David Anglin
66a00b11a0 fptr.c (_dl_read_access_allowed): New.
* config/pa/fptr.c (_dl_read_access_allowed): New.
	(__canonicalize_funcptr_for_compare): Use it.

From-SVN: r258310
2018-03-07 00:17:32 +00:00
GCC Administrator
c0423c3e71 Daily bump.
From-SVN: r258309
2018-03-07 00:16:24 +00:00
Thomas Koenig
5867bb9a60 re PR fortran/84697 (minloc/maxloc not simplified with zero size)
2017-03-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/84697
	PR fortran/66128
	* expr.c (simplify_parameter_variable): If p is a size zero array
	and not an ARRAY_EXPR insert an empty array constructor and
	return.
	* gfortran.h: Add prototype for gfc_is_size_zero_array.
	* simplify.c (is_size_zero_array): Make non-static and rename into
	(gfc_is_size_zero_array):  Check for parameter arrays of zero
	size by comparing shape and absence of constructor.
	(gfc_simplify_all): Use gfc_is_size_zero_array instead of
	is_size_zero_array.
	(gfc_simplify_count): Likewise.
	(gfc_simplify_iall): Likewise.
	(gfc_simplify_iany): Likewise.
	(gfc_simplify_iparity): Likewise.
	(gfc_simplify_minval): Likewise.
	(gfc_simplify_maxval): Likewise.
	(gfc_simplify_product): Likewise.
	(gfc_simplify_sum): Likewise.

2017-03-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/84697
	PR fortran/66128
	* gfortran.dg/minmaxloc_zerosize_1.f90: New test.

From-SVN: r258305
2018-03-06 23:50:01 +00:00
Ville Voutilainen
447346e465 re PR libstdc++/84601 (std::optional<std::pair<int, int>> is not assignment copyable)
PR libstdc++/84601
* include/std/optional (_Optional_payload): Split into multiple
specializations that can handle different cases of trivial or
non-trivial assignment operators.
* testsuite/20_util/optional/84601.cc: New.
* testsuite/20_util/optional/cons/value_neg.cc: Adjust.

From-SVN: r258304
2018-03-06 23:43:03 +02:00
Marek Polacek
1dc2350519 re PR c++/84684 (inserting random code / flags produces wrong code)
PR c++/84684
	* constexpr.c (cxx_bind_parameters_in_call): Unshare evaluated
	arguments.

	* g++.dg/cpp1z/constexpr-84684.C: New test.

From-SVN: r258303
2018-03-06 21:11:46 +00:00
Jakub Jelinek
849bbdb99c re PR c/84721 (ICE in c_push_function_context, at c-decl.c:9667)
PR c/84721
	* c-parser.c (add_debug_begin_stmt): Don't add DEBUG_BEGIN_STMT if
	!building_stmt_list_p ().

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

From-SVN: r258302
2018-03-06 21:57:30 +01:00
Jakub Jelinek
2728bf8f13 re PR target/84710 (ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1896 with -O -fno-forward-propagate)
PR target/84710
	* combine.c (try_combine): Use reg_or_subregno instead of handling
	just paradoxical SUBREGs and REGs.

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

From-SVN: r258301
2018-03-06 21:41:37 +01:00