Eric Botcazou [Tue, 6 Mar 2018 12:21:27 +0000 (12:21 +0000)]
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
Eric Botcazou [Tue, 6 Mar 2018 12:09:33 +0000 (12:09 +0000)]
* gcc-interface/utils.c (def_builtin_1): Bail out on error_mark_node.
From-SVN: r258276
Claudiu Zissulescu [Tue, 6 Mar 2018 11:50:16 +0000 (12:50 +0100)]
[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
Jakub Jelinek [Tue, 6 Mar 2018 09:23:36 +0000 (10:23 +0100)]
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
Jakub Jelinek [Tue, 6 Mar 2018 07:06:44 +0000 (08:06 +0100)]
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
Alexandre Oliva [Tue, 6 Mar 2018 06:25:12 +0000 (06:25 +0000)]
[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
Alexandre Oliva [Tue, 6 Mar 2018 06:24:53 +0000 (06:24 +0000)]
[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
Alexandre Oliva [Tue, 6 Mar 2018 06:24:40 +0000 (06:24 +0000)]
[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
Bill Schmidt [Tue, 6 Mar 2018 01:56:41 +0000 (01:56 +0000)]
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
GCC Administrator [Tue, 6 Mar 2018 00:16:23 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r258267
Jason Merrill [Mon, 5 Mar 2018 22:14:38 +0000 (17:14 -0500)]
PR c++/84708 - ICE with lambda in local class NSDMI.
* lambda.c (lambda_expr_this_capture): Handle local class NSDMI
context.
From-SVN: r258264
Jakub Jelinek [Mon, 5 Mar 2018 22:13:58 +0000 (23:13 +0100)]
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
Jakub Jelinek [Mon, 5 Mar 2018 22:12:45 +0000 (23:12 +0100)]
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
Segher Boessenkool [Mon, 5 Mar 2018 19:11:54 +0000 (20:11 +0100)]
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
Ian Lance Taylor [Mon, 5 Mar 2018 18:44:44 +0000 (18:44 +0000)]
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
Nathan Sidwell [Mon, 5 Mar 2018 18:44:24 +0000 (18:44 +0000)]
[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
Jakub Jelinek [Mon, 5 Mar 2018 16:24:43 +0000 (17:24 +0100)]
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
Marek Polacek [Mon, 5 Mar 2018 16:15:35 +0000 (16:15 +0000)]
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
Nathan Sidwell [Mon, 5 Mar 2018 16:12:07 +0000 (16:12 +0000)]
[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
Jakub Jelinek [Mon, 5 Mar 2018 16:01:03 +0000 (17:01 +0100)]
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
Peter Bergner [Mon, 5 Mar 2018 15:52:11 +0000 (09:52 -0600)]
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
Paolo Carlini [Mon, 5 Mar 2018 15:40:15 +0000 (15:40 +0000)]
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
Richard Biener [Mon, 5 Mar 2018 15:00:48 +0000 (15:00 +0000)]
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
Wilco Dijkstra [Mon, 5 Mar 2018 14:40:55 +0000 (14:40 +0000)]
[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
Olga Makhotina [Mon, 5 Mar 2018 14:37:54 +0000 (14:37 +0000)]
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
Pádraig Brady [Mon, 5 Mar 2018 13:48:43 +0000 (13:48 +0000)]
[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
Richard Biener [Mon, 5 Mar 2018 13:18:12 +0000 (13:18 +0000)]
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
Richard Biener [Mon, 5 Mar 2018 12:49:07 +0000 (12:49 +0000)]
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
Paolo Carlini [Mon, 5 Mar 2018 10:19:11 +0000 (10:19 +0000)]
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
Sandra Loosemore [Mon, 5 Mar 2018 06:31:24 +0000 (01:31 -0500)]
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
Kito Cheng [Mon, 5 Mar 2018 02:27:30 +0000 (02:27 +0000)]
[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
GCC Administrator [Mon, 5 Mar 2018 00:16:13 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r258238
Kito Cheng [Sun, 4 Mar 2018 16:43:09 +0000 (16:43 +0000)]
[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
Kito Cheng [Sun, 4 Mar 2018 16:27:34 +0000 (16:27 +0000)]
[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
Kito Cheng [Sun, 4 Mar 2018 07:58:34 +0000 (07:58 +0000)]
[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
Jason Merrill [Sun, 4 Mar 2018 05:32:39 +0000 (00:32 -0500)]
PR c++/84686 - missing volatile loads.
* cvt.c (convert_to_void): Call maybe_undo_parenthesized_ref.
From-SVN: r258231
Harald Anlauf [Sun, 4 Mar 2018 01:37:13 +0000 (01:37 +0000)]
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
GCC Administrator [Sun, 4 Mar 2018 00:16:17 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r258227
Steven G. Kargl [Sat, 3 Mar 2018 19:59:54 +0000 (19:59 +0000)]
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
Steven G. Kargl [Sat, 3 Mar 2018 19:49:20 +0000 (19:49 +0000)]
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
Joseph Myers [Sat, 3 Mar 2018 18:55:20 +0000 (18:55 +0000)]
* da.po: Update.
From-SVN: r258221
Steven G. Kargl [Sat, 3 Mar 2018 18:20:32 +0000 (18:20 +0000)]
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
Paolo Carlini [Sat, 3 Mar 2018 18:18:25 +0000 (18:18 +0000)]
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
Paolo Carlini [Sat, 3 Mar 2018 18:09:27 +0000 (18:09 +0000)]
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
Paolo Carlini [Sat, 3 Mar 2018 17:48:23 +0000 (17:48 +0000)]
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
Chung-Ju Wu [Sat, 3 Mar 2018 16:47:10 +0000 (16:47 +0000)]
[NDS32] Change to large model by default.
gcc/
* config/nds32/nds32.opt: Change -mcmodel= default value.
From-SVN: r258215
Kito Cheng [Sat, 3 Mar 2018 16:38:14 +0000 (16:38 +0000)]
[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
Monk Chiang [Sat, 3 Mar 2018 16:05:25 +0000 (16:05 +0000)]
[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
Paul Thomas [Sat, 3 Mar 2018 13:34:10 +0000 (13:34 +0000)]
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
Paolo Carlini [Sat, 3 Mar 2018 00:28:03 +0000 (00:28 +0000)]
re PR c++/61135 (It seems to be not able to call virtual method of literal object in lambda expression)
2018-03-02 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/61135
* g++.dg/cpp0x/lambda/lambda-61135.C: New.
From-SVN: r258165
GCC Administrator [Sat, 3 Mar 2018 00:16:23 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r258163
Joseph Myers [Fri, 2 Mar 2018 23:55:25 +0000 (23:55 +0000)]
* es.po: Update.
From-SVN: r258160
Jeff Law [Fri, 2 Mar 2018 23:47:56 +0000 (16:47 -0700)]
reorg.c (stop_search_p): Handle DEBUG_INSN.
* reorg.c (stop_search_p): Handle DEBUG_INSN.
(redundant_insn, fill_simple_delay_slots): Likewise.
(fill_slots_from_thread): Likewise.
* resource.c (mark_referenced_resources): Likewise.
(mark_set_resources, find_dead_or_set_registers): Likewise.
From-SVN: r258158
Jonathan Wakely [Fri, 2 Mar 2018 20:38:50 +0000 (20:38 +0000)]
PR libstdc++/84671 handle digit separators in duration literals
PR libstdc++/84671
* include/bits/parse_numbers.h (_Number_help): Add partial
specialization to handle digit separators. Adjust partial
specialization for recursion temrination to require _Pow == 1ULL.
* testsuite/20_util/duration/literals/84671.cc: New
From-SVN: r258157
Marek Polacek [Fri, 2 Mar 2018 20:27:46 +0000 (20:27 +0000)]
re PR c++/84578 (ICE with flexible array member and constexpr)
PR c++/84578
* constexpr.c (get_array_or_vector_nelts): New.
(cxx_eval_array_reference): Use it.
(cxx_eval_vec_init_1): Likewise.
(cxx_eval_store_expression): Likewise.
* g++.dg/ext/flexary29.C: New test.
From-SVN: r258156
David Malcolm [Fri, 2 Mar 2018 20:20:37 +0000 (20:20 +0000)]
libiberty: fix URL for demangler ABI
libiberty/ChangeLog:
* cp-demangle.c: Update URL for g++ V3 ABI.
From-SVN: r258155
Jakub Jelinek [Fri, 2 Mar 2018 19:04:58 +0000 (20:04 +0100)]
substring-locations.h (format_warning_va): Formatting fix for ATTRIBUTE_GCC_DIAG.
* substring-locations.h (format_warning_va): Formatting fix for
ATTRIBUTE_GCC_DIAG.
(format_warning_at_substring): Fix up ATTRIBUTE_GCC_DIAG second
argument.
(format_warning_n_va, format_warning_at_substring_n): New prototypes.
* substring-locations.c: Include intl.h.
(format_warning_va): Turned into small wrapper around
format_warning_n_va, renamed to ...
(format_warning_n_va): ... this, add N and PLURAL_GMSGID arguments,
rename GMSGID to SINGULAR_GMSGID, if SINGULAR_GMSGID != PLURAL_GMSGID,
use ngettext.
(format_warning_at_substring_n): New function.
* gimple-ssa-sprintf.c: Remove GCC diagnostic ignored pragma.
(fmtwarn): Add ATTRIBUTE_GCC_DIAG. Turn into a copy of
format_warning_at_substring with just a shorter name instead of
const function pointer.
(fmtwarn_n): New function.
(maybe_warn, format_directive, parse_directive): Use fmtwarn_n where
appropriate, get rid of all the fmtstr temporaries, move conditionals
with G_() wrapped string literals directly into fmtwarn arguments,
cast dir.len to (int), formatting fixes.
From-SVN: r258154
Jakub Jelinek [Fri, 2 Mar 2018 19:04:10 +0000 (20:04 +0100)]
* c-c++-common/Warray-bounds-2.c: Fix a comment typo.
From-SVN: r258153
Jason Merrill [Fri, 2 Mar 2018 18:18:13 +0000 (13:18 -0500)]
* semantics.c (force_paren_expr): Remove redundant test.
From-SVN: r258151
Paolo Carlini [Fri, 2 Mar 2018 18:06:44 +0000 (18:06 +0000)]
re PR middle-end/81812 (Empty virtual function fails to compile)
2018-03-02 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/81812
* g++.dg/torture/pr81812.C: New.
From-SVN: r258150
Marek Polacek [Fri, 2 Mar 2018 17:55:28 +0000 (17:55 +0000)]
re PR c++/84664 (internal compiler error: in cp_perform_integral_promotions, at cp/typeck.c:2172)
PR c++/84664
* typeck.c (cp_perform_integral_promotions): Check the result of
mark_rvalue_use.
* g++.dg/cpp0x/lambda/lambda-ice28.C: New test.
From-SVN: r258149
Marek Polacek [Fri, 2 Mar 2018 17:54:23 +0000 (17:54 +0000)]
re PR c++/84663 (internal compiler error: tree check: expected array_type, have error_mark in cp_complete_array_type, at cp/decl.c:8334)
PR c++/84663
* decl.c (cp_complete_array_type): Check error_mark_node.
* g++.dg/parse/array-size3.C: New test.
From-SVN: r258148
Marek Polacek [Fri, 2 Mar 2018 17:51:24 +0000 (17:51 +0000)]
re PR c++/84171 (ICE with -Wsign-compare)
PR c++/84171
* c-warn.c (warn_for_sign_compare): Bail out if any of the operands
is erroneous.
* g++.dg/warn/Wsign-compare-8.C: New test.
From-SVN: r258147
Jakub Jelinek [Fri, 2 Mar 2018 17:07:39 +0000 (18:07 +0100)]
re PR c++/84662 (internal compiler error: tree check: expected class 'type', have 'exceptional' (error_mark) in is_bitfield_expr_with_lowered_type, at cp/typeck.c:1944)
PR c++/84662
* pt.c (tsubst_copy_and_build) <case TEMPLATE_ID_EXPR>: Use
RETURN instead of return.
<case POINTER_PLUS_EXPR>: Likewise.
<case CONVERT_EXPR>: If op0 is error_mark_node, just return
it instead of wrapping it into CONVERT_EXPR.
* g++.dg/cpp1y/pr84662.C: New test.
From-SVN: r258146
Jason Merrill [Fri, 2 Mar 2018 16:54:23 +0000 (11:54 -0500)]
Fix MIPS16 ICE.
* pt.c (type_dependent_expression_p): Check DECL_LANG_SPECIFIC.
From-SVN: r258143
Thomas Schwinge [Fri, 2 Mar 2018 16:35:36 +0000 (17:35 +0100)]
Fix "dg-lto-options" misuse
gcc/testsuite/
* g++.dg/lto/20080915_0.C: Don't use "dg-lto-options".
* g++.dg/lto/20080907_0.C: Use "#pragma GCC" instead of
"dg-lto-options".
* g++.dg/lto/
20101010-1_0.C: Likewise.
* g++.dg/lto/
20101010-2_0.C: Likewise.
Reviewed-by: Jason Merrill <jason@redhat.com>
From-SVN: r258142
Thomas Schwinge [Fri, 2 Mar 2018 16:35:26 +0000 (17:35 +0100)]
More Cilk Plus removal
contrib/
* update-copyright.py: Remove "libcilkrts" reference.
gcc/c-family/
* c-attribs.c (c_common_attribute_table): Remove "cilk simd
function".
gcc/
* doc/invoke.texi: Remove "Cilk Plus" references.
From-SVN: r258141
Jakub Jelinek [Fri, 2 Mar 2018 16:19:43 +0000 (17:19 +0100)]
re PR ipa/84628 (attribute(warning/error) functions should not be merged together)
PR ipa/84628
* expr.c (expand_expr_real_1) <case CALL_EXPR>: Don't emit diagnostics
for error or warning attributes if CALL_FROM_THUNK_P is set.
Formatting fixes.
* gcc.dg/pr84628.c: New test.
Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r258140
Jakub Jelinek [Fri, 2 Mar 2018 16:18:06 +0000 (17:18 +0100)]
re PR target/56540 (No __SIZEOF__XXX__ macro for __float128)
PR target/56540
* config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Predefine
__SIZEOF_128__ macro if HPUX_LONG_DOUBLE_LIBRARY.
From-SVN: r258139
Jakub Jelinek [Fri, 2 Mar 2018 16:17:18 +0000 (17:17 +0100)]
re PR target/56540 (No __SIZEOF__XXX__ macro for __float128)
PR target/56540
* config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Predefine
__SIZEOF_{FPREG,FLOAT{80,128}}__ macros.
* gcc.target/ia64/pr56540.c: New test.
From-SVN: r258138
Will Schmidt [Fri, 2 Mar 2018 15:18:54 +0000 (15:18 +0000)]
altivec-7-be.c: Remove VSX content, allow 32-bit target.
[testsuite]
2018-03-02 Will Schmidt <will_schmidt@vnet.ibm.com>
* gcc.target/powerpc/altivec-7-be.c: Remove VSX content, allow
32-bit target.
* gcc.target/powerpc/altivec-7.h: Remove VSX content.
* gcc.target/powerpc/vsx-7-be.c: New test (VSX content).
* gcc.target/powerpc/vsx-7.h: New include (VSX content).
* gcc.target/powerpc/altivec-7-le.c: Add vsx-7.h include.
From-SVN: r258137
Jakub Jelinek [Fri, 2 Mar 2018 15:10:10 +0000 (16:10 +0100)]
predict.c (test_prediction_value_range): Use PROB_UNINITIALIZED instead of -1U in last predictors element's probability...
* predict.c (test_prediction_value_range): Use PROB_UNINITIALIZED
instead of -1U in last predictors element's probability member.
From-SVN: r258136
Eric Botcazou [Fri, 2 Mar 2018 09:57:43 +0000 (09:57 +0000)]
re PR ipa/83983 (FAIL: g++.dg/lto/pr83121 (test for LTO warnings, pr83121_0.C line 8))
PR ipa/83983
* ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both
arguments if they are comparable.
From-SVN: r258133
Marek Polacek [Fri, 2 Mar 2018 09:48:41 +0000 (09:48 +0000)]
re PR c++/84590 (-fsanitize=undefined internal compiler error: tree check: expected constructor, have target_expr in split_nonconstant_init_1, at cp/typeck2.c:629)
PR c++/84590
* cp-gimplify.c (cp_fully_fold): Unwrap TARGET_EXPR or a CONSTRUCTOR
wrapped in VIEW_CONVERT_EXPR.
* c-c++-common/ubsan/shift-11.c: New test.
From-SVN: r258132
Richard Sandiford [Fri, 2 Mar 2018 09:46:43 +0000 (09:46 +0000)]
Avoid &LOOP_VINFO_MASKS for bb vectorisation (PR 84634)
We were computing &LOOP_VINFO_MASKS even for bb vectorisation,
which is UB.
2018-03-02 Richard Sandiford <richard.sandiford@linaro.org>
gcc/
PR tree-optimization/84634
* tree-vect-stmts.c (vectorizable_store, vectorizable_load): Replace
masks and masked_loop_p with a single loop_masks, making sure it's
null for bb vectorization.
From-SVN: r258131
Richard Sandiford [Fri, 2 Mar 2018 09:45:51 +0000 (09:45 +0000)]
Use loop->safelen rather than loop->force_vectorize
...since the latter doesn't guarantee independence by itself.
2018-03-02 Richard Sandiford <richard.sandiford@linaro.org>
gcc/
* tree-vect-data-refs.c (vect_analyze_data_ref_dependence)
(vect_analyze_data_ref_access): Use loop->safe_len rather than
loop->force_vectorize to check whether there is no alias.
gcc/testsuite/
* gcc.dg/vect/vect-alias-check-13.c: New test.
From-SVN: r258130
Jakub Jelinek [Fri, 2 Mar 2018 09:16:50 +0000 (10:16 +0100)]
re PR rtl-optimization/84614 (wrong code with u16->u128 extension at aarch64 -fno-split-wide-types -g3 --param=max-combine-insns=3)
PR target/84614
* rtl.h (prev_real_nondebug_insn, next_real_nondebug_insn): New
prototypes.
* emit-rtl.c (next_real_insn, prev_real_insn): Fix up function
comments.
(next_real_nondebug_insn, prev_real_nondebug_insn): New functions.
* cfgcleanup.c (try_head_merge_bb): Use prev_real_nondebug_insn
instead of a loop around prev_real_insn.
* combine.c (move_deaths): Use prev_real_nondebug_insn instead of
prev_real_insn.
* gcc.dg/pr84614.c: New test.
From-SVN: r258129
Paul Thomas [Fri, 2 Mar 2018 08:51:06 +0000 (08:51 +0000)]
re PR fortran/84219 (Failure to generate error for IO of transfer intrinsic, when MOLD has derived type components.)
2018-03-02 Paul Thomas <pault@gcc.gnu.org>
PR fortran/84219
* gfortran.dg/coarray_47.f90: Use the correct test.
From-SVN: r258128
Jakub Jelinek [Fri, 2 Mar 2018 07:57:26 +0000 (08:57 +0100)]
re PR inline-asm/84625 (ICE with empty constraint and vector constant)
PR inline-asm/84625
* config/i386/i386.c (ix86_print_operand): Use conditional
output_operand_lossage instead of gcc_assert if CONST_VECTOR is not
zero vector.
* gcc.target/i386/pr84625.c: New test.
From-SVN: r258125
Richard Biener [Fri, 2 Mar 2018 07:45:41 +0000 (07:45 +0000)]
re PR tree-optimization/84427 (gcc ICE at -O3 on x86_64-linux-gnu in compute_antic, at tree-ssa-pre.c:2356)
2018-03-02 Richard Biener <rguenther@suse.de>
PR tree-optimization/84427
* tree-ssa-pre.c (bitmap_remove_expr_from_set): Remove.
(bitmap_set_subtract_values): Rewrite to handle multiple
exprs per value.
(clean): Likewise.
(prune_clobbered_mems): Likewise.
(phi_translate): Take edge instead of pred/phiblock.
(phi_translate_1): Likewise.
(phi_translate_set): Likewise. Insert all translated
exprs for a value into the set, keeping possibly multiple
expressions per value.
(compute_antic_aux): Adjust for phi_translate changes.
When intersecting union the expressions and prune those
not in the final value set, keeping possibly multiple
expressions per value. Do not use value-insertion
for unioning ANTIC_OUT U EXP_GEN - TMP_GEN but merge
all expressions. Add verification that the value-sets
only shrink during iteration.
(compute_partial_antic_aux): Adjust for the phi_translate changes.
(do_pre_regular_insertion): Likewise.
(do_pre_partial_partial_insertion): Likewise.
* gcc.dg/torture/pr84427.c: New testcase.
From-SVN: r258124
Richard Biener [Fri, 2 Mar 2018 07:42:58 +0000 (07:42 +0000)]
re PR target/82005 (Early lto debug not implemented on Darwin)
2018-03-02 Richard Biener <rguenther@suse.de>
PR target/82005
* config/darwin.c (saved_debug_info_level): New static global.
(darwin_asm_lto_start): Disable debug info generation for LTO out.
(darwin_asm_lto_end): Restore debug info generation settings.
From-SVN: r258123
Peter Bergner [Fri, 2 Mar 2018 02:54:40 +0000 (20:54 -0600)]
re PR target/84534 (several powerpc test cases fail starting with r257915)
PR target/84534
* gcc.target/powerpc/vec-setup-be-long.c: Add dg-xfail-run-if on
powerpc64le*-*-linux*.
* gcc.target/powerpc/vsx-vector-6-le.c: Do not count xxlor's.
* gcc.target/powerpc/vsx-vector-6-le.p9.c: Likewise.
From-SVN: r258122
Martin Sebor [Fri, 2 Mar 2018 00:16:52 +0000 (00:16 +0000)]
PR c++/84294 - attributes on a function template redeclaration silently discarded
gcc/cp/ChangeLog:
PR c++/84294
* decl.c (check_redeclaration_no_default_args): Merge attributes
specified on redeclarations of the same function template.
Remove dead code.
gcc/testsuite/ChangeLog:
PR c++/84294
* g++.dg/ext/attr-const.C: Remove xfail.
* g++.dg/ext/attr-malloc-3.C: New test.
* g++.dg/ext/attr-noinline-3.C: New test.
* g++.dg/ext/attr-noreturn-3.C: New test.
* g++.dg/ext/attr-nothrow-3.C: New test.
* g++.dg/ext/attr-pure.C: Remove xfail.
From-SVN: r258121
GCC Administrator [Fri, 2 Mar 2018 00:16:26 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r258120
Jakub Jelinek [Thu, 1 Mar 2018 23:28:31 +0000 (00:28 +0100)]
re PR sanitizer/70875 (ICE in get_ubsan_type_info_for_type with -fsanitize=undefined)
PR sanitizer/70875
* gcc.dg/ubsan/bounds-3.c: Add -fno-sanitize-recover=bounds to
dg-options and dg-shouldfail "ubsan" directive.
From-SVN: r258117
Marek Polacek [Thu, 1 Mar 2018 22:44:54 +0000 (22:44 +0000)]
re PR c++/84582 (Rejected valid C++ code since r257961)
PR c++/84582
* semantics.c (force_paren_expr): Create a PAREN_EXPR when in
a template.
(maybe_undo_parenthesized_ref): Unwrap PAREN_EXPR.
* typeck2.c (store_init_value): Call fold_non_dependent_expr instead
of instantiate_non_dependent_expr.
* tree.c (lvalue_kind): Handle PAREN_EXPR like NON_DEPENDENT_EXPR.
* g++.dg/cpp1y/auto-fn15.C: Extend testing.
* g++.dg/cpp1z/static1.C: New test.
* g++.dg/template/static37.C: New test.
Co-Authored-By: Jason Merrill <jason@redhat.com>
From-SVN: r258116
Nathan Sidwell [Thu, 1 Mar 2018 22:08:02 +0000 (22:08 +0000)]
[PR c++/84434] ICE with deduction guide
https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00063.html
PR c++/84434
* name-lookup.c (member_vec_dedup): Remove manually peeled
iteration. Ignore dependent ctor inheritance.
PR c++/84434
* g++.dg/template/pr84434.C: New.
From-SVN: r258114
Ian Lance Taylor [Thu, 1 Mar 2018 19:56:14 +0000 (19:56 +0000)]
compiler: avoid crashing on bad self-referential type
The compiler was crashing partway through emitting an error for a bad
self-referential struct type (which refers to one of its own fields
via an unsafe.Offset expression). Tweak the offset logic to check for
this class of type error and exit cleanly.
Fixes golang/go#24180
Reviewed-on: https://go-review.googlesource.com/97855
From-SVN: r258112
Jason Merrill [Thu, 1 Mar 2018 19:40:36 +0000 (14:40 -0500)]
PR c++/71569 - decltype of template.
* parser.c (cp_parser_decltype_expr): Handle missing template args.
From-SVN: r258110
Marek Polacek [Thu, 1 Mar 2018 19:15:42 +0000 (19:15 +0000)]
re PR c++/84639 (gcc/c-family/c-attribs.c:1822:27: runtime error: shift exponent -1 is negative)
PR c++/84639
* c-attribs.c (common_handle_aligned_attribute): Don't use invalid
alignment in computation.
From-SVN: r258109
Thomas Preud'homme [Thu, 1 Mar 2018 18:22:56 +0000 (18:22 +0000)]
[ARM] Fix copysign_softfloat_1.c option directives
gcc.target/arm/copysign_softfloat_1.c's use of arm_arch_v6t2 in
dg-add-option changes the architecture to -march=armv6t2. Since the test
only requires Thumb-2 capable architecture, we just need to add -mthumb
on the command line since arm_thumb2_ok guarantees by definition that
doing that is enough to select Thumb-2. This fixes warning on the
command line when having -mcpu=cortex-m3 in RUNTESTFLAGS for instance.
2018-03-01 Thomas Preud'homme <thomas.preudhomme@arm.com
gcc/testsuite/
* gcc.target/arm/copysign_softfloat_1.c: Remove dg-add-options and add
-mthumb to the command-line.
From-SVN: r258108
Marek Polacek [Thu, 1 Mar 2018 17:08:35 +0000 (17:08 +0000)]
re PR c++/84596 (internal compiler error: unexpected expression '(bool)c' of kind implicit_conv_expr (cxx_eval_constant_expression))
PR c++/84596
* constexpr.c (require_rvalue_constant_expression): New function.
* cp-tree.h: Declare it.
* semantics.c (finish_static_assert): Use it instead of
require_potential_rvalue_constant_expression.
* g++.dg/cpp0x/static_assert14.C: New test.
From-SVN: r258107
Paolo Carlini [Thu, 1 Mar 2018 17:01:54 +0000 (17:01 +0000)]
re PR c++/79410 (internal compiler error: in gimplify_init_ctor_preeval, at gimplify.c:3489)
2018-03-01 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/79410
* g++.dg/torture/pr79410.C: New.
From-SVN: r258106
Jason Merrill [Thu, 1 Mar 2018 16:00:34 +0000 (11:00 -0500)]
PR c++/71569 - ICE with redundant args on member variable template.
* decl.c (start_decl): Handle partial specialization of member
variable template.
* pt.c (determine_specialization): Allow partial specialization
of member variable template without specializing enclosing class.
(process_partial_specialization): Improve error message.
Co-Authored-By: Alexandre Oliva <aoliva@redhat.com>
From-SVN: r258102
Martin Liska [Thu, 1 Mar 2018 14:54:10 +0000 (15:54 +0100)]
Do not handled volatile arguments (PR sanitizer/82484).
2018-03-01 Martin Liska <mliska@suse.cz>
PR sanitizer/82484
* sanopt.c (sanitize_rewrite_addressable_params): Do not handle
volatile arguments.
2018-03-01 Martin Liska <mliska@suse.cz>
PR sanitizer/82484
* gcc.dg/asan/pr82484.c: New test.
From-SVN: r258101
Richard Biener [Thu, 1 Mar 2018 13:39:56 +0000 (13:39 +0000)]
re PR debug/84645 (-flto -g0 at compile-time vs. -flto -g at link time ICEs in add_dwarf_attr, at dwarf2out.c:4353)
2018-03-01 Richard Biener <rguenther@suse.de>
PR debug/84645
* dwarf2out.c (gen_variable_die): Properly handle late VLA
type annotation with LTO when debug was disabled at compile-time.
* gfortran.dg/lto/pr84645_0.f90: New testcase.
From-SVN: r258100
Matthew Fortune [Thu, 1 Mar 2018 11:37:35 +0000 (11:37 +0000)]
MIPS: Fix wrong use of XINT instead of INTVAL
This issue was caught with assert checking enabled but is not a
functional bug as XINT(x, 0) happens to overlay INTVAL(x) anyway.
gcc/
* config/mips/mips.c (mips_final_prescan_insn): Fix incorrect
XINT with INTVAL.
(mips_final_postscan_insn): Likewise.
From-SVN: r258099
Paul Thomas [Thu, 1 Mar 2018 11:06:18 +0000 (11:06 +0000)]
re PR fortran/84219 (Failure to generate error for IO of transfer intrinsic, when MOLD has derived type components.)
2018-03-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/84219
* target-memory.c (gfc_interpret_derived): Assert that BT_VOID
components are caf tokens.
(gfc_target_interpret_expr): Treat BT_VOID expressions as
integers.
2018-03-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/84219
* gfortran.dg/coarray_47.f90: New test.
From-SVN: r258098
Paul Thomas [Thu, 1 Mar 2018 08:56:31 +0000 (08:56 +0000)]
re PR fortran/84538 (Array of derived type elements incorrectly accessed in function)
2018-03-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/84538
* class.c (class_array_ref_detected): Remove the condition that
there be no reference after the array reference.
(find_intrinsic_vtab): Remove excess whitespace.
* trans-array.c (gfc_conv_scalarized_array_ref): Rename 'tmp'
as 'base and call build_class_array_ref earlier.
2018-03-01 Paul Thomas <pault@gcc.gnu.org>
PR fortran/84538
* gfortran.dg/class_array_23.f03: New test.
From-SVN: r258097
Richard Sandiford [Thu, 1 Mar 2018 08:31:45 +0000 (08:31 +0000)]
Fix PR number in changelog entry
From-SVN: r258096