Commit Graph

160390 Commits

Author SHA1 Message Date
Steven G. Kargl
284ee475e1 re PR fortran/56667 (Syntax error causes misleading message: "Expected PARAMETER symbol in complex constant")
2018-03-06  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/56667
	* primary.c (match_sym_complex_part): Give the matcher for an implied
	do-loop a chance to run.

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

	PR fortran/56667
	* gfortran.dg/implied_do_2.f90: New test.
	* gfortran.dg/coarray_8.f90: Update for new error message.

From-SVN: r258281
2018-03-06 19:05:48 +00:00
Eric Botcazou
2128896318 trans.c (convert_with_check): Fix typo in the condition guarding the overflow check emitted for the upper...
* gcc-interface/trans.c (convert_with_check): Fix typo in the condition
	guarding the overflow check emitted for the upper bound of a floating-
	point conversion.

From-SVN: r258277
2018-03-06 12:21:27 +00:00
Eric Botcazou
0d6091d924 * gcc-interface/utils.c (def_builtin_1): Bail out on error_mark_node.
From-SVN: r258276
2018-03-06 12:09:33 +00:00
Claudiu Zissulescu
b51addd6e1 [ARC] Cleanup unused functions.
Remove unused pieces of code.

gcc/
2018-03-06  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_finalize_pic): Remove function.
	(arc_must_save_register): We use single base PIC register, remove
	checks to save/restore the PIC register.
	(arc_expand_prologue): Likewise.
	* config/arc/arc-protos.h (arc_set_default_type_attributes):
	Remove.
	(arc_verify_short): Likewise.
	(arc_attr_type): Likewise.
	* config/arc/arc.c (arc_set_default_type_attributes): Remove.
	(walk_stores): Likewise.
	(arc_address_cost): Make it static.
	(arc_verify_short): Likewise.
	(branch_dest): Likewise.
	(arc_attr_type): Likewise.
	* config/arc/arc.c (TARGET_ADJUST_INSN_LENGTH): Remove.
	(TARGET_INSN_LENGTH_PARAMETERS): Likewise.
	(arc_final_prescan_insn): Remove inserting the nops due to
	hardware hazards.  It is done in reorg step.
	(insn_length_variant_t): Remove.
	(insn_length_parameters_t): Likewise.
	(arc_insn_length_parameters): Likewise.
	(arc_get_insn_variants): Likewise.
	* config/arc/arc.h (TARGET_UPSIZE_DBR): Remove.

From-SVN: r258275
2018-03-06 12:50:16 +01:00
Jakub Jelinek
155958ddfe re PR inline-asm/84683 (internal compiler error: in move_for_stack_reg, at reg-stack.c:1173)
PR inline-asm/84683
	* reg-stack.c (move_for_stack_reg): If any_malformed_asm, avoid
	assertion failure.

	* g++.dg/ext/pr84683.C: New test.

From-SVN: r258273
2018-03-06 10:23:36 +01:00
Jakub Jelinek
16ef0a8cb7 re PR tree-optimization/84687 (error: invalid conversion in gimple call with -O3 and -ffast-math)
PR tree-optimization/84687
	* omp-simd-clone.c (simd_clone_create): Clear DECL_BUILT_IN_CLASS
	on new_node->decl.
	* match.pd (pow(C,x)*expN(y) -> expN(logN(C)*x+y)): New optimization.

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

From-SVN: r258272
2018-03-06 08:06:44 +01:00
Alexandre Oliva
23d63b459c [C++] [PR84231] overload on cond_expr in template
A non-type-dependent COND_EXPR within a template is reconstructed with
the original operands, after one with non-dependent proxies is built to
determine its result type.  This is problematic because the operands of
a COND_EXPR determined to be an rvalue may have been converted to denote
their rvalue nature.  The reconstructed one, however, won't have such
conversions, so lvalue_kind may not recognize it as an rvalue, which may
lead to e.g. incorrect overload resolution decisions.

If we mistake such a COND_EXPR for an lvalue, overload resolution might
regard a conversion sequence that binds it to a non-const reference as
viable, and then select that over one that binds it to a const
reference.  Only after template substitution would we rebuild the
COND_EXPR, realize it is an rvalue, and conclude the reference binding
is ill-formed, but at that point we'd have long discarded any alternate
candidates we could have used.

This patch modifies the logic that determines whether a
(non-type-dependent) COND_EXPR in a template is an lvalue, to rely on
its type, more specifically, on the presence of a REFERENCE_TYPE
wrapper.  In order to avoid a type bootstrapping problem, the
REFERENCE_TYPE that wraps the type of some such COND_EXPRs is
introduced earlier, so that we don't have to test for lvalueness of
the expression using the very code that we wish to change.


for  gcc/cp/ChangeLog

	PR c++/84231
	* tree.c (lvalue_kind): Use presence/absence of REFERENCE_TYPE
	only while processing template decls.
	* typeck.c (build_x_conditional_expr): Move wrapping of
	reference type around type...
	* call.c (build_conditional_expr_1): ... here.  Rename
	is_lvalue to is_glvalue.
	* parser.c (cp_parser_fold_expression): Catch REFERENCE_REF_P
	INDIRECT_REF of COND_EXPR too.

for  gcc/testsuite/ChangeLog

	PR c++/84231
	* g++.dg/pr84231.C: New.

From-SVN: r258271
2018-03-06 06:25:12 +00:00
Alexandre Oliva
2e1a7ecb2d [PR c++/84593] ice on braced init with uninit ref field
If an initializer expr is to be NULL in a ctor initializer list, we
ICE in picflag_from_initializer and elsewhere.

If we're missing an initializer for a reference field, we report the
error, but then build a zero initializer to avoid the ICE.

for  gcc/cp/ChangeLog

	PR c++/84593
	* init.c (build_zero_init_1): Zero-initialize references.

for  gcc/testsuite/ChangeLog

	PR c++/84593
	* g++.dg/cpp1y/pr84593.C: New.

From-SVN: r258270
2018-03-06 06:24:53 +00:00
Alexandre Oliva
1ea71a82f9 [PR c++/84492] stmt expr ending with overload
We ICEd when returning a stmt expr that ends with an overloaded
function, because instantiate_type did not know what to do with
STMT_EXPRs.  And it shouldn't have to: the expected type of a stmt
expr cannot be used to resolve its value: an unresolved overload
cannot supply the result of a stmt expr.  Catch that and report the
error in the stmt expr before we have a chance to instantiate it.

for  gcc/cp/ChangeLog

	PR c++/84492
	* semantics.c (finish_stmt_expr_expr): Reject unresolved
	overloads used as stmt expr values.

for  gcc/testsuite/ChangeLog

	PR c++/84492
	* g++.dg/pr84492.C: New.

From-SVN: r258269
2018-03-06 06:24:40 +00:00
Bill Schmidt
4900146ce0 rs6000-builtin.def (rs6000_speculation_barrier): Rename to ppc_speculation_barrier.
[gcc]

2018-03-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000-builtin.def (rs6000_speculation_barrier):
	Rename to ppc_speculation_barrier.
	* config/rs6000/rs6000.c (rs6000_init_builtins): Rename builtin to
	__builtin_ppc_speculation_barrier.

[gcc/testsuite]

2018-03-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/spec-barr-1.c: Change called function name to
	__builtin_ppc_speculation_barrier.

From-SVN: r258268
2018-03-06 01:56:41 +00:00
GCC Administrator
f75fbd29fb Daily bump.
From-SVN: r258267
2018-03-06 00:16:23 +00:00
Jason Merrill
91e534b0d4 PR c++/84708 - ICE with lambda in local class NSDMI.
* lambda.c (lambda_expr_this_capture): Handle local class NSDMI
	context.

From-SVN: r258264
2018-03-05 17:14:38 -05:00
Jakub Jelinek
9a25c5ce6e re PR target/84700 (ICE on 32-bit BE powerpc targets w/ -misel -O1)
PR target/84700
	* combine.c (combine_simplify_rtx): Don't try to simplify if
	if_then_else_cond returned non-NULL, but either true_rtx or false_rtx
	are equal to x.

	* gcc.target/powerpc/pr84700.c: New test.

From-SVN: r258263
2018-03-05 23:13:58 +01:00
Jakub Jelinek
46cf7fa13b re PR c++/84684 (inserting random code / flags produces wrong code)
PR c++/84684
	* constexpr.c (constexpr_call_hasher::equal): Return false if
	lhs->hash != rhs->hash.  Change return 1 to return true and
	return 0 to return false.

From-SVN: r258262
2018-03-05 23:12:45 +01:00
Segher Boessenkool
34b01e681e rs6000: Don't align tiny loops to 32 bytes for POWER9
For POWER4..POWER8 we align loops of 5..8 instructions to 32 bytes
(instead of to 16 bytes) because that executes faster.  This is no
longer the case on POWER9, so we can just as well only align to 16
bytes.


	* config/rs6000/rs6000.c (rs6000_loop_align): Don't align tiny loops
	to 32 bytes when compiling for POWER9.

From-SVN: r258260
2018-03-05 20:11:54 +01:00
Ian Lance Taylor
14710257c1 libgo: fix typo in mksysinfo.sh script
Fix a small typo in the mksysinfo.sh script (incorrect input
    file for a grep command).
    
    Reviewed-on: https://go-review.googlesource.com/98635

From-SVN: r258259
2018-03-05 18:44:44 +00:00
Nathan Sidwell
f7af3ad637 [PR c++/84702] ICE with default tmpl arg of overload set
https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00227.html
	PR c++/84702
	* pt.c (process_template_arg): Mark lookup_keep on a default arg.

	PR c++/84702
	* g++.dg/lookup/pr84702.C: New.

From-SVN: r258258
2018-03-05 18:44:24 +00:00
Jakub Jelinek
537400180d re PR target/84564 (error: unable to find a register to spill with -mforce-indirect-call)
PR target/84564
	* config/i386/i386.c (ix86_function_ok_for_sibcall): Check for
	regparm >= 3 with no arg reg available also for calls with
	flag_force_indirect_call.  Pass decl to ix86_function_regparm.

	* gcc.target/i386/pr84564.c: New test.

From-SVN: r258256
2018-03-05 17:24:43 +01:00
Marek Polacek
a2460abb82 re PR c++/84707 (internal compiler error: Segmentation fault (tree_check()/duplicate_decls()))
PR c++/84707
	* decl.c (duplicate_decls): Check DECL_NAME before accessing
	UDLIT_OPER_P.

	* g++.dg/cpp0x/inline-ns10.C: New test.

From-SVN: r258255
2018-03-05 16:15:35 +00:00
Nathan Sidwell
a5dccd4614 [PR c++/84694] ICE on template friend decl
https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00221.html
	PR c++/84694
	* friend.c (do_friend): Restore check for identifier_p inside
	TEMPLATE_ID_EXPR.

	PR c++/84694
	* g++.dg/template/pr84694.C: New.

From-SVN: r258254
2018-03-05 16:12:07 +00:00
Jakub Jelinek
8c6b5eb80f re PR target/84524 (-O3 causes behavior change)
PR target/84524
	* config/i386/sse.md (*<code><mode>3): Replace <mask_prefix3> with
	orig,vex.
	(*<plusminus_insn><mode>3): Likewise.  Remove <mask_operand3> uses.

	* gcc.c-torture/execute/pr84524.c: New test.
	* gcc.target/i386/avx512bw-pr84524.c: New test.

From-SVN: r258252
2018-03-05 17:01:03 +01:00
Peter Bergner
75a741e87b re PR target/84264 (ICE in rs6000_emit_le_vsx_store, at config/rs6000/rs6000.c:10367 starting with r256656)
gcc/
	PR target/84264
	* config/rs6000/vector.md (mov<mode>): Disallow altivec memory operands.

gcc/testsuite/
	PR target/84264
	* g++.dg/pr84264.C: New test.

From-SVN: r258251
2018-03-05 09:52:11 -06:00
Paolo Carlini
5625e74790 re PR c++/84618 (ICE in build_capture_proxy, at cp/lambda.c:460)
/cp
2018-03-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84618
	* parser.c (cp_parser_lambda_introducer): Reject any capture not
	involving a VAR_DECL or a PARM_DECL.

/testsuite
2018-03-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84618
	* g++.dg/cpp0x/lambda/lambda-ice29.C: New.
	* g++.dg/cpp0x/lambda/lambda-ice17.C: Adjust.
	* g++.dg/cpp0x/lambda/lambda-ice23.C: Likewise.

From-SVN: r258250
2018-03-05 15:40:15 +00:00
Richard Biener
800916ab50 re PR tree-optimization/84486 (code hoisting removes alignment assumption)
2018-03-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/84486
	* tree-ssa-pre.c (create_expression_by_pieces): Remove dead code.
	When inserting a __builtin_assume_aligned call set the LHS
	SSA name alignment info accordingly.

From-SVN: r258249
2018-03-05 15:00:48 +00:00
Wilco Dijkstra
b5b33e1134 [AArch64] PR84114: Avoid reassociating FMA
As discussed in the PR, the reassociation phase runs before FMAs are formed
and so can significantly reduce FMA opportunities.  Although reassociation
could be switched off, it helps in many cases, so a better alternative is to
only avoid reassociation of floating point additions.  This fixes the testcase
and gives 1% speedup on SPECFP2017, fixing the performance regression.

    gcc/
	PR tree-optimization/84114
	* config/aarch64/aarch64.c (aarch64_reassociation_width)
	Avoid reassociation of FLOAT_MODE addition.

From-SVN: r258248
2018-03-05 14:40:55 +00:00
Olga Makhotina
13b93d4b89 Enable WBOINVD and PCONFIG instructions.
2018-03-05  Olga Makhotina  <olga.makhotina@intel.com>

Enable WBOINVD and PCONFIG instructions.

gcc/
	* common/config/i386/i386-common.c (OPTION_MASK_ISA_PCONFIG_SET,
	OPTION_MASK_ISA_PCONFIG_UNSET, OPTION_MASK_ISA_WBNOINVD_SET,
	OPTION_MASK_ISA_WBNOINVD_UNSET): New definitions.
	(ix86_handle_option): Handle -mpconfig and -mwbnoinvd.
	* config.gcc (pconfigintrin.h, wbnoinvdintrin.h) : Add headers.
	* config/i386/cpuid.h (bit_PCONFIG, bit_WBNOINVD): New.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect -mpconfig
	and -mwbnoinvd.
	* config/i386/i386-builtin.def (__builtin_ia32_wbnoinvd,
	__builtin_ia32_wbinvd): New builtins.
	(SPECIAL_ARGS2): New.
	* config/i386/i386-c.c (__WBNOINVD__, __PCONFIG__): New.
	(SPECIAL_ARGS2): New.
	* config/i386/i386.c (ix86_target_string): Add -mpconfig and -mwbnoinvd.
	(ix86_valid_target_attribute_inner_p): Ditto.
	(ix86_init_mmx_sse_builtins): Add special_args2.
	* config/i386/i386.h (TARGET_PCONFIG, TARGET_PCONFIG_P, TARGET_WBNOINVD,
	TARGET_WBNOINVD_P): New.
	* config/i386/i386.md (UNSPECV_WBINVD, UNSPECV_WBNOINVD): New.
	(define_insn "wbinvd", define_insn "wbnoinvd"): New.
	* config/i386/i386.opt: Add -mpconfig and -mwbnoinvd.
	* config/i386/immintrin.h (_wbinvd): New intrinsic.
	* config/i386/pconfigintrin.h: New file.
	* config/i386/wbnoinvdintrin.h: Ditto.
	* config/i386/x86intrin.h: Add headers pconfigintrin.h and wbnoinvdintrin.h.
	* doc/invoke.texi (-mpconfig, -mwbnoinvd): New.

gcc/testsuite/
	* g++.dg/other/i386-2.C: Add -mpconfig and -mwbnoinvd.
	* g++.dg/other/i386-3.C: Ditto.
	* gcc.target/i386/sse-12.c: Ditto.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-14.c: Ditto.
	* gcc.target/i386/sse-23.c: Add pconfig and wbnoinvd.
	* gcc.target/i386/wbinvd-1.c: New test.
	* gcc.target/i386/wbnoinvd-1.c: Ditto.
	* gcc.target/i386/pconfig-1.c: Ditto.

From-SVN: r258247
2018-03-05 15:37:54 +01:00
Pádraig Brady
35a313aaf2 [PR c++/84497] ref to undefined tls init
https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00209.html
	PR c++/84497
	* decl2.c (get_tls_init_fn): Check TYPE_HAS_TRIVIAL_DFLT too.

	PR c++/84497
	* g++.dg/cpp0x/pr84497.C: New.

Co-Authored-By: Jason Merrill <jason@redhat.com>
Co-Authored-By: Nathan Sidwell <nathan@acm.org>

From-SVN: r258244
2018-03-05 13:48:43 +00:00
Richard Biener
36a9f50ca9 re PR tree-optimization/84670 (ICE: in compute_antic_aux, at tree-ssa-pre.c:2148 with -O2 -fno-tree-dominator-opts)
2018-03-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/84670
	* tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs
	member.
	(BB_VISITED_WITH_VISITED_SUCCS): New define.
	(compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS.
	(compute_antic_aux): Only assert the number of values in ANTIC_IN
	doesn't grow if all successors (recursively) were visited at least
	once.

	* gcc.dg/pr84670-1.c: New testcase.
	* gcc.dg/pr84670-2.c: Likewise.
	* gcc.dg/pr84670-3.c: Likewise.
	* gcc.dg/pr84670-4.c: Likewise.

From-SVN: r258243
2018-03-05 13:18:12 +00:00
Richard Biener
144a822fec re PR tree-optimization/84650 ([graphite] ICE: Segmentation fault (in create_new_iv))
2018-03-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/84650
	* tree-ssa-loop-im.c (pass_lim::execute): Reset the SCEV cache
	if executed in the loop pipeline.

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

From-SVN: r258242
2018-03-05 12:49:07 +00:00
Paolo Carlini
a0445a5fb1 re PR c++/82022 (constexpr lambda in template context: expression ‘<lambda>’ is not a constant expression)
2018-03-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/82022
	* g++.dg/cpp1z/constexpr-lambda20.C: New.

From-SVN: r258241
2018-03-05 10:19:11 +00:00
Sandra Loosemore
e095eec19a configfiles.texi (Configuration Files): Move info about conditionalizing $target-protos.h to...
2018-03-05  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/configfiles.texi (Configuration Files): Move info about
	conditionalizing $target-protos.h to...
	* doc/sourcebuild.texi (Back End): Here.  Explain how $target.h
	differs from $target-protos.h.

From-SVN: r258240
2018-03-05 01:31:24 -05:00
Kito Cheng
142439c50c [NDS32] Implment setmem pattern.
gcc/
	* config/nds32/nds32-protos.h (nds32_expand_setmem): Declare.
	* config/nds32/nds32-multiple.md (setmemsi): Define.
	* config/nds32/nds32-memory-manipulation.c
	(nds32_gen_dup_4_byte_to_word_value): New.
	(emit_setmem_word_loop): New.
	(emit_setmem_byte_loop): New.
	(nds32_expand_setmem_loop): New.
	(nds32_expand_setmem_loop_v3m): New.
	(nds32_expand_setmem_unroll): New.
	(nds32_expand_setmem): New.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>

From-SVN: r258239
2018-03-05 02:27:30 +00:00
GCC Administrator
9322e1aa5c Daily bump.
From-SVN: r258238
2018-03-05 00:16:13 +00:00
Kito Cheng
eab7aaedc7 [NDS32] Rename nds32_expand_movmemqi to nds32_expand_movmemsi and rewrite its implementation.
gcc/
	*config/nds32/nds32-memory-manipulation.c
	(nds32_emit_load_store): New.
	(nds32_emit_post_inc_load_store): New.
	(nds32_emit_mem_move): New.
	(nds32_emit_mem_move_block): New.
	(nds32_expand_movmemsi_loop_unknown_size): New.
	(nds32_expand_movmemsi_loop_known_size): New.
	(nds32_expand_movmemsi_loop): New.
	(nds32_expand_movmemsi_unroll): New.
	(nds32_expand_movmemqi): Rename ...
	(nds32_expand_movmemsi): ... to this.
	*config/nds32/nds32-multiple.md (movmemqi): Rename ...
	(movmemsi): ... to this.
	*config/nds32/nds32-protos.h (nds32_expand_movmemqi): Rename ...
	(nds32_expand_movmemsi): ... to this.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>

From-SVN: r258235
2018-03-04 16:43:09 +00:00
Kito Cheng
32a6f4f488 [NDS32] Refine load_multiple and store_multiple.
gcc/
	* config/nds32/nds32-protos.h
	(nds32_expand_load_multiple): New arguments.
	(nds32_expand_store_multiple): Ditto.
	(nds32_valid_multiple_load_store): Rename ...
	(nds32_valid_multiple_load_store_p): ... to this.
	* config/nds32/nds32-memory-manipulation.c
	(nds32_expand_load_multiple): Refine implementation.
	(nds32_expand_store_multiple): Ditto.
	* config/nds32/nds32-multiple.md
	(load_multiple): Update nds32_expand_load_multiple interface.
	(store_multiple): Update nds32_expand_store_multiple interface.
	* config/nds32/nds32-predicates.c
	(nds32_valid_multiple_load_store): Rename ...
	(nds32_valid_multiple_load_store_p): ... to this and refine
	implementation.
	* config/nds32/predicates.md
	(nds32_load_multiple_and_update_address_operation): New predicate.
	(nds32_store_multiple_and_update_address_operation): New predicate.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
Co-Authored-By: Monk Chiang <sh.chiang04@gmail.com>

From-SVN: r258234
2018-03-04 16:27:34 +00:00
Kito Cheng
264159d28c [NDS32] Add load_multiple,store_multiple and new attribute combo.
gcc/
	* config/nds32/nds32.md (type): Add load_multiple and store_multiple.
	(combo): New attribute.
	* config/nds32/nds32-multiple.md: Refine patterns with new attributes.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>

From-SVN: r258232
2018-03-04 07:58:34 +00:00
Jason Merrill
38946ea192 PR c++/84686 - missing volatile loads.
* cvt.c (convert_to_void): Call maybe_undo_parenthesized_ref.

From-SVN: r258231
2018-03-04 00:32:39 -05:00
Harald Anlauf
ac80378f4a re PR fortran/71085 (ICE with some intrinsic functions specifying array function result dimension)
2018-03-03  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/71085
	* trans-expr.c (gfc_apply_interface_mapping_to_expr): Do not
	dereference NULL pointer.


2018-03-03  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/71085
	* gfortran.dg/pr71085.f90: New test.

From-SVN: r258228
2018-03-04 01:37:13 +00:00
GCC Administrator
6979a6b3d1 Daily bump.
From-SVN: r258227
2018-03-04 00:16:17 +00:00
Steven G. Kargl
42ce31c577 re PR fortran/66128 (ICE for some intrinsics with zero sized array parameter)
2018-03-03  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/66128
	* gfortran.dg/zero_sized_8.f90: Really commit new test.

From-SVN: r258224
2018-03-03 19:59:54 +00:00
Steven G. Kargl
94e6b5e5a6 re PR fortran/66128 (ICE for some intrinsics with zero sized array parameter)
2018-03-03  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/66128
	* simplify.c (is_size_zero_array): New function to check for size
	zero array.
	(gfc_simplify_all, gfc_simplify_any, gfc_simplify_count, 
	 gfc_simplify_iall, gfc_simplify_iany, gfc_simplify_iparity,
	 gfc_simplify_minval, gfc_simplify_maxval, gfc_simplify_norm2,
	 gfc_simplify_product, gfc_simplify_sum): Use it, and implement
	requirements from F2018.

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

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

From-SVN: r258223
2018-03-03 19:49:20 +00:00
Joseph Myers
250540af39 * da.po: Update.
From-SVN: r258221
2018-03-03 18:55:20 +00:00
Steven G. Kargl
a900a06092 re PR fortran/51434 (ICE with scalar init of an array parameter, used in DT default init with transfer)
2018-03-03  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/51434
	* simplify.c (gfc_simplify_transfer): Resolve mold.

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

	PR fortran/51434
	* gfortran.dg/pr51434.f90: New test.

From-SVN: r258220
2018-03-03 18:20:32 +00:00
Paolo Carlini
88aa59ff7e re PR c++/61358 (Bogus "duplicate label" error after label used within C++11 lambda)
2018-03-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/61358
	* g++.dg/cpp0x/lambda/lambda-61358.C: New.

From-SVN: r258219
2018-03-03 18:18:25 +00:00
Paolo Carlini
5a4dbaa824 re PR c++/67370 (Invalid "parameter packs not expanded" error in lambda capture)
2018-03-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67370
	* g++.dg/cpp0x/lambda/lambda-67370.C: New.

From-SVN: r258218
2018-03-03 18:09:27 +00:00
Paolo Carlini
c94a3f9f65 re PR c++/71464 (ICE on invalid code (with redeclared constructor) at -Os: Segmentation fault)
/cp
2018-03-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/71464
	* optimize.c (maybe_thunk_body): Bail out immediately if either
	fns[0] or fns[1] is null.

/testsuite
2018-03-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/71464
	* g++.dg/torture/pr71464.C: New.

From-SVN: r258216
2018-03-03 17:48:23 +00:00
Chung-Ju Wu
6855fa2131 [NDS32] Change to large model by default.
gcc/
	* config/nds32/nds32.opt: Change -mcmodel= default value.

From-SVN: r258215
2018-03-03 16:47:10 +00:00
Kito Cheng
e576ddb5eb [NDS32] Add intrinsic functions for unalignment memory access.
gcc/
	* config/nds32/constants.md (unspec_element): New enum.
	* config/nds32/constraints.md (Umw): New constraint.
	* config/nds32/nds32-intrinsic.c: Add more builtin functions.
	* config/nds32/nds32-intrinsic.md: Likewise.
	* config/nds32/nds32-md-auxiliary.c (nds32_regno_to_enable4): New.
	(nds32_valid_smw_lwm_base_p): New.
	(nds32_output_smw_single_word): New.
	(nds32_output_lmw_single_word): New.
	(nds32_expand_unaligned_load): New.
	(nds32_expand_unaligned_store): New.
	* config/nds32/nds32-protos.h (nds32_valid_smw_lwm_base_p): Declare.
	(nds32_output_smw_single_word): Declare.
	(nds32_output_lmw_single_word): Declare.
	(nds32_expand_unaligned_load): Declare.
	(nds32_expand_unaligned_store): Declare.
	* config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_UALOAD_HW,
	NDS32_BUILTIN_UALOAD_W, NDS32_BUILTIN_UALOAD_DW,
	NDS32_BUILTIN_UASTORE_HW, NDS32_BUILTIN_UASTORE_W,
	NDS32_BUILTIN_UASTORE_DW.
	* config/nds32/predicates.md (nds32_lmw_smw_base_operand): New
	predicate.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
Co-Authored-By: Monk Chiang <sh.chiang04@gmail.com>

From-SVN: r258214
2018-03-03 16:38:14 +00:00
Monk Chiang
7a12ea32b2 [NDS32] Rewrite infrastructure for intrinsic.
gcc/
	* config/nds32/nds32-intrinsic.c
	(nds32_expand_builtin_null_ftype_reg): Delete.
	(nds32_expand_builtin_reg_ftype_imm): Ditto.
	(nds32_expand_builtin_null_ftype_reg_imm): Ditto.
	(nds32_read_argument): New.
	(nds32_legitimize_target): Ditto.
	(nds32_legitimize_argument): Ditto.
	(nds32_check_constant_argument): Ditto.
	(nds32_expand_unop_builtin): Ditto.
	(nds32_expand_unopimm_builtin): Ditto.
	(nds32_expand_binop_builtin): Ditto.
	(nds32_builtin_decl_impl): Ditto.
	(builtin_description): Ditto.
	(nds32_expand_builtin_impl): Rewrite with new infrastructure.
	(nds32_init_builtins_impl): Ditto.
	* config/nds32/nds32.c (TARGET_BUILTIN_DECL): Define.
	(nds32_builtin_decl): New.
	* config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_COUNT.
	* config/nds32/nds32-protos.h (nds32_builtin_decl_impl): Declare.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
Co-Authored-By: Kito Cheng <kito.cheng@gmail.com>

From-SVN: r258211
2018-03-03 16:05:25 +00:00
Paul Thomas
c8bd326c47 re PR fortran/80965 (ICE with class argument and -O2 optimization)
2018-03-03  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/80965
	* resolve.c (build_loc_call): Change symtree name from 'loc' to
	'_loc'.

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

	PR fortran/80965
	* gfortran.dg/select_type_41.f90: New test.

From-SVN: r258195
2018-03-03 13:34:10 +00:00