1. 28 Apr, 2017 15 commits
    • 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 25 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
    • * doc/extend.texi (Object Size Checking): Improve grammar. · 1035527b
      From-SVN: r247349
      Jonathan Wakely 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
    • [multiple changes] · 7327f5c2
      2017-04-27  Yannick Moy  <moy@adacore.com>
      
      	* sem_res.adb: Remove duplicate code.
      	* sem_attr.adb: Delete duplicate code.
      
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* g-dyntab.adb: Reduce the amount of copying in
      	Release. No need to copy items past Last.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* checks.adb Add with and use clauses for Sem_Disp.
      	(Install_Primitive_Elaboration_Check): New routine.
      	* checks.ads (Install_Primitive_Elaboration_Check): New routine.
      	* exp_attr.adb (Expand_N_Attribute_Reference): Clean up the
      	processing of 'Elaborated.
      	* exp_ch6.adb (Expand_N_Subprogram_Body): Install a primitive
      	elaboration check.
      
      From-SVN: r247330
      Arnaud Charlet committed
    • g-dyntab.ads, [...]: Remove incorrect assertion. · 7494697b
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* g-dyntab.ads, g-dyntab.adb, g-table.ads: Remove incorrect assertion.
      	If the table grows and then shrinks back to empty, we won't necessarily
      	point back to the empty array. Code cleanups.
      	* sinput.ads: Add 'Base to Size clause to match the declared
      	component subtypes.
      
      From-SVN: r247329
      Bob Duff committed
    • a-cforma.adb, [...] (=): Generic parameter removed to allow the use of regular… · f2acfbce
      a-cforma.adb, [...] (=): Generic parameter removed to allow the use of regular equality over elements in...
      
      2017-04-27  Claire Dross  <dross@adacore.com>
      
      	* a-cforma.adb, a-cforma.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.
      	* a-cofuma.adb, a-cofuma.ads (Enable_Handling_Of_Equivalence)
      	Boolean generic parameter to disable contracts for equivalence
      	between keys.
      	(Witness): Create a witness of a key that is used for handling of
      	equivalence between keys.
      	(Has_Witness): Check whether a witness is contained in a map.
      	(W_Get): Get the element associated to a witness.
      	(Lift_Equivalent_Keys): Removed, equivalence between keys is handled
      	directly.
      	* a-cofuse.adb, a-cofuse.ads (Enable_Handling_Of_Equivalence)
      	Boolean generic parameter to disable contracts for equivalence
      	between keys.
      	* a-cfhama.adb, a-cfhama.ads (Formal_Model.P) Disable handling
      	of equivalence on functional maps.
      	* a-cfdlli.adb, a-cfdlli.ads (Formal_Model.P) Disable handling
      	of equivalence on functional maps.
      
      From-SVN: r247328
      Claire Dross committed
    • re PR middle-end/80533 (Alias analysis of zero length array does not recognize… · 12ead254
      re PR middle-end/80533 (Alias analysis of zero length array does not recognize accesses beyond end of array)
      
      2017-04-27  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/80533
      	* emit-rtl.c (set_mem_attributes_minus_bitpos): When
      	stripping ARRAY_REFs from MEM_EXPR make sure we're not
      	keeping a reference to a trailing array.
      
      From-SVN: r247327
      Richard Biener committed
    • exp_ch9.adb (Expand_Entry_Barrier): Code cleanup. · 3b2249aa
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch9.adb (Expand_Entry_Barrier): Code
      	cleanup. Do not perform the optimization which removes the
      	declarations of the discriminant and component renamings when
      	validity checks on operands and attributes are in effect.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_spark.adb, exp_util.adb, sem_ch7.adb, g-dyntab.adb, g-dyntab.ads,
      	freeze.adb, a-cfinve.ads, a-cofuma.adb, a-cofuma.ads, a-cfhama.adb,
      	a-cfhama.ads, a-cofove.ads: Minor reformatting.
      
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* g-debpoo.adb (Dump_Gnatmem): Protect against a possible null
      	pointer dereference.
      	* g-spipat.adb (Dump): Code clean up. Protect against a possible
      	null pointer dereference.
      
      From-SVN: r247326
      Hristian Kirtchev committed
    • g-dyntab.ads, [...]: Default for Table_Low_Bound. · a3ef4e65
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* g-dyntab.ads, g-dyntab.adb: Default for Table_Low_Bound.
      	Rename Empty --> Empty_Table_Ptr, and don't duplicate code for it.
      	Free renames Init, since they do the same thing.
      	* g-table.ads: Default for Table_Low_Bound.
      	* table.ads: Default for Table_Low_Bound, Table_Initial, and
      	Table_Increment.
      
      From-SVN: r247324
      Bob Duff committed
    • [multiple changes] · de33eb38
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* g-dyntab.ads, g-dyntab.adb: Add assertions to subprograms that
      	can reallocate.
      	* atree.adb, elists.adb, fname-uf.adb, ghost.adb, inline.adb,
      	* lib.adb, namet.adb, nlists.adb, sem.adb, sinput.adb, stringt.adb:
      	Reorder code so that above assertions do not fail.
      	* table.ads: Remove obsolete comment on Locked.
      
      2017-04-27  Claire Dross  <dross@adacore.com>
      
      	* a-cfdlli.ads: Code cleanup.
      
      2017-04-27  Yannick Moy  <moy@adacore.com>
      
      	* exp_spark.adb (Expand_SPARK_Freeze_Type): Build a DIC procedure
      	when needed for proof.	(Expand_SPARK): Call the new procedure.
      	* exp_util.ads Fix typo.
      
      2017-04-27  Gary Dismukes  <dismukes@adacore.com>
      
      	* a-cofuma.ads, a-cfhama.ads: Minor reformatting, grammar, and typo
      	fixes.
      
      From-SVN: r247323
      Arnaud Charlet committed
    • re PR middle-end/80539 (gcc ICE at -O2 and above on valid code on… · 1b7c8d39
      re PR middle-end/80539 (gcc ICE at -O2 and above on valid code on x86_64-linux-gnu in "chrec_fold_plus_poly_poly")
      
      2017-04-27  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/80539
      	* tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
      	being in loop-closed SSA form conservatively.
      	(chrec_fold_multiply_poly_poly): Likewise.
      
      	* gcc.dg/torture/pr80539.c: New testcase.
      
      From-SVN: r247322
      Richard Biener committed
    • [multiple changes] · a6d25cad
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_elab.adb Add new type Visited_Element
      	and update the contents of table Elab_Visited.	Various code clean up.
      	(Check_Elab_Call): Determine whether a prior call to
      	the same subprogram was already examined within the same context.
      	(Check_Internal_Call_Continue): Register the subprogram being
      	called as examined within a particular context. Do not suppress
      	elaboration warnings.
      
      2017-04-27  Gary Dismukes  <dismukes@adacore.com>
      
      	* xoscons.adb, osint.ads: Minor reformatting.
      
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* g-dyntab.ads, g-dyntab.adb: Misc cleanup. Rename
      	Table_Count_Type --> Table_Last_Type, because the name
      	was confusing (a "count" usually starts at zero).  Add
      	functionality supported or needed by other tables packages
      	(Move, Release_Threshold).
      	* g-table.ads, g-table.adb: This is now just a thin wrapper
      	around g-dyntab.ads/g-dyntab.adb.  Add functionality supported
      	or needed by other tables packages (Save, Restore).
      	* table.ads, table.adb: This is now just a thin wrapper around
      	* g-table.ads/g-table.adb.
      	* namet.h, scos.h, uintp.h: These files are reaching into the
      	private data of some instances of g-table, whose names changed,
      	so the above change requires some adjustment here. It now uses
      	public interfaces.
      
      2017-04-27  Bob Duff  <duff@adacore.com>
      
      	* namet.adb, namet.ads: Minor: remove unused procedures.
      
      2017-04-27  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* checks.adb (Apply_Scalar_Range_Check): Initialize Ok variable too.
      	(Minimize_Eliminate_Overflows): Initialize Llo and Lhi.
      	Add pragma Warnings on Rtype variable in nested block.	*
      	* exp_ch3.adb (Build_Init_Statements): Initialize VAR_LOC.
      	* exp_ch4.adb (Expand_Concatenate): Initialize 3 variables.
      	(Size_In_Storage_Elements): Add pragma Warnings on Res variable.
      	* exp_ch7.adb (Build_Adjust_Statements): Initialize Bod_Stmts.
      	(Process_Component_List_For_Finalize): Initialize Counter_Id.
      	(Build_Finalize_Statements): Initialize Bod_Stmts.
      	* exp_disp.adb (Expand_Dispatching_Call): Initialize SCIL_Node.
      
      2017-04-27  Claire Dross  <dross@adacore.com>
      
      	* a-cfhama.adb, a-cfhamai.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-cofuma.adb, a-cofuma.ads (Lift_Equivalent_Keys): New lemma
      	(proof only) procedure to help GNATprove when equivalence over
      	keys is not equality.
      
      From-SVN: r247320
      Arnaud Charlet committed
    • exp_util.adb, [...]: Minor reformatting and code cleanups. · 27eaddda
      2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_util.adb, a-cfdlli.adb, a-cfdlli.ads, exp_ch9.adb, g-dyntab.adb,
      	sem_dim.adb, a-cfinve.adb, a-cfinve.ads, a-cofove.adb, a-cofove.ads:
      	Minor reformatting and code cleanups.
      
      From-SVN: r247319
      Hristian Kirtchev committed