1. 02 May, 2017 40 commits
    • * 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
    • [multiple changes] · 62d40a7a
      2017-05-02  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* atree.h (Flag290): Add missing terminating parenthesis.
      	* einfo.adb (Is_Class_Wide_Clone): Use Flag290.
      	(Set_Is_Class_Wide_Clone): Likewise.
      	* einfo.ads (Is_Class_Wide_Clone): Likewise.
      
      2017-05-02  Gary Dismukes  <dismukes@adacore.com>
      
      	* checks.ads (Null_Exclusion_Static_Checks): Add Boolean
      	parameter Array_Comp to indicate the case of an array object
      	with null-excluding components.
      	* checks.adb (Null_Exclusion_Static_Checks):
      	Call Compile_Time_Constraint_Error instead of
      	Apply_Compile_Time_Constraint_Error in the component case. Also
      	call that when Array_Comp is True, with an appropriate warning for
      	the array component case. Only create an explicit initialization
      	by null in the case of an object of a null-excluding access type
      	(and no longer do that in the component case).
      	* sem_ch3.adb (Check_Component): Add a Boolean parameter
      	Array_Comp defaulted to False.	Pass Empty for the Comp
      	actual when calling Null_Exclusion_Static_Checks in the case
      	where Comp_Decl matches Object_Decl, because we don't have a
      	component in that case. In the case of an object or component
      	of an array type, pass True for Array_Comp on the recursive call
      	to Check_Component.
      
      From-SVN: r247474
      Arnaud Charlet committed
    • [multiple changes] · d86fb53f
      2017-05-02  Bob Duff  <duff@adacore.com>
      
      	* s-taprop-linux.adb (Prio_To_Linux_Prio): New function to correctly
      	compute the linux priority from the Ada priority. Call this everywhere
      	required. In particular, the previous version was not doing this
      	computation when setting the ceiling priority in various places. It
      	was just converting to C.int, which results in a ceiling that is off
      	by 1.
      
      2017-05-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb: Comment predicate inheritance.
      
      From-SVN: r247473
      Arnaud Charlet committed