1. 12 Sep, 2018 8 commits
    • S/390: Use proper rounding mode for DFP to BFD conversions · ced8d882
      According to IEEE 754 2008 4.3 'Rounding-direction attributes' the
      rounding mode of the target format needs to be used. By not setting
      the value so far we have always used the DFP rounding mode.
      
      gcc/ChangeLog:
      
      2018-09-12  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* config/s390/s390.md (PFPO_RND_MODE_DFP, PFPO_RND_MODE_BFP): New
      	constants.
      	("trunc<BFP:mode><DFP_ALL:mode>2")
      	("trunc<DFP_ALL:mode><BFP:mode>2")
      	("extend<BFP:mode><DFP_ALL:mode>2")
      	("extend<DFP_ALL:mode><BFP:mode>2"): Set proper rounding mode
      	according to the target operand type.
      
      gcc/testsuite/ChangeLog:
      
      2018-09-12  Andreas Krebbel  <krebbel@linux.ibm.com>
      
      	* gcc.target/s390/dfp_to_bfp_rounding.c: New test.
      
      From-SVN: r264234
      Andreas Krebbel committed
    • Add quotes for -fconstexpr-depth= in an error message. · 7e7a6ed7
      From-SVN: r264233
      Martin Liska committed
    • re PR tree-optimization/86844 (wrong code caused by store merging pass) · 6cd4c66e
      	PR tree-optimization/86844
      	* gimple-ssa-store-merging.c
      	(imm_store_chain_info::coalesce_immediate): For overlapping stores, if
      	there are any overlapping stores in between them, make sure they are
      	also coalesced or we give up completely.
      
      	* gcc.c-torture/execute/pr86844.c: New test.
      	* gcc.dg/store_merging_22.c: New test.
      	* gcc.dg/store_merging_23.c: New test.
      
      Co-Authored-By: Andreas Krebbel <krebbel@linux.ibm.com>
      
      From-SVN: r264232
      Jakub Jelinek committed
    • re PR middle-end/87248 (Bad code for masked operations involving signed ints) · 9095b53a
      	PR middle-end/87248
      	* fold-const.c (fold_ternary_loc) <case COND_EXPR>: Verify also that
      	BIT_AND_EXPR's second operand is a power of two.  Formatting fix.
      
      	* c-c++-common/torture/pr87248.c: New test.
      
      From-SVN: r264230
      Jakub Jelinek committed
    • [debug] Add -gdescribe-dies · 03e992ac
      This patch adds option -gdescribe-dies.  It sets the DW_AT_description
      attribute of dies that do not get a DW_AT_name attribute, to make it easier
      to figure out what the die is describing.
      
      The option exports the names of artificial variables:
      ...
       DIE    0: DW_TAG_variable (0x7fa934dd54b0)
      +  DW_AT_description: "D.1922"
         DW_AT_type: die -> 0 (0x7fa934dd0d70)
         DW_AT_artificial: 1
      
      ...
      which can be traced back to gimple dumps:
      ...
        char a[0:D.1922] [value-expr: *a.0];
      ...
      
      Furthermore, it adds names to external references:
      ...
       DIE    0: DW_TAG_subprogram (0x7fa88b9650f0)
      +DW_AT_description: "main"
       DW_AT_abstract_origin: die -> label: vla_1.c.6719312a + 29 (0x7fa88b965140)
      ...
      and likewise to DW_TAG_call_site_parameter DIEs.
      
      Bootstrapped and reg-tested on x86_64.
      
      2018-09-12  Tom de Vries  <tdevries@suse.de>
      
      	* common.opt (gdescribe-dies): Add option.
      	* dwarf2out.c (add_name_and_src_coords_attributes): Add description
      	attribute for artifical and nameless decls.
      	(dwarf2out_register_external_die): Add description attribute to
      	external reference die.
      	(add_desc_attribute): New functions.
      	(gen_subprogram_die): Add description attribute to
      	DW_TAG_call_site_parameter.
      	* tree-pretty-print.c (print_generic_expr_to_str): New function.
      	* tree-pretty-print.h (print_generic_expr_to_str): Declare.
      	* doc/invoke.texi (@item Debugging Options): Add -gdescribe-dies and
      	-gno-describe-dies.
      	(@item -gdescribe-dies): Add.
      
      From-SVN: r264229
      Tom de Vries committed
    • tree-vrp.c (vrp_shift_undefined_p): Remove. · 28aa6323
      	* tree-vrp.c (vrp_shift_undefined_p): Remove.
      	(extract_range_from_binary_expr_1: Call
      	wide_int_range_shift_undefined_p instead of vrp_shift_undefined_p.
      	* wide-int-range.h (wide_int_range_shift_undefined_p): Do not
      	depend on sign.
      
      From-SVN: r264228
      Aldy Hernandez committed
    • * gimple-ssa-warn-alloca.c · bb753cad
      	(alloca_type_and_limit::alloca_type_and_limit): Initialize limit
      	field for ALLOCA_BOUND_*_LARGE.
      
      From-SVN: r264227
      Aldy Hernandez committed
    • Daily bump. · be673084
      From-SVN: r264226
      GCC Administrator committed
  2. 11 Sep, 2018 15 commits
  3. 10 Sep, 2018 5 commits
    • re PR fortran/85395 ([F03] private clause contained in derived type acquires spurious scope) · d4beaf2a
      fix PR 85395
      
      2018-09-10  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/85395
      	* decl.c (match_binding_attributes): Use correct default accessibility
      	for procedure pointer components.
      
      2018-09-10  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/85395
      	* gfortran.dg/proc_ptr_comp_52.f90: New test case.
      
      From-SVN: r264196
      Janus Weil committed
    • i386.md (<sincos>xf2): Rename from *<sincos>xf2_i387. · 6f2dde9c
      	* config/i386/i386.md (<sincos>xf2): Rename from *<sincos>xf2_i387.
      	(*<sincos>_extend<mode>xf2_i387): Remove insn pattern.
      	(<sincos>mode2): New expander.
      	(sincos_extend<mode>xf3_i387): Remove insn pattern.
      	(sincos -> sin, cos splitters): Remove splitter patterns.
      	(sincos<mode>3): Change operand 2 predicate to general_operand.
      	Extend operand 2 to XFmode and generate sincosxf3 insn.
      	(fptanxf4_i387): Change mode of operands 0 and 3 to SFmode.
      	Change operand 3 predicate to const1_operand.
      	(fptan_extend<mode>xf4_i387): Remove insn pattern.
      	(tanxf2): Update operands in the call to fptanxf4_i387.
      	(tan<mode>2): Change operand 1 predicate to general_operand.
      	Extend operand 1 to XFmode and generate tanxf3 insn.
      	(atan2xf3): Rename from *fpatanxf3_i387.
      	(fpatan_extend<mode>xf3_i387): Remove insn pattern.
      	(atan2xf3): Remove expander.
      	(atan2<mode<3):  Change operand 1 and 2 predicates to general_operand.
      	Extend operands 1 and 2 to XFmode and generate atan2xf3 insn.
      	(atan<mode>2): Change operand 1 predicate to general_operand.
      	Extend operand 1 to XFmode and generate atanxf3 insn.
      
      From-SVN: r264195
      Uros Bizjak committed
    • i386.md (x87/SSE constant load splitter): Use memory_operand instead of… · dfc74155
      i386.md (x87/SSE constant load splitter): Use memory_operand instead of nonimmediate_operand for input operand predicate.
      
      	* config/i386/i386.md (x87/SSE constant load splitter): Use
      	memory_operand instead of nonimmediate_operand for input operand
      	predicate.
      
      From-SVN: r264194
      Uros Bizjak committed
    • class.c (build_vtbl_ref): Remove. · fe56b8a2
      	* class.c (build_vtbl_ref): Remove.
      	(build_vtbl_ref_1): Rename to build_vtbl_ref.
      	(build_vfn_ref): Call build_vtbl_ref instead of build_vtbl_ref_1.
      
      From-SVN: r264193
      Marek Polacek committed
    • Daily bump. · 0fa6c49b
      From-SVN: r264189
      GCC Administrator committed
  4. 09 Sep, 2018 8 commits
  5. 08 Sep, 2018 4 commits
    • PR c++/87150 - wrong ctor with maybe-rvalue semantics. · e5ba9b70
      	* call.c (struct conversion): Update commentary.
      	(standard_conversion): Set rvaluedness_matches_p if LOOKUP_PREFER_RVALUE
      	for ck_base.
      
      	* g++.dg/cpp0x/move-return2.C: New test.
      
      From-SVN: r264172
      Marek Polacek committed
    • PR c++/86678 - constexpr function with non-constant after return. · 3075affd
      	In this testcase, the call to f() can never be a constant
      	expression, but that's not a problem because it isn't always
      	reached by calls to g.  We were wrongly rejecting this because
      	potential_constant_expression_1 lacked the jump tracking that
      	cxx_eval_constant_expression has.  So this patch adds a simpler
      	version of that tracking.
      
      	* constexpr.c (potential_constant_expression_1): Add jump_target.
      	(breaks): Check for BREAK_STMT.
      	(continues): Check for CONTINUE_STMT.
      
      From-SVN: r264171
      Jason Merrill committed
    • cxx-pretty-print.c (cxx_pretty_printer::statement): Handle RANGE_FOR_INIT_STMT. · 61856507
      	* cxx-pretty-print.c (cxx_pretty_printer::statement) <case
      	RANGE_FOR_SMT>: Handle RANGE_FOR_INIT_STMT.
      
      From-SVN: r264170
      Marek Polacek committed
    • array-init.c: Add dg-prune-output. · e00dfa84
      	* c-c++-common/array-init.c: Add dg-prune-output.
      	* g++.dg/cpp0x/lambda/lambda-const-this.C: Add dg-warning.
      	* g++.dg/cpp0x/lambda/lambda-in-class-neg.C: Likewise.
      	* g++.dg/cpp0x/lambda/lambda-in-class.C: Likewise.
      	* g++.dg/cpp0x/lambda/lambda-nested.C: Likewise.
      	* g++.dg/cpp0x/lambda/lambda-nsdmi1.C: Likewise.
      	* g++.dg/cpp0x/lambda/lambda-nsdmi4.C: Likewise.
      	* g++.dg/cpp0x/lambda/lambda-this.C: Likewise.
      	* g++.dg/cpp0x/lambda/lambda-this17.C: Likewise.
      	* g++.dg/cpp0x/lambda/lambda-this18.C: Likewise.
      	* g++.dg/cpp0x/lambda/lambda-this2.C: Likewise.
      	* g++.dg/cpp0x/lambda/lambda-this8.C: Likewise.
      	* g++.dg/cpp1y/pr64382.C: Likewise.
      	* g++.dg/cpp1y/pr77739.C: Likewise.
      	* g++.dg/cpp1z/lambda-this1.C: Likewise.
      	* g++.dg/cpp1z/lambda-this2.C: Likewise.
      	* g++.dg/template/crash84.C: Adjust dg-error.
      
      From-SVN: r264169
      Marek Polacek committed