1. 26 Nov, 2019 7 commits
  2. 25 Nov, 2019 26 commits
    • Fix typo in C++2a paper number - P1920R1 -> P1902R1 · c2ecce6d
      From-SVN: r278707
      Jakub Jelinek committed
    • re PR fortran/92629 (internal compiler error: in convert_mpz_to_unsigned, at… · c5144966
      re PR fortran/92629 (internal compiler error: in convert_mpz_to_unsigned, at fortran/simplify.c:173)
      
      2019-11-25  Harald Anlauf  <anlauf@gmx.de>
      
      	PR fortran/92629
      	* simplify.c (convert_mpz_to_unsigned): Skip assert for argument
      	range when -fno-range-check is specified.
      
      	PR fortran/92629
      	* gfortran.dg/pr92629.f90: New testcase.
      
      From-SVN: r278699
      Harald Anlauf committed
    • libstdc++: Add move_sentinel, common_iterator and counted_iterator · 7def9bd7
      This implements most of the remaining C++20 additions to the <iterator>
      header.
      
      	* include/bits/iterator_concepts.h (ranges::iter_swap): Fix parameter
      	types of poison pill overload. Use remove_reference_t when checking
      	constraints.
      	* include/bits/stl_iterator.h (move_sentinel): Define for C++20.
      	(move_iterator): Adjust definitions of nested types for C++20. Add
      	hidden friends for move_sentinel operations, iter_move and iter_swap.
      	(common_iterator, counted_iterator): Define for C++20.
      	* testsuite/24_iterators/move_iterator/cust.cc: New test.
      	* testsuite/24_iterators/move_iterator/sentinel.cc: New test.
      	* testsuite/24_iterators/common_iterator/1.cc: New test.
      	* testsuite/24_iterators/counted_iterator/1.cc: New test.
      
      From-SVN: r278698
      Jonathan Wakely committed
    • PR libstdc++/91786 fix compilation error with Clang · d6039f5c
      	PR libstdc++/91786
      	* include/bits/fs_path.h (filesystem_error): Move definition before
      	the use in u8path.
      
      From-SVN: r278697
      Jonathan Wakely committed
    • config/gcn/mkoffload.c – remove unused static vars · d222e470
              * config/gcn/mkoffload.c (COMMENT_PREFIX, struct id_map,
              func_ids, funcs_tail, var_ids, vars_tail) Remove unused
              definitions.
      
      From-SVN: r278688
      Tobias Burnus committed
    • Update dump message in IPA ICF. · 7650c805
      2019-11-25  Martin Liska  <mliska@suse.cz>
      
      	* ipa-icf.c (sem_item_optimizer::dump_cong_classes): Clean
      	up used dump message.
      
      From-SVN: r278687
      Martin Liska committed
    • Comment too strict checking assert. · dd86c8da
      2019-11-25  Martin Liska  <mliska@suse.cz>
      
      	PR bootstrap/92653
      	* ipa-fnsummary.c (ipa_fn_summary::account_size_time): Comment out
      	too strict checking assert.
      
      From-SVN: r278686
      Martin Liska committed
    • typeck.c (cp_build_indirect_ref_1): Add location_t parameter and use it in error messages. · 3554d8ff
      /gcc
      2019-11-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* typeck.c (cp_build_indirect_ref_1): Add location_t parameter
      	and use it in error messages.
      	(build_x_indirect_ref): Adjust call.
      	(build_indirect_ref): Likewise.
      	(cp_build_fold_indirect_ref): Likewise.
      	(cp_build_array_ref): Likewise.
      	* call.c (build_new_op_1): Likewise.
      	* semantics.c (finish_omp_clauses): Likewise.
      	(finish_omp_depobj): Likewise.
      	* typeck2.c (build_x_arrow): Likewise.
      	* cp-tree.h (cp_build_indirect_ref): Update declaration.
      
      	* call.c (build_new_op_1): Use location argument in warning_at.
      
      	* typeck.c (cp_build_modify_expr): Consistently use the
      	location_t argument.
      
      /libcc1
      2019-11-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* libcp1plugin.cc (plugin_pragma_push_user_expression): Update
      	cp_build_indirect_ref call.
      
      /gcc/testsuite
      2019-11-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/diagnostic/base-operand-non-pointer-1.C: New.
      	* g++.dg/pr53055.C: Check location too.
      	* g++.old-deja/g++.bugs/900213_02.C: Likewise.
      	* g++.old-deja/g++.bugs/900215_02.C: Likewise.
      	* g++.old-deja/g++.other/badarrow.C: Likewise.
      	* g++.old-deja/g++.other/deref1.C: Likewise.
      
      	* g++.dg/warn/Wenum-compare.C: Check location too.
      
      	* g++.dg/cpp0x/initlist26.C: Check location too.
      	* g++.dg/cpp0x/initlist28.C: Likewise.
      	* g++.dg/cpp0x/initlist29.C: Likewise.
      	* g++.dg/cpp0x/initlist33.C: Likewise.
      	* g++.dg/expr/string-2.C: Likewise.
      	* g++.dg/other/ptrmem5.C: Likewise.
      	* g++.old-deja/g++.benjamin/14664-1.C: Likewise.
      	* g++.old-deja/g++.benjamin/14664-2.C: Likewise.
      	* g++.old-deja/g++.brendan/init12.C: Likewise.
      	* g++.old-deja/g++.bugs/900324_04.C: Likewise.
      	* g++.old-deja/g++.ext/array1.C: Likewise.
      	* g++.old-deja/g++.jason/rfg17.C: Likewise.
      
      From-SVN: r278685
      Paolo Carlini committed
    • Prevent all uses of DFP when unsupported (PR c/91985). · 5b8d9367
      Code that directly uses _Decimal* types on architectures not
      supporting DFP is properly diagnosed ("error: decimal floating-point
      not supported for this target"), via a call to
      targetm.decimal_float_supported_p, if the _Decimal32, _Decimal64 or
      _Decimal128 keywords are used to access it.  Use via mode attributes
      is also diagnosed ("unable to emulate 'SD'"); so is use of the
      FLOAT_CONST_DECIMAL64 pragma.  However, it is possible to access those
      types via typeof applied to constants or built-in functions without
      such an error.  I expect that there are ways to get an ICE from this;
      certainly it uses a completely undefined ABI.
      
      This patch arranges for the types not to exist in the compiler at all
      when DFP is not supported.  As is done with unsupported _FloatN /
      _FloatNx types, the global tree nodes are left as NULL_TREE, and the
      built-in function machinery is made to use error_mark_node for them in
      that case in builtin-types.def, so that the built-in functions are
      unavailable.  Code handling constants is adjusted to give an error,
      and other code that might not work with the global tree nodes being
      NULL_TREE is also updated.
      
      Bootstrapped with no regressions for x86_64-pc-linux-gnu.  Also tested
      with no regressions for cross to aarch64-linux-gnu, as a configuration
      without DFP support.
      
      	PR c/91985
      gcc:
      	* builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128)
      	(BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR): Define to
      	error_mark_node if corresponding global tree node is NULL.
      	* tree.c (build_common_tree_nodes): Do not initialize
      	dfloat32_type_node, dfloat64_type_node or dfloat128_type_node if
      	decimal floating-point not supported.
      
      gcc/c:
      	* c-decl.c (finish_declspecs): Use int instead of decimal
      	floating-point types if decimal floating-point not supported.
      
      gcc/c-family:
      	* c-common.c (c_common_type_for_mode): Handle decimal
      	floating-point types being NULL_TREE.
      	* c-format.c (get_format_for_type_1): Handle specified types being
      	NULL_TREE.
      	* c-lex.c (interpret_float): Give an error for decimal
      	floating-point constants when decimal floating-point not
      	supported.
      
      gcc/lto:
      	* lto-lang.c (lto_type_for_mode): Handle decimal floating-point
      	types being NULL_TREE.
      
      gcc/testsuite:
      	* gcc.dg/c2x-no-dfp-1.c, gcc.dg/gnu2x-builtins-no-dfp-1.c: New
      	tests.
      	* gcc.dg/fltconst-pedantic-dfp.c: Expect errors when decimal
      	floating-point not supported.
      
      From-SVN: r278684
      Joseph Myers committed
    • Properly handle C2x attributes on types. · 1723e1be
      attribs.c has code to ignore all scoped attributes appertaining to
      types except when they are part of the definition of that type.
      
      I think the premise of that code is incorrect, and its presence is a
      bug; such attributes are clearly valid in both C and C++, which
      explicitly specify that attributes in certain syntactic positions
      appertain to a particular type, only for that use of that type and not
      for other uses of the same type specifiers without that attribute
      specified, and while the standard attributes in C2x aren't relevant in
      such contexts, some gnu:: attributes certainly are.  Where some
      attributes are invalid on some types in such contexts, that's a matter
      for the individual attribute handlers to diagnose (or the front end if
      the requirements on a standard attribute in the standard are more
      strict than those of a handler shared with a GNU attribute).
      
      Thus, this patch removes the bogus code to allow such attributes to be
      used.  Doing so (and adding tests for attributes in such positions)
      shows up that the logic in the C front end for creating the
      c_declarator structures for such attributes put them in the wrong
      place relative to the structures for function and array types, and the
      logic for postfix attributes on a list of declaration specifiers
      failed to handle some cases, so those bugs are also fixed in this
      patch.
      
      Bootstrapped with no regressions for x86_64-pc-linux-gnu.
      
      gcc:
      	* attribs.c (decl_attributes): Do not ignore C++11 attributes on
      	types.
      
      gcc/c:
      	* c-tree.h (struct c_declarator): Use a structure for id member.
      	* c-decl.c (grokdeclarator): Extract attributes from cdk_id
      	declarators at the start, not when handling individual declarators
      	later.  Use u.id.id instead of u.id.
      	(grokfield): Use u.id.id instead of u.id.
      	(build_id_declarator): Set u.id.id and u.id.attrs.
      	(finish_declspecs): Handle postfix attributes in case of typedef
      	name or typeof used.
      	* c-parser.c (c_parser_direct_declarator)
      	(c_parser_direct_declarator_inner): Place declarator for
      	attributes inside that for function or array, not outside.  Set
      	u.id.attrs for identifiers.
      	(c_parser_parameter_declaration): Use u.id.id instead of u.id.
      	* gimple-parser.c (c_parser_gimple_declaration): Use u.id.id
      	instead of u.id.
      
      gcc/testsuite:
      	* gcc.dg/gnu2x-attrs-1.c: Do not expect message about attributes
      	appertaining to types.
      	* gcc.dg/gnu2x-attrs-2.c: New test.
      	* g++.dg/cpp0x/gen-attrs-1.C, g++.dg/cpp0x/gen-attrs-22.C,
      	g++.dg/cpp0x/gen-attrs-4.C, g++.dg/cpp0x/lambda/lambda-attr1.C:
      	Update expected diagnostics.
      
      From-SVN: r278683
      Joseph Myers committed
    • Convert m68k to not use cc0 · 6cebc6cb
      	* config/m68k/m68k.c (output_move_himode, output_move_qimode):
      	Replace code for non-CONST_INT constants with gcc_unreachable.
      	* config/m68k/m68k.md (cbranchdi): Don't generate individual
      	compare and test.
      	(CMPMODE): New mode_iterator.
      	(cbranchsi4, cbranchqi4, cbranchhi4): Replace expanders with
      	cbranch<mode>4.
      	(cstoresi4, cstoreqi4, cstorehi4): Replace expanders with
      	cstore<mode>4.
      	(cmp<mode>_68881): Remove 'F' constraint from first comparison
      	operand.
      	(bit test insns patterns): Use nonimmediate_operand, not
      	register_operand, for source operands that allow memory in
      	their constraints.
      	(divmodsi4, udivmodsi4, divmodhi4 and related unnamed patterns):
      	Use register_operand, not nonimmediate_operand, for the
      	destinations.
      	(DBCC): New mode_iterator.
      	(dbcc peepholes): Use it to reduce duplication.
      	(trap): Use const_true_rtx, not const1_rtx.
      	* config/m68k/predicates.md (m68k_comparison_operand): Renamed
      	from m68k_subword_comparison_operand and changed to handle
      	SImode.
      
      	PR target/91851
      	* config/m68k/m68k-protos.h (output-dbcc_and_branch): Adjust
      	declaration.
      	(m68k_init_cc): New declaration.
      	(m68k_output_compare_di, m68k_output_compare_si)
      	(m68k_output_compare_hi, m68k_output_compare_qi)
      	(m68k_output_compare_fp, m68k_output_btst, m68k_output_bftst)
      	(m68k_find_flags_value, m68k_output_scc, m68k_output_scc_float)
      	(m68k_output_branch_integer, m68k_output_branch_integer_rev.
      	m68k_output_branch_float, m68k_output_branch_float_rev):
      	Likewise.
      	(valid_dbcc_comparison_p_2, flags_in_68881)
      	(output_btst): Remove declaration.
      	* config/m68k/m68k.c (INCLDUE_STRING): Define.
      	(TARGET_ASM_FINAL_POSTSCAN_INSN): Define.
      	(valid_dbcc_comparison_p_2, flags_in_68881): Delete functions.
      	(flags_compare_op0, flags_compare_op1, flags_operand1,
      	flags_operand2, flags_valid): New static variables.
      	(m68k_find_flags_value, m68k_init_cc): New functions.
      	(handle_flags_for_move, m68k_asm_final_postscan_insn,
      	remember_compare_flags): New static functions.
      	(output_dbcc_and_branch): New argument CODE.  Use it, and add
      	PLUS and MINUS to the possible codes.  All callers changed.
      	(m68k_output_btst): Renamed from output_btst.  Remove OPERANDS
      	and INSN arguments, add CODE arg.  Return the comparison code
      	to use.  All callers changed.  Use CODE instead of
      	next_insn_tests_no_inequality, and replace cc_status management
      	with changing the return code.
      	(m68k_rtx_costs): Instead of testing for COMPARE, test for
      	RTX_COMPARE or RTX_COMM_COMPARE.
      	(output_move_simode, output_move_qimode): Call
      	handle_flags_for_move.
      	(notice_update_cc): Delete function.
      	(m68k_output_bftst, m68k_output_compare_di, m68k_output_compare_si,
      	m68k_output_compare_hi, m68k_output_compare_qi,
      	m68k_output_compare_fp, m68k_output_branch_integer,
      	m68k_output_branch_integer_rev, m68k_output_scc,
      	m68k_output_branch_float, m68k_output_branch_float_rev,
      	m68k_output_scc_float): New functions.
      	(output_andsi3, output_iorsi3, output_xorsi3): Call CC_STATUS_INIT
      	once at the start, and set flags_valid and flags_operand1 if the
      	flags are usable.
      	* config/m68k/m68k.h (CC_IN_68881, NOTICE_UPDATE_CC,
      	CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, OUTPUT_JUMP): Remove
      	definitions.
      	(CC_STATUS_INIT): Define.
      	* config/m68k/m68k.md (flags_valid): New define_attr.
      	(tstdi, tstsi_internal_68020_cf, tstsi_internal, tsthi_internal,
      	tstqi_internal, tst<mode>_68881, tst<mode>_cf, cmpdi_internal,
      	cmpdi, unnamed cmpsi/cmphi/cmpqi patterns, cmpsi_cf,
      	cmp<mode>_68881, cmp<mode>_cf, unnamed btst patterns,
      	tst_bftst_reg, tst_bftst_reg, unnamed scc patterns, scc,
      	sls, sordered_1, sunordered_1, suneq_1, sunge_1, sungt_1,
      	sunle_1, sunlt_1, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1,
      	bge0_di, blt0_di, beq, bne, bgt, bgtu, blt, bltu, bge, bgeu,
      	ble, bleu, bordered, bunordered, buneq, bunge, bungt, bunle,
      	bunlt, bltgt, beq_rev, bne_rev, bgt_rev, bgtu_rev,
      	blt_rev, bltu_rev, bge_rev, bgeu_rev, ble_rev, bleu_rev,
      	bordered_rev, bunordered_rev, buneq_rev, bunge_rv, bungt_rev,
      	bunle_rev, bunlt_rev, bltgt_rev, ctrapdi4, ctrapsi4, ctraphi4,
      	ctrapqi4, conditional_trap): Delete patterns.
      	(cbranchdi4_insn): New pattern.
      	(cbranchdi4): Don't generate cc0 patterns.  When testing LT or GE,
      	test high part only.  When testing EQ or NE, generate beq0_di
      	and bne0_di patterns directly.
      	(cstoredi4): When testing LT or GE, test high part only.
      	(both sets of cbranch<mode>4, cstore<mode>4): Don't generate cc0
      	patterns.
      	(scc0_constraints, cmp1_constraints, cmp2_constraints,
      	scc0_cf_constraints, cmp1_cf_constraints, cmp2_cf_constraints,
      	cmp2_cf_predicate): New define_mode_attrs.
      	(cbranch<mode>4_insn, cbranch<mode>4_insn_rev,
      	cbranch<mode>4_insn_cf, cbranch<mode>4_insn_cf_rev,
      	cstore<mode>4_insn, cstore<mode>4_insn_cf for integer modes)
      	New patterns.
      	(cbranch<mode>4_insn_68881, cbranch<mode>4_insn_rev_68881):
      	(cbranch<mode>4_insn_cf, cbranch<mode>4_insn_rev_cf,
      	cstore<mode>4_insn_68881, cstore<mode>4_insn_cf for FP):
      	New patterns.
      	(cbranchsi4_btst_mem_insn, cbranchsi4_btst_reg_insn,
      	cbranchsi4_btst_mem_insn_1, cbranchsi4_btst_reg_insn_1):
      	Likewise.
      	(BTST): New define_mode_iterator.
      	(btst_predicate, btst_constraint, btst_range): New
      	define_mode_attrs.
      	(cbranch_bftst<mode>_insn, cstore_bftst<mode>_insn): New
      	patterns.
      	(movsi_m68k_movsi_m68k2, movsi_cf, unnamed movstrict patterns,
      	unnamed movhi and movqi patterns, unnamed movsf, movdf and movxf
      	patterns): Set attr "flags_valid".
      	(truncsiqi2, trunchiqi2, truncsihi2): Remove manual CC_STATUS
      	management.  Set attr "flags_valid".
      	(extendsidi2, extendplussidi, unnamed float_extendsfdf pattern,
      	extendsfdf2_cf, fix_truncdfsi2, fix_truncdfhi2, fix_truncdfqi2,
      	addi_sexthishl32, adddi_dilshr32, adddi_dilshr32_cf,
      	addi_dishl32, subdi_sexthishl32, subdi_dishl32, subdi3): Remove
      	manual CC_STATUS management.
      	(addsi3_internal, addhi3, addqi3, subsi3, subhi3, subqi3,
      	unnamed strict_lowpart subhi and subqi patterns): Set attr
      	"flags_valid".
      	(unnamed strict_lowpart addhi3 and addqi3 patterns): Likewise.
      	Remove code to operate on address regs and assert the case
      	does not occur.
      	(unnamed mulsidi patterns, divmodhi4, udivmodhi4): Remove
      	manual CC_STATUS_INIT.
      	(andsi3_internal, andhi3, andqi3, iorsi3_internal, iorhi3, iorqi3,
      	xorsi3_internal, xorhi3, xorqi3, negsi2_internal,
      	negsi2_5200, neghi2, negqi2, one_cmplsi2_internal, one_cmplhi2,
      	one_cmplqi2, unnamed strict_lowpart patterns
      	for andhi, andqi, iorhi, iorqi, xorhi, xorqi, neghi, negqi,
      	one_cmplhi and one_cmplqi): Set attr "flags_valid".
      	(iorsi_zext_ashl16, iorsi_zext): Remove manual CC_STATUS_INIT.
      	(ashldi_sexthi, ashlsi_16, ashlsi_17_24): Remove manual
      	CC_STATUS_INIT.
      	(ashlsi3, ashlhi3, ashlqi3, ashrsi3, ashrhi3, ashrqi3, lshrsi3,
      	lshrhi3, shrqi3, rotlsi3, rotlhi3, rotlhi3_lowpart, rotlqi3,
      	rotlqi3_lowpart, rotrsi3, rotrhi3, rotrhi_lowpart, rotrqi3,
      	unnamed strict_low_part patterns for HI and
      	QI versions): Set attr "flags_valid".
      	(bsetmemqi, bsetmemqi_ext, bsetdreg, bchgdreg, bclrdreg,
      	bclrmemqi, extzv_8_16_reg, extzv_bfextu_mem, insv_bfchg_mem,
      	insv_bfclr_mem, insv_bfset_mem, extv_bfextu_reg,
      	insv_bfclr_reg, insv_bfset_reg, dbne_hi, dbne_si, dbge_hi,
      	dbge_si, extendsfxf2, extenddfxf2, ): Remove manual cc_status management.
      	(various unnamed peepholes): Adjust compare/branch sequences
      	for new cbranch patterns.
      	(dbcc peepholes): Likewise, and output the comparison here
      	as well.
      	* config/m68k/predicates.md (valid_dbcc_comparison_p): Delete.
      	(fp_src_operand): Allow constant zero.
      	(address_reg_operand): New predicate.
      
      	* rtl.h (inequality_comparisons_p): Remove declaration.
      	* recog.h (next_insn_tests_no_inequality): Likewise.
      	* rtlanal.c (inequality_comparisons_p): Delete function.
      	* recog.c (next_insn_tests_no_inequality): Likewise.
      
      From-SVN: r278681
      Bernd Schmidt committed
    • Testsuite: Enable fp-int-convert-timode-1.c unconditionally when int128 supported. · e9daced3
      This removes the call to fesetround as FE_TONEAREST
      is the default and so the guard can be removed as well.
      
      The test will then run as long as there's int128 support.
      
      gcc/testsuite/ChangeLog:
      
      	* gcc.dg/torture/fp-int-convert-timode-1.c: Always run if int128.
      
      From-SVN: r278680
      Tamar Christina committed
    • tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Add assertion. · c6aef8d8
      2019-11-25  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Add assertion.
      	(vect_detect_hybrid_slp): Swap lane and instance iteration,
      	properly re-building the visited hash-map for each lane.
      
      From-SVN: r278679
      Richard Biener committed
    • [amdgcn] Silence warnings + add gcc_unreachable() · 6349e4f0
              * config/gcn/gcn.c (gcn_expand_scalar_to_vector_address,
              gcn_md_reorg): Remove unused variables.
              (gcn_emutls_var_init): Add missing (but unreachable) return
              to silence warning.
              (gcn_hsa_declare_function_name): Add gcc_unreachable to ensure
              target != TARGET_GCN3 or TARGET_GCN3 will fail instead of use
              an uninitialized variable.
      
      From-SVN: r278678
      Tobias Burnus committed
    • re PR ada/92362 (double elaboration of expression in Address aspect) · d587d1e4
      	PR ada/92362
      	* gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
      	Use a temporary instead of clobbering the result with a freeze node.
      
      From-SVN: r278675
      Eric Botcazou committed
    • DEC comparisons - allow Hollerith constants in comparisons. · 32bef8ff
      The -fdec option enables the use of Hollerith comparisons in comparisons
      with INTEGER, COMPLEX, REAL and CHARACTER expressions.
      
      	Mark Eggleston  <mark.eggleston@codethink.com>
      	Jim MacArthur  <jim.macarthur@codethink.co.uk>
      
      	* gfortran.texi: Update Hollerith constants support for character types
      	and use in comparisons.
      	* invoke.texi: Tidy up list of options. Update description of
      	-fdec-char-conversions.
      	* resolve.c (is_character_based): New.
      	(Convert_hollerith_to_character): New.  (convert_to_numeric): New.
      	(resolve_operator): If both sides are character based and -fdec is
      	enabled convert Hollerith to character. If an operand is Hollerith, the
      	other is numeric and -fdec is enabled convert to numeric.
      	(resolve_ordinary_assign): Add check for -fdec-char-conversions for
      	assignment of character literals.
      
      	Mark Eggleston <mark.eggleston@codethink.com>
      	Jim MacArthur <jim.macarthur@codethink.co.uk>
      
      	* gfortran.dg/dec-comparison-character_1.f90: New test.
      	* gfortran.dg/dec-comparison-character_2.f90: New test.
      	* gfortran.dg/dec-comparison-character_3.f90: New test.
      	* gfortran.dg/dec-comparison-complex_1.f90: New test.
      	* gfortran.dg/dec-comparison-complex_2.f90: New test.
      	* gfortran.dg/dec-comparison-complex_3.f90: New test.
      	* gfortran.dg/dec-comparison-int_1.f90: New test.
      	* gfortran.dg/dec-comparison-int_2.f90: New test.
      	* gfortran.dg/dec-comparison-int_3.f90: New test.
      	* gfortran.dg/dec-comparison-real_1.f90: New test.
      	* gfortran.dg/dec-comparison-real_2.f90: New test.
      	* gfortran.dg/dec-comparison-real_3.f90: New test.
      	* gfortran.dg/dec-comparison.f90: New test.
      
      
      Co-Authored-By: Jim MacArthur <jim.macarthur@codethink.co.uk>
      
      From-SVN: r278674
      Mark Eggleston committed
    • re PR ada/92575 (couple of suspicious assignments in expect.c) · ee499b40
      	PR ada/92575
      	* expect.c (__gnat_expect_poll [VMS, HPUX]): Fix typo.
      
      From-SVN: r278671
      Eric Botcazou committed
    • ipa: Prevent materialization of clones with removed bodies (PR 92109) · d0b1b67a
      2019-11-25  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/92109
      	* cgraph.h (cgraph_node::remove_from_clone_tree): Declare.
      	* cgraphclones.c (cgraph_node::remove_from_clone_tree): New method.
      	(cgraph_materialize_clone): Move removel from clone tree to the
      	the new method and use it instead.
      	* ipa.c (symbol_table::remove_unreachable_nodes): When removing
      	bodies of clones, also remove it from the clone tree.
      
      From-SVN: r278670
      Martin Jambor committed
    • Make IPA-SRA follow comdat-local rules (PR 91956) · ed649cda
      2019-11-25  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/91956
      	* ipa-sra.c (process_isra_node_results): Put the new node to the
      	same comdat group as the original node.
      
      	testsuite/
      	* g++.dg/ipa/pr91956.C: New test.
      
      From-SVN: r278669
      Martin Jambor committed
    • Build double32 / long-double32 multilibs if needed. · 5b01f1a5
      gcc/
      	Build double32 / long-double32 multilibs if needed.
      	PR target/92055
      	* config/avr/t-avr:
      	(HAVE_DOUBLE_MULTILIB, HAVE_LONG_DOUBLE_MULTILIB): Remove vars.
      	(HAVE_DOUBLE32, HAVE_LONG_DOUBLE32, WITH_LONG_DOUBLE)
      	(HAVE_DOUBLE64, HAVE_LONG_DOUBLE64, WITH_DOUBLE): Set from
      	tm_defines and pass to genmultilib.awk.
      	* config/avr/genmultilib.awk: Use these variables to add double32
      	and / or long-double32 multilib(s) as needed.
      	* config/avr/driver-avr.c (avr_double_lib): Adjust comment.
      
      From-SVN: r278668
      Georg-Johann Lay committed
    • cfgloop.h (get_loop_exit_edges): Add extra parameter denoting loop body, defaulted to NULL. · f10d2d85
      2019-11-25  Richard Biener  <rguenther@suse.de>
      
      	* cfgloop.h (get_loop_exit_edges): Add extra parameter denoting
      	loop body, defaulted to NULL.
      	(single_likely_exit): Add exit vector argument
      	* tree-ssa-loop-niter.h (loop_only_exit_p): Add loop body argument.
      	(number_of_iterations_exit): Likewise.
      	(number_of_iterations_exit_assumptions): Likewise.
      	* cfgloop.c (get_loop_exit_edges): Use passed in loop body
      	if not NULL.
      	* cfgloopanal.c (single_likely_exit): Use passed in exit vector.
      	* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
      	Compute exit vector around call to single_likely_exit.
      	* tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_loop): Pass down
      	loop body to loop_only_exit_p.
      	* tree-ssa-loop-niter.c (loop_only_exit_p): Get loop body from
      	caller.
      	(number_of_iterations_exit_assumptions): Get loop body from caller
      	if not NULL.
      	(number_of_iterations_exit): Pass through new loop body arg.
      	(infer_loop_bounds_from_undefined): Get loop body from caller.
      	(estimate_numbers_of_iterations): Compute loop body once.
      
      From-SVN: r278667
      Richard Biener committed
    • cfganal.c (pre_and_rev_post_order_compute_fn): Use an auto_bb_flag instead of an… · 5a34952e
      cfganal.c (pre_and_rev_post_order_compute_fn): Use an auto_bb_flag instead of an sbitmap for visited handling.
      
      2019-11-25  Richard Biener  <rguenther@suse.de>
      
      	* cfganal.c (pre_and_rev_post_order_compute_fn): Use an
      	auto_bb_flag instead of an sbitmap for visited handling.
      
      From-SVN: r278666
      Richard Biener committed
    • [rs6000] Refactor FP vector comparison operators · bceb7181
      This is a subsequent patch to refactor the existing float point
      vector comparison operator supports.  The patch to fix PR92132
      supplemented vector float point comparison by exposing the names
      for unordered/ordered/uneq/ltgt and adding ungt/unge/unlt/unle/
      ne.  As Segher pointed out, some patterns can be refactored
      together.  The main link on this is:
      https://gcc.gnu.org/ml/gcc-patches/2019-11/msg00452.html
      
      gcc/ChangeLog
      
      2019-11-25 Kewen Lin  <linkw@gcc.gnu.org>
      
          * config/rs6000/vector.md (vector_fp_comparison_simple): New code iterator.
          (vector_fp_comparison_complex): Likewise.
          (vector_<code><mode> for VEC_F and vector_fp_comparison_simple): New
          define_and_split.
          (vector_<code><mode> for VEC_F and vector_fp_comparison_complex): Likewise.
          (vector_lt<mode> for VEC_F): Refactor with vector_fp_comparison_simple.
          (vector_le<mode> for VEC_F): Likewise.
          (vector_unge<mode> for VEC_F): Likewise.
          (vector_unle<mode> for VEC_F): Likewise.
          (vector_ne<mode> for VEC_F): Likewise.
          (vector_ungt<mode> for VEC_F): Likewise.
          (vector_unlt<mode> for VEC_F): Likewise.
          (vector_ltgt<mode> for VEC_F): Refactor with vector_fp_comparison_complex.
          (vector_ordered<mode> for VEC_F): Likewise.
          (vector_uneq<mode> for VEC_F): Likewise.
          (vector_unordered<mode> for VEC_F): Likewise.
      
      From-SVN: r278665
      Kewen Lin committed
    • re PR libfortran/92100 (Formatted stream IO irreproducible read with binary data in file) · ee1bc59e
      2019-11-24  Jerry DeLisle  <jvdelisle@gcc.ngu.org>
      
      	PR fortran/92100
      	gfortran.dg/streamio_18.f90: New test.
      
      From-SVN: r278664
      Jerry DeLisle committed
    • Daily bump. · 8d6b4fe7
      From-SVN: r278663
      GCC Administrator committed
  3. 24 Nov, 2019 7 commits