- 11 Jul, 2018 5 commits
-
-
The spec says that when an index expression appears on the left hand side of an assignment, the operands should be evaluated. The gofrontend code was assuming that that only referred to the index operand. But discussion of https://golang.org/issue/23188 has clarified that this means both the slice/map/string operand and the index operand. Adjust the gofrontend code accordingly. Fixes golang/go#23188 Reviewed-on: https://go-review.googlesource.com/123155 From-SVN: r262554
Ian Lance Taylor committed -
PR c++/86443 * testsuite/libgomp.c++/for-15.C (a): Remove unused variable. (results): Make sure the variable is not inside declare target region. (qux): Remove unused function. From-SVN: r262552
Jakub Jelinek committed -
2018-07-11 Richard Biener <rguenther@suse.de> PR debug/86457 * dwarf2out.c (init_sections_and_labels): Use output_asm_line_debug_info consistently. (dwarf2out_early_finish): Likewise. (dwarf2out_finish): Remove DW_AT_stmt_list from early generated type units. From-SVN: r262551
Richard Biener committed -
tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Rework father_bb setting in a way to avoid propagating constants multiple times... 2018-07-10 Richard Biener <rguenther@suse.de> * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Rework father_bb setting in a way to avoid propagating constants multiple times on a loop body. From-SVN: r262550
Richard Biener committed -
From-SVN: r262549
GCC Administrator committed
-
- 10 Jul, 2018 10 commits
-
-
There was a typo in the output_macinfo_op gcc_assert. The function is called dwarf_FORM, not dwarf_form. Add the provided testcase from the bug to test -gsplit-dwarf -g3. gcc/ChangeLog: PR debug/86459 * dwarf2out.c (output_macinfo_op): Fix dwarf_FORM typo in gcc_assert. gcc/testsuite/ChangeLog: PR debug/86459 * gcc.dg/pr86459.c: New test. From-SVN: r262545
Mark Wielaard committed -
gcc/testsuite/ChangeLog: * gcc.c-torture/execute/builtins/strlen-3.c: Adjust. From-SVN: r262543
Martin Sebor committed -
2018-07-10 Martin Liska <mliska@suse.cz> PR testsuite/86445 * gcc.dg/pr84100.c: Change it back to dg-bogus. From-SVN: r262540
Martin Liska committed -
2018-07-10 Richard Biener <rguenther@suse.de> * hash-map.h (hash_map::iterator::operator*): Return references to key and value. From-SVN: r262539
Richard Biener committed -
PR sanitizer/86406 * cp-gimplify.c (cp_maybe_instrument_return): Skip trailing DEBUG_BEGIN_STMTs. * g++.dg/ubsan/pr86406.C: New test. From-SVN: r262536
Jakub Jelinek committed -
PR fortran/86421 * module.c (omp_declare_simd_clauses): Add LINEAR with _REF, _VAL and _UVAL suffixes. (mio_omp_declare_simd): Save and restore ref, val and uval modifiers on linear clauses. Initialize n->where to gfc_current_locus. * gfortran.dg/vect/pr86421.f90: New test. From-SVN: r262535
Jakub Jelinek committed -
PR c++/86443 * gimplify.c (find_combined_omp_for): Add DATA argument, in addition to finding the inner OMP_FOR/OMP_SIMD stmt find non-trivial wrappers, BLOCKs with BLOCK_VARs, OMP_PARALLEL in between, OMP_FOR in between. (gimplify_omp_for): For composite loops, move outer OMP_{DISTRIBUTE,TASKLOOP,FOR,PARALLEL} right around innermost OMP_FOR/OMP_SIMD if there are any non-trivial wrappers. For class iterators add any needed clauses. Allow OMP_FOR_ORIG_DECLS to contain TREE_LIST for both the original class iterator and the "last" helper var. Gimplify OMP_FOR_PRE_BODY before the outermost composite loop, remember has_decl_expr from outer composite loops for the innermost OMP_SIMD in TREE_PRIVATE bit on OMP_FOR_INIT. gcc/c-family/ * c-omp.c (c_omp_check_loop_iv_r, c_omp_check_loop_iv): Allow declv to contain TREE_LIST for both the original class iterator and the "last" helper var. gcc/cp/ * semantics.c (handle_omp_for_class_iterator): Remove lastp argument, instead of setting *lastp turn orig_declv elt into a TREE_LIST. (finish_omp_for): Adjust handle_omp_for_class_iterator caller. * pt.c (tsubst_omp_for_iterator): Allow OMP_FOR_ORIG_DECLS to contain TREE_LIST for both the original class iterator and the "last" helper var. libgomp/ * testsuite/libgomp.c++/for-15.C: New test. From-SVN: r262534
Jakub Jelinek committed -
In Interface_field_reference_expression, the interface expression is used in two places, so a temporary variable is used. Previously, we used a Set_and_use_temporary_expression, which, when evaluated twice, causes double evaluation of the underlying expression. Fix by setting the temporary once and use Temporary_reference_expression instead. Fixes golang/go#26248. Reviewed-on: https://go-review.googlesource.com/122756 From-SVN: r262533
Ian Lance Taylor committed -
From-SVN: r262532
GCC Administrator committed -
gcc/testsuite/ChangeLog: * gcc.dg/strlenopt-53.c: New test. From-SVN: r262528
Martin Sebor committed
-
- 09 Jul, 2018 10 commits
-
-
gcc/ChangeLog: PR middle-end/77357 PR middle-end/86428 * builtins.c (c_strlen): Avoid out-of-bounds warnings when accessing implicitly initialized array elements. * expr.c (string_constant): Handle string initializers of character arrays within aggregates. * gimple-fold.c (fold_array_ctor_reference): Add argument. Store element offset. As a special case, handle zero size. (fold_nonarray_ctor_reference): Same. (fold_ctor_reference): Add argument. Store subobject offset. * gimple-fold.h (fold_ctor_reference): Add argument. gcc/testsuite/ChangeLog: PR middle-end/77357 * gcc.dg/strlenopt-49.c: New test. * gcc.dg/strlenopt-50.c: New test. * gcc.dg/strlenopt-51.c: New test. * gcc.dg/strlenopt-52.c: New test. From-SVN: r262522
Martin Sebor committed -
* config/pdp11/pdp11.c (pdp11_addr_cost): New function. (pdp11_insn_cost): New function. (pdp11_md_asm_adjust): New function. (TARGET_INVALID_WITHIN_DOLOOP): Define. (pdp11_rtx_costs): Update to match machine better. (output_addr_const_pdp11): Correct format mismatch warnings. * config/pdp11/pdp11.h (SLOW_BYTE_ACCESS): Correct definition. * config/pdp11/pdp11.md: General change to add base_cost and/or length attributes for use by new pdp11_insn_cost function. (MIN_BRANCH): Correct definition. (MIN_SOB): Ditto. (doloop_end): Use standard pattern name for looping pattern. (doloop_end_nocc): New. (movsf): Add another constraint alternative. (zero_extendqihi2): Add constraint alternatives for not in place extend. (zero_extendhisi2): Remove. (shift patterns): Add CC handling variants. (bswaphi2): New. (bswapsi2): New. (rothi3): New. (define_peephole2): New peephole to recognize mov that sets CC for subsequent test. From-SVN: r262519
Paul Koning committed -
* config/sparc/sparc.c (sparc_fold_builtin) <SPARC_BUILTIN_PDIST, SPARC_BUILTIN_PDISTN>: Adapt for signature change of wi::neg, wi::add. From-SVN: r262518
Rainer Orth committed -
PR c/86420 * real.c (real_nextafter): Return true if result is denormal. * gcc.dg/nextafter-1.c (TEST): Adjust the tests that expect denormals to be returned and when first argument is not 0, so that they don't do anything for NEED_EXC or NEED_ERRNO. From-SVN: r262517
Jakub Jelinek committed -
Use relative line number where obvious: either the relative line number is '.', '.-1' or '.+1', or adjacent to another obvious case. 2018-07-09 Tom de Vries <tdevries@suse.de> * gcc.dg/guality/asm-1.c: Use relative line numbers where obvious. * gcc.dg/guality/bswaptest.c: Same. * gcc.dg/guality/clztest.c: Same. * gcc.dg/guality/csttest.c: Same. * gcc.dg/guality/ctztest.c: Same. * gcc.dg/guality/drap.c: Same. * gcc.dg/guality/nrv-1.c: Same. * gcc.dg/guality/pr41353-1.c: Same. * gcc.dg/guality/pr41353-2.c: Same. * gcc.dg/guality/pr41404-1.c: Same. * gcc.dg/guality/pr43051-1.c: Same. * gcc.dg/guality/pr43077-1.c: Same. * gcc.dg/guality/pr43177.c: Same. * gcc.dg/guality/pr43329-1.c: Same. * gcc.dg/guality/pr43479.c: Same. * gcc.dg/guality/pr43593.c: Same. * gcc.dg/guality/pr45003-1.c: Same. * gcc.dg/guality/pr45003-2.c: Same. * gcc.dg/guality/pr45003-3.c: Same. * gcc.dg/guality/pr48437.c: Same. * gcc.dg/guality/pr48466.c: Same. * gcc.dg/guality/pr49888.c: Same. * gcc.dg/guality/pr54200.c: Same. * gcc.dg/guality/pr54519-1.c: Same. * gcc.dg/guality/pr54519-2.c: Same. * gcc.dg/guality/pr54519-3.c: Same. * gcc.dg/guality/pr54519-4.c: Same. * gcc.dg/guality/pr54519-5.c: Same. * gcc.dg/guality/pr54519-6.c: Same. * gcc.dg/guality/pr54551.c: Same. * gcc.dg/guality/pr54693-2.c: Same. * gcc.dg/guality/pr54693.c: Same. * gcc.dg/guality/pr54796.c: Same. * gcc.dg/guality/pr54970.c: Same. * gcc.dg/guality/pr67192.c: Same. * gcc.dg/guality/pr69947.c: Same. * gcc.dg/guality/pr78726.c: Same. * gcc.dg/guality/rotatetest.c: Same. * gcc.dg/guality/sra-1.c: Same. * gcc.dg/guality/vla-2.c: Same. From-SVN: r262516
Tom de Vries committed -
2018-07-09 Martin Liska <mliska@suse.cz> * common.opt: Add back wrongly removed attribute. From-SVN: r262513
Martin Liska committed -
decl.c (grokdeclarator): Use rich_location::add_range in three more places; include gcc-rich-location.h. /cp 2018-07-09 Paolo Carlini <paolo.carlini@oracle.com> * decl.c (grokdeclarator): Use rich_location::add_range in three more places; include gcc-rich-location.h. /testsuite 2018-07-09 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/diagnostic/long-short.C: New. * g++.dg/diagnostic/signed-unsigned.C: Likewise. * g++.dg/diagnostic/virtual-friend.C: Likewise. * g++.old-deja/g++.brendan/crash11.C: Adjust. From-SVN: r262512
Paolo Carlini committed -
2018-07-09 Richard Biener <rguenther@suse.de> PR debug/86413 * dwarf2out.c (gen_block_die): For an early generated DIE always output high/low PC attributes. From-SVN: r262511
Richard Biener committed -
When compiling guality/vla-1.c with -O3 -g, vla a in f1 is optimized away, but f1 still contains a debug expression describing the upper bound of the vla (D.1914): ... __attribute__((noinline)) f1 (intD.6 iD.1900) { <bb 2> saved_stack.1_2 = __builtin_stack_save (); # DEBUG BEGIN_STMT # DEBUG D#3 => i_1(D) + 1 # DEBUG D#2 => (long intD.8) D#3 # DEBUG D#1 => D#2 + -1 # DEBUG D.1914 => (sizetype) D#1 ... Then f1 is cloned to a version f1.constprop with no parameters, eliminating parameter i, and 'DEBUG D#3 => i_1(D) + 1' turns into 'D#3 => NULL'. This patch fixes that by defining debug expressions for default defs of eliminated parameters in remap_ssa_name: ... __attribute__((noinline)) f1.constprop () { intD.6 iD.1949; <bb 3> # DEBUG D#8 s=> iD.1900 # DEBUG iD.1949 => D#8 <bb 2> + # DEBUG D#6 s=> iD.1949 saved_stack.1_1 = __builtin_stack_save (); # DEBUG BEGIN_STMT - # DEBUG D#3 => NULL + # DEBUG D#3 => D#6 + 1 # DEBUG D#2 => (long intD.8) D#3 # DEBUG D#1 => D#2 + -1 # DEBUG D.1951 => (sizetype) D#1 ... Bootstrapped and reg-tested on x86_64. 2018-07-09 Tom de Vries <tdevries@suse.de> * cfgexpand.c (expand_debug_source_expr): Handle VAR_DECL. * tree-inline.c (remap_ssa_name): Handle default def ssa_name mapping onto VAR_DECL with abstract origin. * gcc.dg/vla-1.c: New test. From-SVN: r262510
Tom de Vries committed -
From-SVN: r262509
GCC Administrator committed
-
- 08 Jul, 2018 1 commit
-
-
From-SVN: r262505
GCC Administrator committed
-
- 07 Jul, 2018 10 commits
-
-
gcc/ * config/riscv/riscv.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): New. From-SVN: r262501
Jim Wilson committed -
2018-07-07 Tom de Vries <tdevries@suse.de> * tree-dfa.c (dump_enumerated_decls): Handle cfun->cfg == NULL. * gcc.misc-tests/options.exp (check_for_all_options): Clean up dump files. (get_dump_flags): New proc. (toplevel): Test all dump flags. From-SVN: r262500
Tom de Vries committed -
* c-ada-spec.c (to_ada_name): Remove index parameter. (pp_ada_tree_identifier): Likewise. (dump_ada_macros): Adjust call to to_ada_name. (struct overloaded_name_hash): Delete. (struct overloaded_name_hasher): Likewise. (overloaded_names): Likewise. (compute_overloading_index): Likewise. (dump_ada_decl_name): Do not call compute_overloading_index and adjust calls to pp_ada_tree_identifier. (dump_ada_double_name): Adjust calls to pp_ada_tree_identifier. (dump_ada_import): Add spc parameter and switch to aspect syntax. (dump_ada_function_declaration): Adjust call to pp_ada_tree_identifier. (dump_ada_enum_type): Remove type and display_convention parameters. Adjust calls to pp_ada_tree_identifier. (dump_ada_node): Likewise and for dump_ada_structure. (dump_nested_type) <ENUMERAL_TYPE>: Adjust call to dump_ada_enum_type and tidy up. <RECORD_TYPE>: Adjust call to dump_ada_structure and switch to aspect syntax. (print_constructor): Adjust call to pp_ada_tree_identifier. (print_destructor): Likewise. (dump_ada_declaration): Switch to aspect syntax. (dump_ada_structure): Likewise and tidy up. Replace display_convention parameter with nested parameter. (dump_ads): Emit pragma Ada_2012 in lieu of pragma Ada_2005. (dump_ada_specs): Do not delete overloaded_names table. From-SVN: r262499
Eric Botcazou committed -
* gcc-interface/decl.c (gnat_to_gnu_entity): Add GNAT_DECL local variable and use it throughout. <E_Variable>: If the nominal subtype of the object is unconstrained, compute the Ada size separately and put in on the padding type if the size is not fixed. <E_Record_Type>: Minor tweak. * gcc-interface/misc.c (gnat_type_max_size): Rename max_size_unit into max_size_unit throughout. From-SVN: r262498
Eric Botcazou committed -
* gcc-interface/gigi.h (add_decl_expr): Adjust prototype. * gcc-interface/decl.c (gnat_to_gnu_entity): Remove useless test. * gcc-interface/trans.c (add_stmt_with_node): Remove exceptions. (add_decl_expr): Change type of second parameter and rename it. (renaming_from_instantiation_p): New function moved from... (set_expr_location_from_node): Test for exceptions here and add one for actual subtypes built for unconstrained composite actuals. * gcc-interface/utils.c (renaming_from_instantiation_p): ...here. From-SVN: r262497
Eric Botcazou committed -
* gcc-interface/trans.c (lvalue_required_p): Remove ALIASED parameter and adjust recursive calls. (Identifier_to_gnu): Adjust calls to lvalue_required_p. (gnat_to_gnu): Likewise. From-SVN: r262496
Eric Botcazou committed -
* gcc-interface/decl.c (gnat_to_gnu_param): Minor tweak. (gnat_to_gnu_subprog_type): New pure_flag local variable. Set it for a pure Ada function with a by-ref In parameter. Propagate it onto the function type by means of the TYPE_QUAL_RESTRICT flag. * gcc-interface/utils.c (finish_subprog_decl): Set DECL_PURE_P if the function type has the TYPE_QUAL_RESTRICT flag set. From-SVN: r262495
Eric Botcazou committed -
* tree-vrp.c (vrp_int_const_binop): Change overflow type to overflow_type. (combine_bound): Use wide-int overflow calculation instead of rolling our own. * calls.c (maybe_warn_alloc_args_overflow): Change overflow type to overflow_type. * fold-const.c (int_const_binop_2): Same. (extract_muldiv_1): Same. (fold_div_compare): Same. (fold_abs_const): Same. * match.pd: Same. * poly-int.h (add): Same. (sub): Same. (neg): Same. (mul): Same. * predict.c (predict_iv_comparison): Same. * profile-count.c (slow_safe_scale_64bit): Same. * simplify-rtx.c (simplify_const_binary_operation): Same. * tree-chrec.c (tree_fold_binomial): Same. * tree-data-ref.c (split_constant_offset_1): Same. * tree-if-conv.c (idx_within_array_bound): Same. * tree-scalar-evolution.c (iv_can_overflow_p): Same. * tree-ssa-phiopt.c (minmax_replacement): Same. * tree-vect-loop.c (is_nonwrapping_integer_induction): Same. * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): Same. * vr-values.c (vr_values::adjust_range_with_scev): Same. * wide-int.cc (wi::add_large): Same. (wi::mul_internal): Same. (wi::sub_large): Same. (wi::divmod_internal): Same. * wide-int.h: Change overflow type to overflow_type for neg, add, mul, smul, umul, div_trunc, div_floor, div_ceil, div_round, mod_trunc, mod_ceil, mod_round, add_large, sub_large, mul_internal, divmod_internal. (overflow_type): New enum. (accumulate_overflow): New. cp/ * decl.c (build_enumerator): Change overflow type to overflow_type. * init.c (build_new_1): Same. From-SVN: r262494
Aldy Hernandez committed -
PR target/84711 * gcc.dg/vect/pr84711.c: Remove unnecessary sse dg-require-effective-target. Add -msse not just on i386-*, but on all i?86-* and x86_64-*. From-SVN: r262493
Jakub Jelinek committed -
From-SVN: r262492
GCC Administrator committed
-
- 06 Jul, 2018 4 commits
-
-
gcc/ChangeLog: 2018-07-06 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> * tree-ssa-phiopt.c (cond_removal_in_popcount_pattern): New. (tree_ssa_phiopt_worker): Call cond_removal_in_popcount_pattern. gcc/testsuite/ChangeLog: 2018-07-06 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> * gcc.dg/tree-ssa/phi-opt-16.c: New test. * gcc.dg/tree-ssa/phi-opt-17.c: New test. * gcc.dg/tree-ssa/phi-opt-18.c: New test. * gcc.dg/tree-ssa/phi-opt-19.c: New test. * gcc.dg/tree-ssa/popcount3.c: New test. From-SVN: r262488
Kugan Vivekanandarajah committed -
tree-ssa-loop-niter.c (number_of_iterations_popcount): If popcount argument is checked for zero before entering loop, avoid checking again. gcc/ChangeLog: 2018-07-06 Kugan Vivekanandarajah <kuganv@linaro.org> * tree-ssa-loop-niter.c (number_of_iterations_popcount): If popcount argument is checked for zero before entering loop, avoid checking again. From-SVN: r262487
Kugan Vivekanandarajah committed -
gcc/ChangeLog: 2018-07-06 Kugan Vivekanandarajah <kuganv@linaro.org> * gimplify.h (generic_expr_could_trap_p): Set as global function. * gimplify.h (generic_expr_could_trap_p): Likwise. * tree-scalar-evolution.c (expression_expensive_p): Handle COND_EXPR. gcc/testsuite/ChangeLog: 2018-07-06 Kugan Vivekanandarajah <kuganv@linaro.org> * gcc.dg/tree-ssa/pr64183.c: Disable final value replacement to preserve the test. * gcc.target/i386/pr85073.c: Likewise. From-SVN: r262486
Kugan Vivekanandarajah committed -
re PR tree-optimization/86401 (The "For constants M and N, if M == (1LL << cst) - 1 && (N & M) == M,..." opts are only in fold-const.c and in RTL) PR tree-optimization/86401 * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Move the ((A & N) + B) & M -> (A + B) & M etc. optimization into ... (fold_bit_and_mask): ... here. New helper function for match.pd. * fold-const.h (fold_bit_and_mask): Declare. * match.pd (((A & N) + B) & M -> (A + B) & M): New optimization. * gcc.dg/tree-ssa/pr86401-1.c: New test. * gcc.dg/tree-ssa/pr86401-2.c: New test. * c-c++-common/rotate-9.c: New test. From-SVN: r262485
Jakub Jelinek committed
-