1. 02 May, 2017 40 commits
    • ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff errors when… · 0e8d6eb7
      ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff errors when comparing specialized and unspecialized times.
      
      
      	* ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
      	errors when comparing specialized and unspecialized times.
      
      From-SVN: r247528
      Jan Hubicka committed
    • pt.c (is_auto_or_concept): Remove. · c3b73151
      2017-05-02  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* pt.c (is_auto_or_concept): Remove.
      	(type_uses_auto_or_concept): Remove, unused.
      	(find_parameter_packs_r, extract_autos_r, is_auto_r): Adjust.
      	* parser.c (tree_type_is_auto_or_concept): Remove, unused.
      	* cp-tree.h (is_auto_or_concept): Remove.
      
      From-SVN: r247526
      Paolo Carlini committed
    • * es.po: Update. · 459d2f5a
      From-SVN: r247524
      Joseph Myers committed
    • Support fix-it hints that add new lines · ad53f123
      Previously fix-it hints couldn't contain newlines.  This is
      due to the need to print something user-readable for them
      within diagnostic-show-locus, and for handling them within
      edit-context for printing diffs and regenerating content.
      
      This patch enables limited support for fix-it hints with newlines,
      for suggesting adding new lines.
      Such a fix-it hint must have exactly one newline character, at the
      end of the content.  It must be an insertion at the beginning of
      a line (so that e.g. fix-its that split a pre-existing line are
      still rejected).
      
      They are printed by diagnostic-show-locus with a '+' in the
      left-hand margin, like this:
      
      test.c:42:4: note: suggest adding 'break;' here
      +      break;
           case 'b':
           ^~~~~~~~~
      
      and the printer injects "spans" if the insertion location is not
      near the primary range of the diagnostic e.g.:
      
      test.c:4:2: note: unrecognized 'putchar'; suggest including '<stdio.h>'
      test.c:1:1:
      +#include <stdio.h>
      
      test.c:4:2:
        putchar (ch);
        ^~~~~~~
      
      gcc/ChangeLog:
      	* diagnostic-show-locus.c
      	(layout::should_print_annotation_line_p): Make private.
      	(layout::print_annotation_line): Make private.
      	(layout::annotation_line_showed_range_p): Make private.
      	(layout::show_ruler): Make private.
      	(layout::print_source_line): Make private.  Pass in line and
      	line_width, rather than calling location_get_source_line.  Drop
      	returned value.
      	(layout::print_leading_fixits): New method.
      	(layout::print_any_fixits): Rename to...
      	(layout::print_trailing_fixits): ...this, and make private.
      	Don't print newline fixits.
      	(diagnostic_show_locus): Move logic for printing one row into...
      	(layout::print_line): ...this new function.  Move the
      	location_get_source_line call and error-handling from
      	print_source_line to here.  Call print_leading_fixits, and rename
      	print_any_fixits to print_trailing_fixits.
      	(selftest::test_fixit_insert_containing_newline): Update now that
      	newlines are partially supported.
      	(selftest::test_fixit_insert_containing_newline_2): New test.
      	(selftest::test_fixit_replace_containing_newline): Update comments.
      	(selftest::diagnostic_show_locus_c_tests): Call the new test.
      	* edit-context.c (class added_line): New class.
      	(class edited_line): Describe newline handling in comment.
      	(edited_line::actually_edited_p): New method.
      	(edited_line::print_content): Delete redundant decl.
      	(edited_line::m_predecessors): New field.
      	(edited_file::print_content): Call edited_line::print_content.
      	(edited_file::print_diff): Update to support newlines.
      	(edited_file::print_diff_hunk): Likewise.
      	(edited_file::print_run_of_changed_lines): New function.
      	(edited_file::print_diff_line): Convert to...
      	(print_diff_line): ...this.
      	(edited_file::get_effective_line_count): New function.
      	(edited_line::edited_line): Initialize new field m_predecessors.
      	(edited_line::~edited_line): Clean up m_predecessors.
      	(edited_line::apply_fixit): Handle newlines.
      	(edited_line::get_effective_line_count): New function.
      	(edited_line::print_content): New function.
      	(edited_line::print_diff_lines): New function.
      	(selftest::test_applying_fixits_insert_containing_newline): New
      	test.
      	(selftest::test_applying_fixits_replace_containing_newline): New
      	test.
      	(selftest::insert_line): New function.
      	(selftest::test_applying_fixits_multiple_lines): Add example of
      	inserting a line.
      	(selftest::edit_context_c_tests): Call the new tests.
      
      gcc/testsuite/ChangeLog:
      	* gcc.dg/plugin/diagnostic-test-show-locus-bw.c
      	(test_fixit_insert_newline): New function.
      	* gcc.dg/plugin/diagnostic-test-show-locus-color.c
      	(test_fixit_insert_newline): New function.
      	* gcc.dg/plugin/diagnostic-test-show-locus-generate-patch.c
      	(test_fixit_insert_newline): New function.
      	* gcc.dg/plugin/diagnostic-test-show-locus-parseable-fixits.c
      	(test_fixit_insert_newline): New function.
      	* gcc.dg/plugin/diagnostic_plugin_test_show_locus.c
      	(test_show_locus): Handle test_fixit_insert_newline.
      
      libcpp/ChangeLog:
      	* include/line-map.h (class rich_location): Update description of
      	newline handling.
      	(class fixit_hint): Likewise.
      	(fixit_hint::ends_with_newline_p): New decl.
      	* line-map.c (rich_location::maybe_add_fixit): Support newlines
      	in fix-it hints that are insertions of single lines at the start
      	of a line.  Don't consolidate into such fix-it hints.
      	(fixit_hint::ends_with_newline_p): New method.
      
      From-SVN: r247522
      David Malcolm committed
    • * fr.po: Update. · 19576ba7
      From-SVN: r247520
      Joseph Myers committed
    • tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete parameter cand. · 13fdeaaf
      	* tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
      	parameter cand.  Update dump information.
      	(get_computation_cost): Update uses.
      
      From-SVN: r247519
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (get_computation_aff_1): New. · db61fc7a
      	* tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
      	(get_computation_aff): Reorder parameters.  Use get_computation_aff_1.
      	(get_computation_at, rewrite_use_address): Update use of
      	get_computation_aff.
      
      From-SVN: r247518
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters. · c7da0e81
      	* tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
      	(get_computation): Delete.
      	(get_computation_cost): Implement like get_computation_cost_at.
      	Use get_computation_at.
      	(get_computation_cost_at): Delete.
      	(rewrite_use_nonlinear_expr): Use get_computation_at.
      	(rewrite_use_compare, remove_unused_ivs): Ditto.
      
      From-SVN: r247517
      Bin Cheng committed
    • * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor. · d6176f72
      From-SVN: r247516
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs. · 1136cae4
      	* tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
      	(ivopts_global_cost_for_size): Rename parameter and update uses.
      	(iv_ca_recount_cost): Update uses.
      	(iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
      	candidates seperately in n_invs and n_cands.
      	(iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
      
      From-SVN: r247515
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (struct walk_tree_data): New. · 1c52c69f
      	* tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
      	(find_inv_vars_cb): New.
      	(find_depends): Renamed to ...
      	(find_inv_vars): ... this.
      	(add_candidate_1, force_var_cost): Call find_inv_vars.
      	(split_address_cost, determine_group_iv_cost_cond): Ditto.
      
      From-SVN: r247514
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to inv_vars. · 0ca91c77
      	* tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
      	inv_vars.  Add inv_exprs.
      	(struct iv_cand): Rename depends_on to inv_vars.
      	(struct ivopts_data): Rename max_inv_id/n_invariant_uses to
      	max_inv_var_id/n_inv_var_uses.  Move max_inv_expr_id around.
      	Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
      	(dump_cand): Dump inv_vars.
      	(tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
      	(record_invariant, find_depends, add_candidate_1): Ditto.
      	(set_group_iv_cost, force_var_cost): Ditto.
      	(split_address_cost, ptr_difference_cost, difference_cost): Ditto.
      	(get_computation_cost_at, get_computation_cost): Ditto.
      	(determine_group_iv_cost_generic): Ditto.
      	(determine_group_iv_cost_address): Ditto.
      	(determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
      	(determine_group_iv_costs): Ditto.
      	(iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
      	(iv_ca_set_remove_invariants): Renamed to ...
      	(iv_ca_set_remove_invs): ... this.  Support inv_vars and inv_exprs.
      	(iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
      	(iv_ca_set_add_invariants):  Renamed to ...
      	(iv_ca_set_add_invs): ... this.  Support inv_vars and inv_exprs.
      	(iv_ca_set_cp): Use iv_ca_set_add_invs.
      	(iv_ca_has_deps): Support inv_vars and inv_exprs.
      	(iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
      	(create_new_ivs): Remove useless dump.
      
      	gcc/testsuite
      	* g++.dg/tree-ssa/ivopts-3.C: Adjust test string.
      
      From-SVN: r247512
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo iv_cand code. · c1662028
      	* tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
      	iv_cand code.
      	(determine_group_iv_cost_cond, determine_iv_cost): Ditto.
      	(iv_ca_set_no_cp, create_new_iv): Ditto.
      
      From-SVN: r247510
      Bin Cheng committed
    • * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes. · 53685896
      From-SVN: r247509
      Bin Cheng committed
    • tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of function tree_check2. · 27c72a9b
      2017-05-02  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
      
      	* tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
      	function tree_check2.
      
      From-SVN: r247508
      Jeff Law committed
    • Fix documentation and a ctor in gcov.c · 4e8bfd79
      2017-05-02  Martin Liska  <mliska@suse.cz>
      
      	* doc/gcov.texi: Add missing preposition.
      	* gcov.c (function_info::function_info): Properly fill up
      	all member variables.
      
      From-SVN: r247507
      Martin Liska committed
    • expr.c (expand_expr_real_2): Re-cost if previous costs are the same. · 22677ff0
      2017-04-26  Tamar Christina  <tamar.christina@arm.com>
      
      	* expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
      
      From-SVN: r247505
      Tamar Christina committed
    • simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case. · cc5b8f3d
      gcc/
      2017-04-27  Tamar Christina  <tamar.christina@arm.com>
      
      	* simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
      
      gcc/testsuite/
      2017-04-27  Tamar Christina  <tamar.christina@arm.com>
      
      	* gcc.dg/lsr-div1.c: New testcase.
      
      From-SVN: r247504
      Tamar Christina committed
    • Make right PR. · c8429337
      From-SVN: r247503
      Martin Liska committed
    • re PR bootstrap/69506 (check-in 232454 seems to cause problems with cygwin builds) · 8a20a3c7
      2017-05-02  Hugo Beauzée-Luyssen <hugo@beauzee.fr>
      
      	PR libstdc++/69506
      	* config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
      
      From-SVN: r247502
      Hugo Beauzée-Luyssen committed
    • Remove LTO_STREAMER_DEBUG (PR lto/79489). · c1a2a0b8
      2017-05-02  Martin Liska  <mliska@suse.cz>
      
      	PR lto/79489.
      	* lto-streamer-in.c (lto_read_tree_1): Remove
      	LTO_STREAMER_DEBUG.
      	* lto-streamer.c (struct tree_hash_entry): Likewise.
      	(struct tree_entry_hasher): Likewise.
      	(tree_entry_hasher::hash): Likewise.
      	(tree_entry_hasher::equal): Likewise.
      	(lto_streamer_init): Likewise.
      	(lto_orig_address_map): Likewise.
      	(lto_orig_address_get): Likewise.
      	(lto_orig_address_remove): Likewise.
      	* lto-streamer.h: Likewise.
      	* tree-streamer-in.c (streamer_alloc_tree): Likewise.
      	* tree-streamer-out.c (streamer_write_tree_header): Likewise.
      
      From-SVN: r247501
      Martin Liska committed
    • * config/i386/avx512fintrin.h (_mm_mask_add_round_sd) · 1853f5c7
      	(_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
      	(mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
      	(mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
      	(mm_maskz_sub_round_ss, _mm_mask_add_sd)
      	(mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
      	(mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
      	(mm_maskz_sub_ss): New intrinsics.
      	* config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
      	(V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
      	* config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
      	(__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
      	(__builtin_ia32_subss_mask_round): New builtins.
      	* config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
      	(V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
      	* config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
      	Renamed to ...
      	(<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
      	(v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
      	Changed to ...
      	(v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
      	... this.
      
      testsuite/ChangeLog:
      
      	* gcc.target/i386/avx512f-vaddsd-1.c (_mm_mask_add_sd)
      	(_mm_maskz_add_sd, _mm_mask_add_round_sd)
      	(_mm_maskz_add_round_sd): Test new intrinsics.
      	* gcc.target/i386/avx512f-vaddsd-2.c: New.
      	* gcc.target/i386/avx512f-vaddss-1.c (_mm_mask_add_ss)
      	(_mm_maskz_add_ss, _mm_mask_add_round_ss)
      	(_mm_maskz_add_round_ss): Test new intrinsics.
      	* gcc.target/i386/avx512f-vaddss-2.c: New.
      	* gcc.target/i386/avx512f-vsubsd-1.c (_mm_mask_sub_sd)
      	(_mm_maskz_sub_sd, _mm_mask_sub_round_sd)
      	(_mm_maskz_sub_round_sd): Test new intrinsics.
      	* gcc.target/i386/avx512f-vsubsd-2.c: New.
      	* gcc.target/i386/avx512f-vsubss-1.c (_mm_mask_sub_ss)
      	(_mm_maskz_sub_ss, _mm_mask_sub_round_ss)
      	(_mm_maskz_sub_round_ss): Test new intrinsics.
      	* gcc.target/i386/avx512f-vsubss-2.c: New.
      	* gcc.target/i386/avx-1.c (__builtin_ia32_addsd_mask_round)
      	(__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
      	(__builtin_ia32_subss_mask_round): Test new builtins.
      	* gcc.target/i386/sse-13.c: Ditto.
      	* gcc.target/i386/sse-23.c: Ditto.
      	* gcc.target/i386/sse-14.c (_mm_maskz_add_round_sd)
      	(_mm_maskz_add_round_ss, _mm_maskz_sub_round_sd)
      	(_mm_maskz_sub_round_ss, _mm_mask_add_round_sd)
      	(_mm_mask_add_round_ss, _mm_mask_sub_round_sd)
      	(_mm_mask_sub_round_ss): Test new intrinsics.
      	* gcc.target/i386/testround-1.c: Ditto.
      
      From-SVN: r247498
      Sebastian Peryt committed
    • [PR 78687] Set SRA grp_write lazily · 2bba7541
      2017-05-02  Martin Jambor  <mjambor@suse.cz>
      
      	PR tree-optimization/78687
      	* tree-sra.c (access): New field parent.
      	(process_subtree_disqualification): New function.
      	(disqualify_candidate): Call it.
      	(build_accesses_from_assign): Reset write flag if creating an
      	assighnment link.
      	(build_access_subtree): Fill in parent field and also prpagate
      	down grp_write flag.
      	(create_artificial_child_access): New parameter set_grp_write, set
      	grp_write to its value.
      	(propagate_subaccesses_across_link): Also propagate grp_write flag
      	values.
      	(propagate_all_subaccesses): Push the closest parent back to work
      	queue if add_access_to_work_queue returned true.
      
      testsuite/
      	* g++.dg/tree-ssa/pr78687.C: New test.
      
      From-SVN: r247497
      Martin Jambor committed
    • common.opt (fstrict-overflow): Alias negative to fwrapv. · 2bf54d93
      2017-05-02  Richard Biener  <rguenther@suse.de>
      
      	* common.opt (fstrict-overflow): Alias negative to fwrapv.
      	* doc/invoke.texi (fstrict-overflow): Remove all traces of
      	-fstrict-overflow documentation.
      	* tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
      	(POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
      	flag_strict_overflow.
      	* ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
      	* lto-opts.c (lto_write_options): Do not stream it.
      	* lto-wrapper.c (merge_and_complain): Do not handle it.
      	* opts.c (default_options_table): Do not set -fstrict-overflow.
      	(finish_options): Likewise do not clear it when sanitizing.
      	* simplify-rtx.c (simplify_const_relational_operation): Do not
      	test flag_strict_overflow.
      
      	ada/
      	* gcc-interface/misc.c (gnat_post_options): Do not set
      	-fstrict-overflow.
      
      	* c-c++-common/Wlogical-op-1.c: Add -fwrapv to restore previous
      	behavior.
      	* gcc.target/i386/pr46253.c: Make i unsigned to avoid warning.
      
      From-SVN: r247495
      Richard Biener committed
    • * gennews (files): Add files for GCC 7. · 03dc1f5f
      From-SVN: r247491
      Jakub Jelinek committed
    • alpha.md (*add<mode>3_ieee): Merge to add<mode>3 using enabled attribute. · e7c54c8e
      	* config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
      	using enabled attribute.
      	(*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
      	(*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
      	(*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
      	(*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
      	(*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
      	(*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
      	(*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
      	(*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
      	(*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
      	(*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
      
      From-SVN: r247490
      Uros Bizjak committed
    • i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG. · 0b1053b2
      	* config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
      
      From-SVN: r247489
      Uros Bizjak committed
    • re PR tree-optimization/80591 (AArch64 kernel miscompilation starting with r246809) · aee63acc
      2017-05-02  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/80591
      	Revert
      	2017-04-10  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-structalias.c (find_func_aliases): Properly handle
      	asm inputs.
      
      	* gcc.dg/torture/pr80591.c: New testcase.
      
      From-SVN: r247488
      Richard Biener committed
    • re PR tree-optimization/80549 (wrong code at -O2 and -O3 in both 32-bit and… · e7d70c6c
      re PR tree-optimization/80549 (wrong code at -O2 and -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu (executable does not terminate))
      
      2017-05-02  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/80549
      	* tree-cfgcleanup.c (mfb_keep_latches): New helper.
      	(cleanup_tree_cfg_noloop): Create forwarders to known loop
      	headers if they do not have a preheader.
      
      	* gcc.dg/torture/pr80549.c: New testcase.
      
      From-SVN: r247486
      Richard Biener committed
    • Fix 2 typos in documentation (PR other/80589). · 51956afe
      2017-05-02  Martin Liska  <mliska@suse.cz>
      
      	PR other/80589
      	* common.opt: Fix typo.
      	* doc/invoke.texi: Likewise.
      
      From-SVN: r247485
      Martin Liska committed
    • trans.c (assoc_to_constructor): Make sure Corresponding_Discriminant is only… · 4ec7c4ec
      trans.c (assoc_to_constructor): Make sure Corresponding_Discriminant is only called on discriminants.
      
      2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* gcc-interface/trans.c (assoc_to_constructor): Make sure
      	Corresponding_Discriminant is only called on discriminants.
      	Skip the saving of the result only for them.
      	(gnat_to_gnu) <N_Selected_Component>: Likewise.
      	<N_Unchecked_Type_Conversion>: Translate the result type first.
      	(gigi): Set TREE_NOTHROW on Begin_Handler.
      	(stmt_list_cannot_raise_p): New predicate.
      	(Exception_Handler_to_gnu_gcc): Emit a simple final call instead of
      	a cleanup if the statements of the handler cannot raise.
      	(process_freeze_entity): Use Is_Record_Type.
      	(process_type): Likewise.
      
      From-SVN: r247484
      Eric Botcazou committed
    • Fix broken pr78138.c for avr · 52e0a9f7
      The declaration for memcpy had the size parameter declared as 
      unsigned long. For avr, __SIZE_TYPE__ is unsigned int, and 
      this caused a builtin-declaration-mismatch warning, resulting
      in a couple of FAILs.
      
      Fixed by typedef'ing __SIZE_TYPE__ to size_t and using size_t as the
      type for memcpy's third parameter.
      
      From-SVN: r247483
      Senthil Kumar Selvaraj committed
    • [multiple changes] · 05dbb83f
      2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* einfo.ads (Corresponding_Record_Component): New alias
      	for Node21 used for E_Component and E_Discriminant.
      	* einfo.adb (Corresponding_Record_Component): New function.
      	(Set_Corresponding_Record_Component): New procedure.
      	(Write_Field21_Name): Handle Corresponding_Record_Component.
      	* sem_ch3.adb (Inherit_Component): Set
      	Corresponding_Record_Component for every component in
      	the untagged case.  Clear it afterwards for non-girder
      	discriminants.
      	* gcc-interface/decl.c (gnat_to_gnu_entity)
      	<E_Record_Type>: For a derived untagged type with discriminants
      	and constraints, apply the constraints to the layout of the
      	parent type to deduce the layout.
      	(field_is_aliased): Delete.
      	(components_to_record): Test DECL_ALIASED_P directly.
      	(annotate_rep): Check that fields are present except for
      	an extension.
      	(create_field_decl_from): Add DEBUG_INFO_P
      	parameter and pass it in recursive and other calls.  Add guard
      	for the manual CSE on the size.
      	(is_stored_discriminant): New predicate.
      	(copy_and_substitute_in_layout): Consider only
      	stored discriminants and check that original fields are present
      	in the old type.  Deal with derived types.  Adjust call to
      	create_variant_part_from.
      
      2017-05-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch6.adb (Expand_Call_Helper): When locating the
      	accessibility entity created for an access parameter, handle
      	properly a reference to a formal of an enclosing subprogram. if
      	the reference appears in an inherited class-wide condition, it
      	is the rewriting of the reference in the ancestor expression,
      	but the accessibility entity must be that of the current formal.
      
      2017-05-02  Javier Miranda  <miranda@adacore.com>
      
      	* exp_ch4.adb (Expand_Non_Binary_Modular_Op): New subprogram.
      	(Expand_N_Op_Add, Expand_N_Op_Divide, Expand_N_Op_Minus,
      	Expand_N_Op_Multiply, Expand_N_Op_Or, Expand_N_Op_Subtract):
      	Call Expand_Non_Binary_Modular_Op.
      
      From-SVN: r247482
      Arnaud Charlet committed
    • sem_ch3.adb (Build_Derived_Private_Type): If the parent type has discriminants... · f934fd02
      2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* sem_ch3.adb (Build_Derived_Private_Type): If the parent type
      	has discriminants, do not override the Stored_Constraint list of
      	the full view of the derived type with that of the derived type.
      
      From-SVN: r247481
      Eric Botcazou committed
    • [multiple changes] · d6fd1f07
      2017-05-02  Bob Duff  <duff@adacore.com>
      
      	* sem_attr.adb (Attribute_Enum_Rep): Disallow T'Enum_Rep.
      
      2017-05-02  Vasiliy Fofanov  <fofanov@adacore.com>
      
      	* s-os_lib.ads: Minor typo fix.
      
      2017-05-02  Vasiliy Fofanov  <fofanov@adacore.com>
      
      	* gnatls.adb: Merge and refactor code from Prj.Env and remove
      	this deprecated dependency.
      
      2017-05-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_util.ads: minor comment addition.
      
      2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* sem_ch3.adb (Build_Derived_Record_Type): Fix a few typos and
      	pastos in part #3 of the head comment.
      
      2017-05-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch3.adb (Freeze_Type): Do not generate an invariant
      	procedure body for a local (sub)type declaration within a
      	predicate function. Invariant checks do not apply to these, and
      	the expansion of the procedure will happen in the wrong scope,
      	leading to misplaced freeze nodes.
      
      2017-05-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_util.adb (Insert_Library_Level_Action): Use proper scope
      	to analyze generated actions.  If the main unit is a body,
      	the required scope is that of the corresponding unit declaration.
      
      2017-05-02  Arnaud Charlet  <charlet@adacore.com>
      
      	* einfo.adb (Declaration_Node): flip branches of
      	an IF statement to avoid repeated negations in its condition;
      	no change in semantics, only to improve readability.
      
      From-SVN: r247480
      Arnaud Charlet committed
    • [multiple changes] · 2d249f52
      2017-05-02  Arnaud Charlet  <charlet@adacore.com>
      
      	* sem_case.adb: Remove extra spaces in parameter declarations.
      
      2017-05-02  Justin Squirek  <squirek@adacore.com>
      
      	* usage.adb: Replace space with hyphen ("run time" -> "run-time")
      	in usage line for new -gnatwE switch.
      
      2017-05-02  Claire Dross  <dross@adacore.com>
      
      	* a-cofuve.ads (Remove): Remove unnecessary
      	conditions in precondition.
      
      2017-05-02  Vasiliy Fofanov  <fofanov@adacore.com>
      
      	* a-stream.ads, exp_imgv.adb, sem_ch10.adb,
      	sem_attr.adb, s-finmas.ads, osint.adb: Minor typo fix.
      
      From-SVN: r247479
      Arnaud Charlet committed
    • [multiple changes] · b55993b3
      2017-05-02  Justin Squirek  <squirek@adacore.com>
      
      	* sem_ch4.adb (Analyze_Case_Expression): Add check for valid
      	alternative expression.
      	* sem_res.adb (Resolve_Case_Expression): Ditto.
      
      2017-05-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_disp.adb (Set_All_DT_Position, In_Predef_Prim_DT):
      	Refine predicate for the case where the primitive operation
      	is a renaming of equality.  An overriding operation that is
      	a user-defined renaming of predefined equality inherits its
      	slot from the overridden operation. Otherwise it is treated
      	as a predefined op and occupies the same predefined slot as
      	equality. A call to it is transformed into a call to its alias,
      	which is the predefined equality. A dispatching call thus uses
      	the proper slot if operation is further inherited and called
      	with class-wide arguments.
      
      2017-05-02  Justin Squirek  <squirek@adacore.com>
      
      	* errout.adb (Set_Msg_Text): Add a case to switch the message
      	type when the character '[' is detected signifying a warning
      	about a run-time exception.
      	* opt.ads Add a new Warning_Mode value for new switch
      	* switch-b.adb (Scan_Binder_Switches): Add case for the binder
      	to handle new warning mode
      	* usage.adb (Usage): Add usage entry for -gnatwE
      	* warnsw.adb (Set_Warning_Switch): Add case for the new switch
      
      2017-05-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_prag.adb (Process_Conversion): Reject an intrinsic operator
      	declaration that operates on some fixed point type.
      
      2017-05-02  Justin Squirek  <squirek@adacore.com>
      
      	* a-crbtgo.adb, s-taasde.adb: Remove unused use-type clauses.
      
      From-SVN: r247478
      Arnaud Charlet committed
    • [multiple changes] · a6354842
      2017-05-02  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch6.adb (Analyze_Null_Procedure): Revert previous change.
      
      2017-05-02  Justin Squirek  <squirek@adacore.com>
      
      	* sem_ch4.adb (Analyze_Case_Expression): Add check for valid
      	expression (Analyze_If_Expression): Add check for valid condition
      	* sem_eval.adb (Eval_Case_Expression): Add check for error posted
      	on case-expression
      	* sem_res.adb (Resolve_If_Expression): Add check for valid
      	condition and then-expression.
      
      From-SVN: r247477
      Arnaud Charlet committed
    • Minor reformatting. · 97ac2d62
      From-SVN: r247476
      Arnaud Charlet committed
    • [multiple changes] · 1804faa4
      2017-05-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch3.adb (Build_Initialization_Call): Generate a null
      	statement if the initialization call is a null procedure, as
      	can happen with a controlled type with no explicit Initialize
      	procedure, or an array of such.
      	* exp_ch7.adb (Process_Object_Declaration): For a type with
      	controlled components that has a trivial Initialize procedure,
      	insert declaration for finalization counter after object
      	declaration itself.
      	(Make_Deep_Array_Body, Build_Initialize_statements): Do not create
      	finalization block and attendant declarations if component has
      	a trivial Initialize procedure.
      	(Make_Init_Call): Do not generate a call if controlled type has
      	a trivial Initialize procedure.
      
      2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* g-forstr.ads (Data): Move Format component last.
      	* g-forstr.adb ("+"): Adjust for above change.
      	* g-rewdat.ads (Buffer): Move Buffer, Current, Pattern and Value last.
      	* g-sechas.ads (Context): Move Key last.
      	* g-socket.ads (Service_Entry_Type): Move Aliases last.
      	* s-fileio.adb (Temp_File_Record): Move Name last.
      	* s-regexp.adb (Regexp_Value): Move Case_Sensitive last.
      	* xr_tabls.ads (Project_File): Move Src_Dir and Obj_Dir last.
      
      2017-05-02  Jerome Lambourg  <lambourg@adacore.com>
      
      	* bindusg.adb, bindgen.adb, gnatbind.adb, opt.ads: Remove the -nognarl
      	switch introduced recently. finally not needed.
      
      2017-05-02  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch6.adb (Analyze_Null_Procedure): Set the
      	Corresponding_Body link for a null procedure declaration.
      
      From-SVN: r247475
      Arnaud Charlet committed