1. 03 Dec, 2015 13 commits
  2. 02 Dec, 2015 27 commits
    • re PR preprocessor/57580 (Repeated _Pragma message directives in macro causes problems) · 6eb4a537
      	PR preprocessor/57580
      	* c-ppoutput.c (print): Change printed field to bool.
      	Move src_file last for smaller padding.
      	(init_pp_output): Set print.printed to false instead of 0.
      	(scan_translation_unit): Fix up formatting.  Set print.printed
      	to true after printing something other than newline.
      	(scan_translation_unit_trad): Set print.printed to true instead of 1.
      	(maybe_print_line_1): Set print.printed to false instead of 0.
      	(print_line_1): Likewise.
      	(do_line_change): Set print.printed to true instead of 1.
      	(cb_define, dump_queued_macros, cb_include, cb_def_pragma,
      	dump_macro): Set print.printed to false after printing newline.
      
      	* c-c++-common/cpp/pr57580.c: New test.
      	* c-c++-common/gomp/pr57580.c: New test.
      
      From-SVN: r231213
      Jakub Jelinek committed
    • handle missing isl_ast_expr · 49ed2fa4
      From ISL's documentation, isl_ast_op_zdiv_r is equal to zero iff the remainder
      on integer division is zero.  Code generate a modulo operation for that.
      
      	* graphite-isl-ast-to-gimple.c (binary_op_to_tree): Handle isl_ast_op_zdiv_r.
              (gcc_expression_from_isl_expr_op): Same.
      
      	* gcc.dg/graphite/id-28.c: New.
      
      Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
      
      From-SVN: r231212
      Aditya Kumar committed
    • do not insert code outside the generated region · 1a67d2cd
      on the testcase we used to generate code in the function entry bb_0,
      and that choked the cfg verifier.
      
      	* graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Check
      	that insertion point is still in the region.
      
      	* gfortran.dg/graphite/id-26.f03: New.
      
      Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
      
      From-SVN: r231211
      Aditya Kumar committed
    • Allow running the testsuite in C++1z mode. · fa26da22
      gcc/cp/
      	* Make-lang.in (check-c++1z, check-c++-all): New.
      gcc/testsuite/
      	* lib/g++.exp: Handle --stds= option.
      	* lib/g++-dg.exp (g++-dg-runtest): Use it.
      
      From-SVN: r231209
      Jason Merrill committed
    • check.c (gfc_check_event_query): New function. · 5df445a2
      2015-12-02  Tobias Burnus  <burnus@net-b.de>
      	    Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
      
      	* check.c (gfc_check_event_query): New function.
      	* dump-parse-tree.c (show_code_node): Handle EXEC_EVENT_POST,
      	EXEC_EVENT_WAIT.
      	* expr.c (gfc_check_vardef_context): New check for event variables
      	definition.
      	* gfortran.h (gfc_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
      	(gfc_isym_id): GFC_ISYM_EVENT_QUERY.
      	(struct symbol_attribute): New field.
      	(gfc_exec_op): Add EXEC_EVENT_POST and EXEC_EVENT_WAIT.
      	* gfortran.texi: Document about new events functions and minor
      	changes.
      	* interface.c (compare_parameter): New check.
      	(gfc_procedure_use): New check for explicit procedure interface.
      	(add_subroutines): Add event_query.
      	* intrinsic.h (gfc_check_event_query,gfc_resolve_event_query):
      	New prototypes.
      	* iresolve.c (gfc_resolve_event_query): New function.
      	* iso-fortran-env.def (event_type): New type.
      	* match.c (event_statement,gfc_match_event_post,gfc_match_event_wait):
      	New functions.
      	(gfc_match_name): New event post and event wait.
      	* match.h (gfc_match_event_post,gfc_match_event_wait):
      	New prototypes.
      	* module.c (ab_attribute): Add AB_EVENT_COMP.
      	(attr_bits): Likewise.
      	(mio_symbol_attribute): Handle event_comp attribute.
      	* parse.c (decode_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
      	(next_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
      	(gfc_ascii_statement): Add ST_EVENT_POST, ST_EVENT_WAIT.
      	(parse_derived): Check for event_type components.
      	* resolve.c (resolve_allocate_expr): Check for event variable def.
      	(resolve_lock_unlock): Renamed to resolve_lock_unlock_event. It
      	includes logic for locks and events.
      	(gfc_resolve_code): Call it.
      	(gfc_resolve_symbol): New check for event variable to be a corray.
      	* st.c (gfc_free_statement): Handle new EXEC_EVENT_POST and
      	EXEC_EVENT_WAIT.
      	* trans-decl.c (gfor_fndecl_caf_event_post,gfor_fndecl_caf_event_wait,
      	gfor_fndecl_caf_event_query): New global variables.
      	(generate_coarray_sym_init): Checking for event_type.
      	(gfc_conv_procedure_call): Check for C bind attribute.
      	* trans-intrinsic.c (conv_intrinsic_event_query): New function.
      	(conv_intrinsic_move_alloc): Call it.
      	* trans-stmt.c (gfc_trans_lock_unlock): Passing address
      	of actual argument.
      	(gfc_trans_sync): Likewise.
      	(gfc_trans_event_post_wait): New function.
      	* trans-stmt.h (gfc_trans_event_post_wait): New prototype.
      	* trans-types.c (gfc_get_derived_type): Integer_kind as event_type.
      	* trans.c (gfc_allocate_using_lib): New argument and logic for events.
      	(gfc_allocate_allocatable): Passing new argument.
      	(trans_code): Handle EXEC_EVENT_POST, EXEC_EVENT_WAIT.
      	* trans.h (gfc_coarray_type): New elements.
      	(gfor_fndecl_caf_event_post,gfor_fndecl_caf_event_wait,
      	gfor_fndecl_caf_event_query): Declare them.
      
      2015-12-02  Tobias Burnus  <burnus@net-b.de>
      	    Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
      
      	* gfortran.dg/coarray/event_1.f90: New.
      	* gfortran.dg/coarray/event_2.f90: New.
      
      Co-Authored-By: Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
      
      From-SVN: r231208
      Tobias Burnus committed
    • fix PR68550: do not handle ISL loop peeled statements · ca377fc3
      In case ISL did some loop peeling, like this:
      
        S_8(0);
        for (int c1 = 1; c1 <= 5; c1 += 1) {
          S_8(c1);
        }
        S_8(6);
      
      we should not copy loop-phi nodes in S_8(0) or in S_8(6).
      
      	PR tree-optimization/68550
      	* graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Add dump.
      	(copy_bb_and_scalar_dependences): Do not code generate loop peeled
      	statements.
      
      	* gfortran.dg/graphite/pr68550-1.f90: New.
      	* gfortran.dg/graphite/pr68550-2.f90: New.
      
      Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
      
      From-SVN: r231206
      Aditya Kumar committed
    • re PR c/68513 (ICE in gimplify_expr, at gimplify.c:8832, c_maybe_const_expr in IL) · c297b7cd
      	PR c/68513
      	* gcc.dg/pr68513.c: New test.
      
      From-SVN: r231205
      Marek Polacek committed
    • re PR fortran/63861 (OpenACC coarray ICE (also with OpenMP?)) · 2f9bcf53
      	gcc/fortran/
      	PR fortran/63861
      	* openmp.c (gfc_match_omp_clauses): Allow subarrays for acc reductions.
      	(resolve_omp_clauses): Error on any acc reductions on arrays.
      
      	gcc/testsuite/
      	* gfortran.dg/goacc/array-reduction.f90: New test.
      	* gfortran.dg/goacc/assumed.f95: Update expected diagnostics.
      	* gfortran.dg/goacc/coarray.f95: Likewise.
      	* gfortran.dg/goacc/coarray_2.f90: Likewise.
      	* gfortran.dg/goacc/reduction-2.f95: Likewise.
      	* gfortran.dg/goacc/reduction.f95: Likewise.
      
      From-SVN: r231204
      Cesar Philippidis committed
    • Fix c++/67337 (segfault in mangle.c) · e7fc41a7
      	PR c++/67337
      	* mangle.c (write_template_prefix): Guard against context==NULL.
      
      From-SVN: r231203
      Markus Trippelsdorf committed
    • configure.ac: Check assembler support for R_PPC64_ENTRY relocation. · 157bb85d
      	* configure.ac: Check assembler support for R_PPC64_ENTRY relocation.
      	* configure: Regenerate.
      	* config.in: Regenerate.
      	* config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p): New
      	function.
      	(rs6000_output_function_prologue): Use it instead of checking
      	cfun->machine->r2_setup_needed.  Use internal labels instead of
      	GNU as local label extension.  Handle ELFv2 large code model.
      	(rs6000_output_mi_thunk): Do not set cfun->machine->r2_setup_needed.
      	(rs6000_elf_declare_function_name): Handle ELFv2 large code model.
      
      From-SVN: r231202
      Ulrich Weigand committed
    • re PR target/68647 (__builtin_popcountll doesn't generate popcnt instructions… · 8923e02e
      re PR target/68647 (__builtin_popcountll doesn't generate popcnt instructions when targeting -mpopcnt on x86_32)
      
      	PR target/68647
      	* optabs.c (expand_doubleword_popcount, expand_doubleword_parity):
      	New functions.
      	(expand_unop): Use them.
      
      	* gcc.target/i386/pr68647.c: New test.
      
      From-SVN: r231201
      Jakub Jelinek committed
    • re PR c++/68653 (ICE: in nonnull_arg_p, at tree.c:13853) · d6221ad4
      	PR c++/68653
      	* tree.c (nonnull_arg_p): Allow OFFSET_TYPE.
      
      	* g++.dg/warn/nonnull3.C: New test.
      
      From-SVN: r231200
      Marek Polacek committed
    • re PR go/66147 (go fails to cross build) · 105b682e
      ./:	PR go/66147
      	* Makefile.tpl (HOST_EXPORTS): Add XGCC_FLAGS_FOR_TARGET.
      	* Makefile.in: Regenerate.
      gotools/:
      	PR go/66147
      	* Makefile.am (GOCOMPILER): In NATIVE case, add
      	$(XGCC_FLAGS_FOR_TARGET).
      
      From-SVN: r231199
      Ian Lance Taylor committed
    • Do constant folding in warn_* functions. · f479b43d
      gcc/c-family/
      	* c-common.c (fold_for_warn): New.
      	(warn_logical_operator, warn_tautological_cmp)
      	(check_function_arguments_recurse, maybe_warn_bool_compare): Use it.
      gcc/cp/
      	* call.c (build_new_op_1): Don't fold arguments to
      	warn_logical_operator or maybe_warn_bool_compare.
      
      From-SVN: r231198
      Jason Merrill committed
    • Introduce cp_fold_rvalue. · 7426fcc8
      	* cp-gimplify.c (cp_fold_maybe_rvalue, cp_fold_rvalue): New.
      	(c_fully_fold): Use cp_fold_rvalue.
      	(cp_fold): Use them for rvalue operands.
      
      From-SVN: r231197
      Jason Merrill committed
    • Define c_fully_fold separately for C and C++. · 4250754e
      gcc/c-family/
      	* c-common.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
      	(c_fully_fold_internal, decl_constant_value_for_optimization):
      	Move to c/c-fold.c.
      	* c-common.h: Don't declare decl_constant_value_for_optimization.
      gcc/c/
      	* c-fold.c (c_disable_warnings, c_enable_warnings, c_fully_fold)
      	(c_fully_fold_internal, decl_constant_value_for_optimization):
      	Move from c-common.c.
      	* c-tree.h: Declare decl_constant_value_for_optimization.
      	* Make-lang.in (C_AND_OBJC_OBJS): Add c-fold.o.
      gcc/cp/
      	* cp-gimplify.c (c_fully_fold): Define.
      
      From-SVN: r231196
      Jason Merrill committed
    • * cp-gimplify.c (cp_fold): Use fold_build*. · e9ea372d
      From-SVN: r231195
      Jason Merrill committed
    • Fix TYPE_MAIN_VARIANT construction for arrays of qualified typedefs (PR c/68162). · e9e32ee6
      PR c/68162 reports a spurious warning about incompatible types
      involving arrays of const double, constructed in one place using a
      typedef for const double and in another place literally using const
      double.
      
      The problem is that the array of the typedef was incorrectly
      constructed without a TYPE_MAIN_VARIANT being an array of unqualified
      elements as it should be (though it seems some more recent change
      resulted in this producing incorrect diagnostics, likely the support
      for C++-style handling of arrays of qualified type).  This patch fixes
      the logic in grokdeclarator to determine first_non_attr_kind, which is
      used to determine whether it is necessary to use the TYPE_MAIN_VARIANT
      of the type in the declaration specifiers.
      
      However, fixing that logic introduces a failure of
      gcc.dg/debug/dwarf2/pr47939-4.c, a test introduced along with
      first_non_attr_kind.  Thus, it is necessary to track the original
      qualified typedef when qualifying an array type, to use it rather than
      a newly-constructed type, to avoid regressing regarding typedef names
      in debug info.  This is done along lines I suggested in
      <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47939#c6>: track the
      original type and the number of levels of array indirection at which
      it appears, and, in possibly affected cases, pass extra arguments to
      c_build_qualified_type (with default arguments to avoid needing to
      pass those extra arguments explicitly everywhere).  Given Richard's
      recent fix to dwarf2out.c, this allows the C bug to be fixed without
      causing debug information regressions.
      
      Bootstrapped with no regressions on x86_64-pc-linux-gnu.
      
      gcc/c:
      	PR c/68162
      	* c-decl.c (grokdeclarator): Set first_non_attr_kind before
      	following link from declarator to next declarator.  Track original
      	qualified type and pass it to c_build_qualified_type.
      	* c-typeck.c (c_build_qualified_type): Add arguments
      	orig_qual_type and orig_qual_indirect.
      
      gcc/c-family:
      	PR c/68162
      	* c-common.h (c_build_qualified_type): Add extra default
      	arguments.
      
      gcc/cp:
      	PR c/68162
      	* tree.c (c_build_qualified_type): Add extra arguments.
      
      gcc/testsuite:
      	PR c/68162
      	* gcc.dg/pr68162-1.c: New test.
      
      From-SVN: r231194
      Joseph Myers committed
    • configure.ac: Move AM_ENABLE_MULTILIB before GCC_LIBSTDCXX_RAW_CXX_FLAGS. · 701fa326
      2015-12-02  Matthias Klose  <doko@ubuntu.com>
      
              * configure.ac: Move AM_ENABLE_MULTILIB before
              GCC_LIBSTDCXX_RAW_CXX_FLAGS.
              * configure: Regenerate.
      
      From-SVN: r231193
      Matthias Klose committed
    • nvptx.c (enum nvptx_shuffle_kind): New. · 59263259
      	* config/nvptx/nvptx.c (enum nvptx_shuffle_kind): New.  Absorb
      	SHUFFLE defines.
      	(nvptx_gen_shuffle, nvptx_print_operand, nvptx_expand_shuffle): Adjust.
      
      From-SVN: r231192
      Nathan Sidwell committed
    • fix invalid bounds on array refs · 2e733703
      While enabling graphite in -O3 we found a Fortran testcase that fails
      because the max of the type domain is -1.  We used to add that as a constraint
      to the elements accessed by the array, leading to a unfeasible constraint:
      0 <= i <= -1.  Having that constraint, drops the data reference as that says
      that there are no elements accessed in the array.
      
      	* graphite-dependences.c (scop_get_reads): Add extra dumps.
      	(scop_get_must_writes): Same.
      	(scop_get_may_writes): Same.
      	(compute_deps): Same.
      	* graphite-sese-to-poly.c (bounds_are_valid): New.
      	(pdr_add_data_dimensions): Call bounds_are_valid.
      
      	* gfortran.dg/graphite/run-id-3.f90: New.
      
      Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
      
      From-SVN: r231191
      Aditya Kumar committed
    • rename flag_loop_optimize_isl to flag_loop_nest_optimize · 84c36240
      	* common.opt (flag_loop_optimize_isl): Renamed flag_loop_nest_optimize.
      	* graphite-poly.c (apply_poly_transforms): Same.
      	* graphite.c (gate_graphite_transforms): Same.
      	* toplev.c (process_options): Same.
      
      Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
      
      From-SVN: r231190
      Aditya Kumar committed
    • re PR c++/68290 (g++.dg/concepts/auto1.C FAILs) · f4886d80
      	PR c++/68290
      	* constraint.cc (make_constrained_auto): Move to...
      	* pt.c (make_auto_1): Add set_canonical parameter and set
      	TYPE_CANONICAL on the type only if it is true.
      	(make_decltype_auto): Adjust call to make_auto_1.
      	(make_auto): Likewise.
      	(splice_late_return_type): Likewise.
      	(make_constrained_auto): ...here.  Call make_auto_1 instead of
      	make_auto and pass false.  Set TYPE_CANONICAL directly.
      
      From-SVN: r231189
      Eric Botcazou committed
    • mips.c (mips_emit_probe_stack_range): Adjust. · f74e6550
      	* config/mips/mips.c (mips_emit_probe_stack_range): Adjust.
      	(mips_output_probe_stack_range): Rotate the loop and simplify.
      
      From-SVN: r231188
      Eric Botcazou committed
    • aarch64.md: New pattern. · 202d0c11
      2015-12-02  David Sherwood  <david.sherwood@arm.com>
      
          gcc/
      	* config/aarch64/aarch64.md: New pattern.
      	* config/aarch64/aarch64-simd.md: Likewise.
      	* config/aarch64/iterators.md: New unspecs, iterators.
          gcc/testsuite
      	* gcc.target/aarch64/fmaxmin.c: New test.
      
      From-SVN: r231187
      David Sherwood committed
    • Track indirect calls for call site information in debug info · f2834b5d
      gcc/ChangeLog:
      
      	* dwarf2out.c (dwar2out_var_location): In addition to notes,
      	process indirect calls whose target is compile-time known.
      	Enhance pattern matching to get the SYMBOL_REF they embed.
      	(gen_subprogram_die): Handle such calls.
      	* final.c (final_scan_insn): For call instructions, invoke the
      	var_location debug hook only after the call has been emitted.
      
      From-SVN: r231185
      Pierre-Marie de Rodat committed
    • Some OpenACC host_data cleanup · ff7a55bf
      	gcc/c/
      	* c-parser.c (c_parser_omp_clause_name)
      	(c_parser_oacc_all_clauses): Alphabetical sorting.
      	gcc/cp/
      	* parser.c (cp_parser_omp_clause_name)
      	(cp_parser_oacc_all_clauses): Alphabetical sorting.
      	* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_USE_DEVICE.
      	gcc/testsuite/
      	* c-c++-common/goacc/host_data-5.c: New file.
      	* c-c++-common/goacc/host_data-6.c: Likewise.
      	* gfortran.dg/goacc/coarray.f95: XFAIL.
      	* gfortran.dg/goacc/coarray_2.f90: Adjust dg-excess-errors
      	directive.
      	* gfortran.dg/goacc/host_data-tree.f95: Remove dg-prune-output
      	directive.
      	libgomp/
      	* testsuite/libgomp.oacc-c-c++-common/host_data-2.c: Restrict to
      	target openacc_nvidia_accel_selected.
      	* testsuite/libgomp.oacc-c-c++-common/host_data-4.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/host_data-5.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/host_data-3.c: Remove file.
      	* testsuite/libgomp.oacc-c-c++-common/host_data-6.c: Remove file.
      
      Co-Authored-By: James Norris <James_Norris@mentor.com>
      Co-Authored-By: Julian Brown <julian@codesourcery.com>
      
      From-SVN: r231184
      Thomas Schwinge committed