1. 28 Apr, 2017 25 commits
    • [multiple changes] · 85be939e
      2017-04-28  Bob Duff  <duff@adacore.com>
      
      	* sem_util.ads, sem_util.adb (Might_Raise): New function
      	that replaces Is_Exception_Safe, but has the opposite
      	sense. Is_Exception_Safe was missing various cases -- calls inside
      	a pragma Debug, calls inside an 'if' or assignment statement,
      	etc. Might_Raise now walks the entire subtree looking for things
      	that can raise.
      	* exp_ch9.adb (Is_Exception_Safe): Remove.
      	(Build_Protected_Subprogram_Body): Replace call to
      	Is_Exception_Safe with "not Might_Raise". Misc cleanup (use
      	constants where possible).
      	* exp_ch7.adb: Rename Is_Protected_Body -->
      	Is_Protected_Subp_Body. A protected_body is something different
      	in the grammar.
      
      2017-04-28  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* inline.adb (Expand_Inlined_Call): Initialize Targ1 variable.
      	* par-ch3.adb (P_Component_Items): Initialize Decl_Node variable.
      	(P_Discrete_Choice_List): Initialize Expr_Node variable.
      	* par-ch9.adb (P_Task): Initialize Aspect_Sloc variable.
      	(P_Protected): Likewise.
      	* sem_case.adb (Check_Duplicates):
      	Add pragma Warnings on variable.
      	* sem_ch12.adb (Preanalyze_Actuals): Initialize Vis variable.
      	* sem_ch4.adb (List_Operand_Interps):  Add pragma Warnings on variable.
      	* sem_ch5.adb (Analyze_Assignment): Initialize Save_Full_Analysis.
      	(Analyze_Exit_Statement): Initialize Scope_Id variable.
      	(Analyze_Iterator_Specification): Initialize Bas variable.
      	* sem_ch9.adb (Allows_Lock_Free_Implementation): Initialize
      	Error_Count (Satisfies_Lock_Free_Requirements): Likewise.
      	(Analyze_Accept_Statement): Initialize Task_Nam.
      
      2017-04-28  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* checks.adb (Install_Primitive_Elaboration_Check):
      	Do not generate an elaboration check if all checks have been
      	suppressed.
      
      2017-04-28  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch13.adb (Analyze_Aspect_Specifications, case
      	Interrupt_Handler and Attach_Handler): Generate reference
      	to protected operation to prevent spurious warnings about
      	unreferenced entities. Previous scheme failed with style checks
      	enabled.
      
      2017-04-28  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_prag.adb (Relocate_Pragmas_To_Body): A pragma Warnings
      	that follows an expression function must not be relocated to
      	the generated body, because it applies to the code that follows.
      
      From-SVN: r247387
      Arnaud Charlet committed
    • [multiple changes] · 99f8abb6
      2017-04-28  Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Test
      	Relaxed_RM_Semantics to avoid having CodePeer issue errors on
      	code that might violate the more stringent checking for 'Access
      	introduced in Ada 2005.
      
      2017-04-28  Arnaud Charlet  <charlet@adacore.com>
      
      	* a-cforse.adb: minor style fix in comment.
      
      From-SVN: r247386
      Arnaud Charlet committed
    • [multiple changes] · 1f8766d3
      2017-04-28  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body): Also
      	initialize Block_Decls variable.
      	(Expand_Entry_Barrier): Add pragma Warnings on Func_Body variable.
      	(Build_Dispatching_Requeue): Add pragma Warnings on Op variable.
      	* exp_disp.adb (Expand_Interface_Actuals): Initialize
      	Formal_DDT and Actual_DDT variables.
      	(Expand_Interface_Thunk): Initialize Iface_Formal.
      	(Make_DT): Initialize Size_Comp.
      	(Make_Select_Specific_Data_Table): Initialize Decls.
      	* exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies):
      	Also initialize more RPC_Receiver_* variables.
      	(Build_To_Any_Function): Initialize Cstr_Formal.
      	* exp_prag.adb (Expand_Pragma_Contract_Cases): Initialize Msg_Str.
      
      2017-04-28  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Freeze_Type_Refs): For an interface conversion
      	node between access types, freeze the designated type as well,
      	so that dispatch table pointers are created in the proper scope,
      	and not in the constructed body of the expression function.
      
      2017-04-28  Bob Duff  <duff@adacore.com>
      
      	* alloc.ads (Nodes_Initial): Go back to previous value. The large
      	value makes large compilations faster, but small compilations slower.
      
      2017-04-28  Arnaud Charlet  <charlet@adacore.com>
      
      	* sem_util.adb: minor typos in Is_Child_Or_Sibling.
      
      2017-04-28  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* erroutc.adb (Compilation_Errors): Do not consider info messages
      	as suitable warnings when warnings must be treated as errors.
      	* sem_ch7.adb (Analyze_Package_Specification): Do not consider
      	internally-generated packages when outputting completion
      	information.
      	* errout.adb (Output_Messages): Do not consider info messages as
      	suitable warnings when warnings must be treated as errors.
      	* errutil.adb (Finalize): Do not consider info messages as
      	suitable warnings when warnings must be treated as errors.
      
      
      2017-04-28  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* warnsw.ads: Minor fix for incorrect wording in comment.
      
      2017-04-28  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_res.adb (In_Instance_Code): New predicate in
      	Valid_Conversion, to determine whether a type conversion appears
      	as (or within) an actual for a formal object.  Type conversions
      	in instances are not rechecked in Valid_Conversion because
      	visibility changes between generic location andi instance may
      	lead to spurious errors, but conversions within an actual must be
      	fully checked, and they are not fully resolved when pre-analyzing
      	the actuals.
      
      From-SVN: r247385
      Arnaud Charlet committed
    • exp_ch6.adb (Expand_N_Extended_Return_Statement): Use New_Copy_Tree instead of… · d5fa5335
      exp_ch6.adb (Expand_N_Extended_Return_Statement): Use New_Copy_Tree instead of Relocate_Node as any subsequent copies of the...
      
      2017-04-28  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Use
      	New_Copy_Tree instead of Relocate_Node as any subsequent copies
      	of the relocated node will have mangled Parent pointers.
      	* sem_util.adb (Build_NCT_Hash_Tables): Reset both hash
      	tables used in conjunction with entity and itype replication.
      	(Visit_Entity): Rewrite the restriction on which entities
      	require duplication.  The restriction now includes all types.
      
      2017-04-28  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* a-cofuse.ads, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfinve.adb,
      	a-cfinve.ads, a-cforma.adb, a-cforma.ads, a-cofuma.adb, a-cofuma.ads,
      	a-cfhama.adb, a-cfhama.ads, a-cforse.adb: Minor reformatting and code
      	cleanups.
      
      From-SVN: r247384
      Hristian Kirtchev committed
    • exp_util.adb, [...]: Minor reformatting. · ef952fd5
      2017-04-28  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_util.adb, g-dyntab.adb, par-ch4.adb, sem_util.adb, sem_attr.adb,
      	gnat1drv.adb, exp_disp.adb, namet.adb, alloc.ads: Minor reformatting.
      
      From-SVN: r247383
      Hristian Kirtchev committed
    • Fix date. · dc99d241
      From-SVN: r247382
      Arnaud Charlet committed
    • [multiple changes] · e6326de5
      2017-04-27  Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_util.adb: Minor reformatting.
      
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch4.adb: Fix copy/pasto.
      
      From-SVN: r247381
      Arnaud Charlet committed
    • ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal. · ab38481c
      	* ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
      	(estimate_local_effects): Likewise.
      	* ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
      	edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
      	* ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
      	estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
      	do_estimate_edge_time, estimate_edge_time): Likewise.
      	* ipa-inline-analysis.c (estimate_node_size_and_time,
      	estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
      	(estimate_time_after_inlining): Remove.
      
      From-SVN: r247380
      Jan Hubicka committed
    • PR libstdc++/80553 don't allow destroying non-destructible types · b26f45f0
      	PR libstdc++/80553
      	* include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
      	assertions to ensure type is destructible.
      	(destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
      	* include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
      	Move to stl_construct.h.
      	* testsuite/20_util/specialized_algorithms/memory_management_tools/
      	destroy_neg.cc: New test.
      	* testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
      
      From-SVN: r247379
      Jonathan Wakely committed
    • Remove superfluous "" in dg-error. · 38233afd
      	* testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
      	superfluous "" in dg-error.
      
      From-SVN: r247378
      Jonathan Wakely committed
    • Enhance documentation of gcov. · e03f26cb
      2017-04-28  Martin Liska  <mliska@suse.cz>
      
      	* doc/gcov.texi: Enhance documentation of gcov.
      
      From-SVN: r247377
      Martin Liska committed
    • Sort options of gcov, gcov-dump and gcov-tool both in --help and documentation · 2f360676
      2017-04-28  Martin Liska  <mliska@suse.cz>
      
      	* doc/gcov.texi: Sort options in alphabetic order.
      	* doc/gcov-dump.texi: Likewise.
      	* doc/gcov-tool.texi: Likewise.
      	* gcov.c (print_usage): Likewise.
      	* gcov-dump.c (print_usage): Likewise.
      	* gcov-tool.c (print_merge_usage_message): Likewise.
      	(print_rewrite_usage_message): Likewise.
      	(print_overlap_usage_message): Likewise.
      
      From-SVN: r247376
      Martin Liska committed
    • Fix format_gcov to not print misleading values (PR gcov-profile/53915) · 07ea19a7
      2017-04-28  Martin Liska  <mliska@suse.cz>
      
      	PR gcov-profile/53915
      	* gcov.c (format_gcov): Print 'NAN %' when top > bottom.
      
      From-SVN: r247375
      Martin Liska committed
    • Make gcno more precise about BBs really belonging to a line (PR gcov-profile/79891). · 6e49961c
      2017-04-28  Martin Liska  <mliska@suse.cz>
      
      	PR gcov-profile/79891
      	* gcov.c (add_line_counts): Assign BBs to lines just if the BB
      	is marked by compiler as living on a line.
      	(get_cycles_count): Remove usage of the union.
      	(output_intermediate_file): Likewise.
      	(find_source): Fix GNU coding style.
      	(accumulate_line_counts): Remove old non-all block mode.
      	(output_lines): Remove usage of the union.
      	* profile.c (output_location): Include all BBs, even if
      	belonging to a same line (and file) as a previous BB.
      2017-04-28  Martin Liska  <mliska@suse.cz>
      
      	PR gcov-profile/79891
      	* gcc.misc-tests/gcov-17.c: New test.
      	* gcc.misc-tests/gcov-18.c: New test.
      
      From-SVN: r247374
      Martin Liska committed
    • Introduce new option -w which shows verbose informations. · 9b9d6370
      2017-04-28  Martin Liska  <mliska@suse.cz>
      
      	* gcov.c (process_args): Handle new argument 'w'.
      	(read_graph_file): Assign ID to BBs.
      	(output_branch_count): Display BB # if verbose flag is set.
      	(output_lines): Likewise for arcs.
      	(print_usage): Add '--verbose' option help.
      	* doc/gcov.texi: Document --verbose (-w) option.
      
      From-SVN: r247373
      Martin Liska committed
    • Simplify representation of locations of a block. · 0790260e
      2017-04-28  Martin Liska  <mliska@suse.cz>
      
      	* gcov.c (struct block_location_info): New struct.
      	(process_file): Fill up the new structure.
      	(read_graph_file): Replace usage of encoding by the newly added
      	struct.
      	(add_line_counts): Likewise.
      	(accumulate_line_counts): Remove usage of the union.
      	(function_info::function_info): New function.
      	(function_info::~function_info): Likewise.
      	(process_file): Call delete instead of release_function.
      	(release_function): Release the function.
      	(release_structures): Call delete instead of release_function.
      	(solve_flow_graph): Replace usage of num_blocks.
      	(find_exception_blocks): Likewise.
      	(output_lines): Fix GNU coding style.
      
      From-SVN: r247372
      Martin Liska committed
    • Remove .gcno file when compilation does not success (PR driver/56469). · 4ebcdc23
      2017-04-28  Martin Liska  <mliska@suse.cz>
      
      	PR driver/56469
      	* coverage.c (coverage_remove_note_file): New function.
      	* coverage.h: Declare the function.
      	* toplev.c (finalize): Clean if an error has been seen.
      
      From-SVN: r247371
      Martin Liska committed
    • gcno file: do not stream block flags (PR gcov-profile/80031). · 34769baf
      2017-04-28  Martin Liska  <mliska@suse.cz>
      
      	PR gcov-profile/80031
      	* gcov-dump.c (tag_blocks): Just print number of basic blocks.
      	* gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
      	* gcov.c (read_graph_file): Read just number of blocks.
      	* profile.c (branch_prob): Do not stream 0 flags per a basic
      	block.
      
      From-SVN: r247370
      Martin Liska committed
    • Fix indentation of gcov-dump. · 5c5059bc
      2017-04-28  Martin Liska  <mliska@suse.cz>
      
      	* gcov-dump.c (tag_*): Add new argument to declarations.
      	(dump_gcov_file): Likewise.
      	(tag_blocks): Add and use new argument depth.
      	(tag_arcs): Likewise.
      	(tag_lines): Likewise.
      	(tag_counters): Likewise.
      	(tag_summary): Likewise.
      	(dump_working_sets): Use depth to do a proper indentation.
      
      From-SVN: r247369
      Martin Liska committed
    • re PR bootstrap/80531 (RC1 bootstrap comparison failure) · 1ad784e2
      	PR bootstrap/80531
      	* cgraph.h (symtab_node::debug_symtab): No longer inline.
      	* symtab.c (symtab_node::debug_symtab): Move definition here.
      
      From-SVN: r247367
      Jakub Jelinek committed
    • lto-streamer.h (LTO_major_version): Bump to 7. · d90d82e3
      2017-04-28  Richard Biener  <rguenther@suse.de>
      
      	* lto-streamer.h (LTO_major_version): Bump to 7.
      
      From-SVN: r247365
      Richard Biener committed
    • Remove superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus) · f166beaf
      find $(find -type d -name testsuite) -type f \
           | xargs sed -ri \
             's#(dg-(error|warning|message|bogus).*) \{ target \*-\*-\* \} \}#\1 }#'
      
      2017-04-28  Tom de Vries  <tom@codesourcery.com>
      
      	* g++.dg/parse/error2.C: Remove superfluous '{ target *-*-* }' in
      	dg-(error|warning|message|bogus).
      	* g++.dg/parse/parameter-declaration-1.C: Same.
      	* g++.dg/warn/Wstrict-aliasing-float-ref-int-obj.C: Same.
      	* gcc.dg/Wpointer-sign-Wall.c: Same.
      	* gcc.dg/Wpointer-sign-pedantic.c: Same.
      	* gcc.dg/cpp/19990413-1.c: Same.
      	* gcc.dg/dg-test-1.c: Same.
      	* gcc.dg/empty-source-2.c: Same.
      	* gcc.dg/empty-source-3.c: Same.
      	* gcc.dg/format/c99-printf-1.c: Same.
      	* gcc.dg/format/c99-scanf-1.c: Same.
      	* gcc.dg/label-decl-2.c: Same.
      	* gcc.dg/m-un-2.c: Same.
      	* gcc.dg/uninit-pr20644-O0.c: Same.
      	* gfortran.dg/pr70006.f90: Same.
      	* obj-c++.dg/fsf-package-0.m: Same.
      
      	* testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: Remove
      	superfluous '{ target *-*-* }' in dg-(error|warning|message|bogus).
      
      From-SVN: r247364
      Tom de Vries committed
    • Remove superfluous ' . ' in dg-(error|warning|message|bogus) · c3125b18
      find $(find -type d -name testsuite) -type f \
           | xargs sed -ri 's#(dg-(error|warning|message|bogus).*) \. \}#\1 }#'
      
      2017-04-28  Tom de Vries  <tom@codesourcery.com>
      
      	* c-c++-common/Wimplicit-fallthrough-6.c: Remove superfluous ' . ' in
      	dg-(error|warning|message|bogus).
      	* c-c++-common/Wimplicit-fallthrough-7.c: Same.
      	* c-c++-common/cilk-plus/AN/pr61963.c: Same.
      	* c-c++-common/cilk-plus/CK/no_args_error.c: Same.
      	* c-c++-common/pr20000.c: Same.
      	* c-c++-common/pr49706.c: Same.
      	* g++.dg/ext/utf16-4.C: Same.
      	* g++.dg/parse/error2.C: Same.
      	* g++.dg/warn/Wtype-limits-Wextra.C: Same.
      	* g++.dg/warn/Wtype-limits.C: Same.
      	* g++.dg/warn/overflow-warn-1.C: Same.
      	* g++.dg/warn/overflow-warn-3.C: Same.
      	* gcc.dg/Wpointer-sign-Wall.c: Same.
      	* gcc.dg/Wpointer-sign-pedantic.c: Same.
      	* gcc.dg/Wtype-limits-Wextra.c: Same.
      	* gcc.dg/Wtype-limits.c: Same.
      	* gcc.dg/cpp/19990413-1.c: Same.
      	* gcc.dg/dg-test-1.c: Same.
      	* gcc.dg/empty-source-2.c: Same.
      	* gcc.dg/empty-source-3.c: Same.
      	* gcc.dg/label-decl-2.c: Same.
      	* gcc.dg/m-un-2.c: Same.
      	* gcc.dg/uninit-pr19430-O0.c: Same.
      	* gcc.dg/uninit-pr19430.c: Same.
      	* gcc.dg/uninit-pr20644-O0.c: Same.
      	* gcc.dg/utf16-4.c: Same.
      	* gfortran.dg/pr70006.f90: Same.
      	* obj-c++.dg/fsf-package-0.m: Same.
      
      From-SVN: r247363
      Tom de Vries committed
    • tree-vrp.c (assert_info): New struct. · 119092c1
      2017-04-28  Richard Biener  <rguenther@suse.de>
      
      	* tree-vrp.c (assert_info): New struct.
      	(add_assert_info): New helper.
      	(register_edge_assert_for_2): Refactor to add asserts to a vector
      	of assert_info.
      	(register_edge_assert_for_1): Likewise.
      	(register_edge_assert_for): Likewise.
      	(finish_register_edge_assert_for): New helper actually registering
      	asserts where live on edge.
      	(find_conditional_asserts): Adjust.
      	(find_switch_asserts): Likewise.
      	(evrp_dom_walker::try_find_new_range): Generalize.
      	(evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
      
      	* gcc.dg/tree-ssa/evrp7.c: New testcase.
      	* gcc.dg/tree-ssa/evrp8.c: Likewise.
      	* gcc.dg/tree-ssa/evrp9.c: Likewise.
      	* gcc.dg/tree-ssa/vrp35.c: Disable EVRP.
      	* gcc.dg/tree-ssa/vrp36.c: Likewise.
      	* gcc.dg/tree-ssa/pr49039.c: Likewise.
      
      From-SVN: r247362
      Richard Biener committed
    • Daily bump. · e223180e
      From-SVN: r247361
      GCC Administrator committed
  2. 27 Apr, 2017 15 commits
    • re PR sanitizer/80349 (UBSAN: compile time crash with "type mismatch in binary expression" message) · 3777eda2
      	PR sanitizer/80349
      	* fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
      	arg10 and arg11 to itype.
      
      	* c-c++-common/ubsan/pr80349.c: New test.
      
      From-SVN: r247352
      Marek Polacek committed
    • re PR bootstrap/80531 (RC1 bootstrap comparison failure) · f49215b1
      	PR bootstrap/80531
      	* configure.tgt (*-*-aix*): Add -frandom-seed=$@ to XCFLAGS to avoid
      	bootstrap compare failures.
      
      From-SVN: r247350
      Jakub Jelinek committed
    • parser.c (cp_parser_cast_expression): Add target type of cast to diagnostic. · 8211c4a2
              * parser.c (cp_parser_cast_expression): Add target type of cast to
              diagnostic.
              * error.c (type_to_string): Add '{enum}' suffix to enumeration types.
      
              * g++.dg/cpp1z/direct-enum-init1.C: Adjust for more verbose enum
              diagnostics.
              * g++.dg/warn/pr12242.C: Likewise.
      
      From-SVN: r247347
      Volker Reichelt committed
    • Remove reundant const-qualification from cast targets · 4ca4927a
      	* include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
      	(PB_DS_CLASS_C_DEC::end()): Remove redundant const in cast type.
      	* testsuite/util/testsuite_rng.h (twister_rand_gen::get_prob()):
      	Likewise.
      
      From-SVN: r247346
      Jonathan Wakely committed
    • * gcc.c-torture/execute/alias-3.c: Skip on AIX. · 94baf2e2
      From-SVN: r247343
      David Edelsohn committed
    • Fix test-case on ppc64le (PR testsuite/79455). · 9a448688
      2017-04-27  Martin Liska  <mliska@suse.cz>
      
      	PR testsuite/79455
      	* c-c++-common/tsan/race_on_mutex.c: Make the scanned pattern
      	more generic.
      
      From-SVN: r247342
      Martin Liska committed
    • [AArch64] Fix for gcc-7 regression PR 80530 · 2e19adc8
      This patch fixes the regression caused by the changes to add square root
      estimation when compiling for xgene-1 or exynos-m1 targets.
      
      The issue is that the expand path for the reciprocal estimate square
      root pattern assumes that pattern cannot fail once it has been decided
      that this expansion path is available, but because the logic deep inside
      aarch64_emit_approx_sqrt() differs from use_rsqrt_p() the two disagree
      as to what is safe.
      
      This patch refactors the logic to ensure that we cannot unknowingly make
      different choices here.
      
      	PR target/80530
      	* config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
      	that the logic for permitting reciprocal estimates matches that
      	in use_rsqrt_p.
      
      From-SVN: r247340
      Richard Earnshaw committed
    • Make-lang.in: Define EH_MECHANISM while building raise-gcc.c. · a96eb6f2
      2017-04-27  Tristan Gingold  <gingold@adacore.com>
      
      	* gcc-interface/Make-lang.in: Define EH_MECHANISM while building
      	raise-gcc.c. Fix include search path for raise-gcc.c
      
      From-SVN: r247339
      Tristan Gingold committed
    • [multiple changes] · 8ab31c0c
      2017-04-27  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* fe.h (Warn_On_Questionable_Layout): Declare.
      	* warnsw.ads (Warn_On_Record_Holes): Move down.
      	(Warn_On_Questionable_Layout): New boolean variable.
      	(Warning_Record): Add Warn_On_Questionable_Layout field.
      	* warnsw.adb (All_Warnings): Set Warn_On_Questionable_Layout.
      	(Restore_Warnings): Likewise.
      	(Save_Warnings): Likewise.
      	(Set_Dot_Warning_Switch): Handle 'q' and 'Q' letters.
      	* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust call to
      	components_to_record.
      	(gnu_field_to_gnat): New function.
      	(warn_on_field_placement): Likewise.
      	(components_to_record): Add GNAT_RECORD_TYPE and remove REORDER
      	parameters.  Rename local variables and adjust recursive call.
      	Rework final scan of the field list and implement warnings on the
      	problematic placement of specific sorts of fields.
      
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* errout.adb, exp_aggr.adb, exp_attr.adb, exp_code.adb, fname.adb,
      	* fname.ads, freeze.adb, inline.adb, lib.adb, lib.ads, lib-list.adb,
      	* lib-load.adb, lib-writ.adb, par.adb, restrict.adb, rtsfind.adb,
      	* sem.adb, sem_cat.adb, sem_ch10.adb, sem_ch12.adb, sem_ch3.adb,
      	* sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, sem_elab.adb,
      	* sem_intr.adb, sem_res.adb, sem_util.adb, sem_warn.adb, sprint.adb:
      	For efficiency, cache results of Is_Internal_File_Name and
      	Is_Predefined_File_Name in the Units table. This avoids a lot
      	of repeated text processing.
      
      2017-04-27  Emmanuel Briot  <briot@adacore.com>
      
      	* g-comlin.adb (Sort_Sections): remove useless test.
      
      2017-04-27  Claire Dross  <dross@adacore.com>
      
      	* a-cfhase.adb, a-cfhase.ads (=): Generic parameter removed to
      	allow the use of regular equality over elements in contracts.
      	(Formal_Model): Ghost package containing model functions that are
      	used in subprogram contracts.
      	(Current_To_Last): Removed, model functions should be used instead.
      	(First_To_Previous): Removed, model functions should be used instead.
      	(Strict_Equal): Removed, model functions should be used instead.
      	(No_Overlap): Removed, model functions should be used instead.
      	(Equivalent_Keys): Functions over cursors are removed. They were
      	awkward with explicit container parameters.
      	* a-cforse.adb, a-cforse.ads (=): Generic parameter removed to
      	allow the use of regular equality over elements in contracts.
      	(Formal_Model): Ghost package containing model functions that
      	are used in subprogram contracts.
      	(Current_To_Last): Removed, model functions should be used instead.
      	(First_To_Previous): Removed, model functions should be used instead.
      	(Strict_Equal): Removed, model functions should be used instead.
      	(No_Overlap): Removed, model functions should be used instead.
      
      2017-04-27  Yannick Moy  <moy@adacore.com>
      
      	* gnat1drv.adb: Code cleanup.
      
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_util.adb (Replace_Entity): The prefix of a 'Result
      	attribute reference in a post- condition is the subprogram to
      	which the condition applies. If the condition is inherited
      	by a type extension, the prefix becomes a reference to the
      	inherited operation, but there is no need to create a wrapper
      	for this operation, because 'Result is expanded independently
      	when elaborating the postconditions.
      
      From-SVN: r247338
      Arnaud Charlet committed
    • sinput.adb: Minor code cleanup. · a2168462
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* sinput.adb: Minor code cleanup.
      	* namet.adb (Append): Create faster versions of
      	Append(String) and Append(Name_Id) by using slice assignment
      	instead of loops.
      	* sem_util.adb (In_Instance): Speed this up by removing
      	unnecessary tests; Is_Generic_Instance is defined for all
      	entities.
      	* sem_util.ads, sem_util.adb (In_Parameter_Specification):
      	Remove unused function.
      	* alloc.ads (Nodes_Initial): Use a much larger value, because
      	the compiler was spending a lot of time copying the nodes table
      	when it grows. This number was chosen in 1996, so is rather out
      	of date with current memory sizes. Anyway, it's virtual memory.
      	Get rid of Orig_Nodes_...; use Node_... instead.
      	* atree.adb (Lock): Do not release the Nodes tables; it's a
      	waste of time.
      	Orig_Nodes_ ==> Nodes_
      	* nlists.adb: Orig_Nodes_ ==> Nodes_
      	* g-table.adb: Remove unused "with" clause.
      	* g-table.ads, table.ads: Remove Big_Table_Type, which should
      	not be used by clients.
      	* g-dyntab.adb (Last_Allocated): New function
      	to encapsulate T.P.Last_Allocated, which I'm thinking of changing.
      
      From-SVN: r247335
      Bob Duff committed
    • re PR c++/80534 (7.1 RC - internal compiler error: in finish_member_declaration,… · f8a36447
      re PR c++/80534 (7.1 RC - internal compiler error: in finish_member_declaration, at cp/semantics.c:2963)
      
      	PR c++/80534
      	* tree.c (type_cache_hasher::equal): Only compare
      	TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
      	(build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
      	non-aggregate element types.
      	* tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
      	about the flag on ARRAY_TYPEs in the comment, formatting fix.
      c-family/
      	* c-common.c (complete_array_type): Only hash TYPE_TYPELESS_STORAGE
      	flag on non-aggregate element types.
      testsuite/
      	* g++.dg/other/pr80534-1.C: New test.
      	* g++.dg/other/pr80534-2.C: New test.
      
      From-SVN: r247334
      Jakub Jelinek committed
    • [multiple changes] · 304757d2
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_eval.adb (Subtypes_Statically_Compatible): Remove duplicated
      	check.
      	(Subtypes_Statically_Match): Remove duplicate check.
      	* sem_prag.adb (Check_Arg_Is_External_Name): Remove duplicate check.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_aggr.adb (Replace_Type): Remove the special processing
      	for selected components.
      	* exp_attr.adb (Expand_N_Attribute_Reference): Merge the
      	processing for attributes Fixed_Value and Integer_Value.
      	* exp_util.adb (Side_Effect_Free): Merge the processing for
      	qualified expressions, type conversions, and unchecked type
      	conversions.
      	* g-comlin.adb (Is_In_Config): Merge the processing for No_Space
      	and Optional.
      	* par-ch3.adb (P_Declarative_Items): Merge the processing for
      	tokens function, not, overriding, and procedure.
      	* sem_ch6.adb (Fully_Conformant_Expressions): Merge the processing
      	for qualified expressions, type conversions, and unchecked
      	type conversions.
      	* sem_util.adb (Compile_Time_Constraint_Error): Merge the
      	processing for Ada 83 and instances.
      	(Object_Access_Level): Merge the processing for indexed components
      	and selected components.
      	* uname.adb (Add_Node_Name): Merge the processing for stubs.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* checks.adb (Install_Primitive_Elaboration_Check):
      	Do not generate the check when restriction No_Elaboration_Code
      	is in effect.
      
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_disp.adb (Build_Class_Wide_Check): New subsidiary
      	of Expand_Dispatching_Call. If the denoted subprogram has a
      	class-wide precondition, this is the only precondition that
      	applies to the call, rather that the class-wide preconditions
      	that may apply to the body that is executed. (This is specified
      	in AI12-0195).
      
      From-SVN: r247333
      Arnaud Charlet committed
    • [multiple changes] · bfc37f37
      2017-04-27  Yannick Moy  <moy@adacore.com>
      
      	* gnat1drv.adb (Adjust_Global_Switches): Issue
      	a warning in GNATprove mode if the runtime library does not
      	support IEEE-754 floats.
      
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_prag.adb (Inherit_Class_Wide_Pre): If the parent operation
      	is itself inherited it does not carry any contract information,
      	so examine its parent operation which is its Alias.
      
      From-SVN: r247332
      Arnaud Charlet committed
    • [multiple changes] · 9dd8f36f
      2017-04-27  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_attr.adb (Analyze_Attribute, case 'Image): In Ada2012 the
      	prefix can be an object reference in which case Obj'Image (X)
      	can only be interpreted as an indexing of the parameterless
      	version of the attribute.
      	* par-ch4.adb (P_Name): An attribute reference can be the prefix of
      	an indexing or a slice operation if the attribute does not require
      	parameters. In Ada2012 'Image also belongs in this category,
      	and A'Image (lo .. hi) is legal and must be parsed as a slice.
      
      2017-04-27  Yannick Moy  <moy@adacore.com>
      
      	* exp_ch4.adb: Minor reformatting.
      	* gnat1drv.adb (Adjust_Global_Switches): When in GNATprove mode,
      	disable the CodePeer and C generation modes. Similar to the
      	opposite actions done in CodePeer mode.
      
      From-SVN: r247331
      Arnaud Charlet committed