- 28 Apr, 2017 2 commits
-
-
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 -
From-SVN: r247361
GCC Administrator committed
-
- 27 Apr, 2017 38 commits
-
-
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 -
PR bootstrap/80531 * configure.tgt (*-*-aix*): Add -frandom-seed=$@ to XCFLAGS to avoid bootstrap compare failures. From-SVN: r247350
Jakub Jelinek committed -
From-SVN: r247349
Jonathan Wakely committed -
* 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 -
* 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 -
From-SVN: r247343
David Edelsohn committed -
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 -
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 -
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 -
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 -
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, 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 -
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 -
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 -
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 -
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 -
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 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 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 -
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 -
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 -
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 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 -
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 -
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 -
2017-04-27 Ed Schonberg <schonberg@adacore.com> * freeze.adb (Build_Inherited_Condition_Pragmas): New procedure, subsidiary of Check_Inherited_Conditions, to build pragmas for an operation whose ancestor has classwide pre/postconditions. This is used both to check the legality of the inheritance in Ada and in SPARK, and to determine whether a wrapper is needed for an inherited operation. * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity): Improve placement of error message for inherited classwide conditions that become illegal on type derivation. 2017-04-27 Yannick Moy <moy@adacore.com> * sem_ch12.adb (Analyze_Generic_Package_Declaration): Set SPARK_Mode from context on generic package. * sem_ch7.adb (Analyze_Package_Declaration): Simplify code to remove useless test. 2017-04-27 Claire Dross <dross@adacore.com> * a-cofuve.ads (Range_Shifted): Rewrite precondition to avoid overflows in computations. * a-cofove.ads (Capacity_Range): Rewrite last bound to avoid overflows in computations. (Insert): Rewrite precondition to avoid overflows in computations. * a-cfinve.ads (Capacity_Range): Rewrite last bound to avoid overflows in computations. (Insert): Rewrite precondition to avoid overflows in computations. From-SVN: r247318
Arnaud Charlet committed -
2017-04-27 Steve Baird <baird@adacore.com> * exp_ch9.adb (Expand_N_Asynchronous_Select): Initialize the Cancel flag when it is declared in order to avoid confusing CodePeer about the possibility of an uninitialized variable read. 2017-04-27 Ed Schonberg <schonberg@adacore.com> * sem_dim.adb (Analyze_Dimension_Object_Declaration): There is no dimensionality error if the subtype of the expression is identical to the nominal subtype in the declaration, even though the expression itself may have been constant-folded and lack a dimension vector. * sem_dim.ads: Add comments on setting of dimension vectors and its interaction with node rewritings and side-effect removal. 2017-04-27 Bob Duff <duff@adacore.com> * debug.adb: Minor comment correction. * sem_dim.ads: Minor reformatting and typo fixes. 2017-04-27 Bob Duff <duff@adacore.com> * g-table.adb, g-table.adsa, scos.h: From the C side, access First and Last of the tables via function calls, rather than relying on layout of data structures. 2017-04-27 Ed Schonberg <schonberg@adacore.com> * exp_util.adb: No wrapper in GNATprove mode. 2017-04-27 Yannick Moy <moy@adacore.com> * sem_res.adb (Resolve_Comparison_Op): Always evaluate comparisons between values of universal types. 2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> * sem_elab.adb (Check_Internal_Call_Continue): Do not generate an elaboration counter nor a check when in GNATprove mode. * sem_util.adb (Build_Elaboration_Entity): Do not create an elaboration counter when in GNATprove mode. From-SVN: r247317
Arnaud Charlet committed -
2017-04-27 Ed Schonberg <schonberg@adacore.com> * freeze.adb: copy-paste typo. 2017-04-27 Yannick Moy <moy@adacore.com> * sem_prag.adb (Analyze_Pre_Post_In_Decl_Part): Use correct test to detect call in GNATprove mode instead of compilation. 2017-04-27 Claire Dross <dross@adacore.com> * a-cfdlli.adb, a-cfdlli.ads (Formal_Model.M_Elements_In_Union): New property function expressing that the element of a sequence are contained in the union of two sequences. (Formal_Model.M_Elements_Included): New property function expressing that the element of a sequence are another sequence. (Generic_Sorting): Use new property functions to state that elements are preserved by Sort and Merge. * a-cofove.adb, a-cofove.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. (Capacity): On unbounded containers, return the maximal capacity. (Current_To_Last): Removed, model functions should be used instead. (First_To_Previous): Removed, model functions should be used instead. (Append): Default parameter value replaced by new wrapper to allow more precise contracts. (Insert): Subprogram restored, it seems it was useful to users even if it is inefficient. (Delete): Subprogram restored, it seems it was useful to users even if it is inefficient. (Prepend): Subprogram restored, it seems it was useful to users even if it is inefficient. (Delete_First): Subprogram restored, it seems it was useful to users even if it is inefficient. (Delete_Last): Default parameter value replaced by new wrapper to allow more precise contracts. (Generic_Sorting.Merge): Subprogram restored. * a-cfinve.adb, a-cfinve.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. (Capacity): On unbounded containers, return the maximal capacity. (Current_To_Last): Removed, model functions should be used instead. (First_To_Previous): Removed, model functions should be used instead. (Append): Default parameter value replaced by new wrapper to allow more precise contracts. (Insert): Subprogram restored, it seems it was useful to users even if it is inefficient. (Delete): Subprogram restored, it seems it was useful to users even if it is inefficient. (Prepend): Subprogram restored, it seems it was useful to users even if it is inefficient. (Delete_First): Subprogram restored, it seems it was useful to users even if it is inefficient. (Delete_Last): Default parameter value replaced by new wrapper to allow more precise contracts. (Generic_Sorting.Merge): Subprogram restored. (Vector): Do not reuse formal vectors, as it is no longer possible to supply them with an equality function over elements. 2017-04-27 Bob Duff <duff@adacore.com> * g-dyntab.adb (Release): When allocating the new table, use the correct slice of the old table to initialize it. From-SVN: r247316
Arnaud Charlet committed -
* einfo.ads: Minor fixes in comments. 2017-04-27 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb: disable clones in SPARK_Mode. 2017-04-27 Gary Dismukes <dismukes@adacore.com> * sem_util.ads, contracts.adb: Minor reformatting. From-SVN: r247315
Arnaud Charlet committed -
From-SVN: r247314
Arnaud Charlet committed -
sem_util.adb, [...] (Build_Class_Wide_Clone_Body): Build body of subprogram that has a class-wide condition that contains calls to... 2017-04-27 Ed Schonberg <schonberg@adacore.com> * sem_util.adb, sem_util.ads (Build_Class_Wide_Clone_Body): Build body of subprogram that has a class-wide condition that contains calls to other primitives. (Build_Class_Wide_Clone_Call); Build a call to the common class-wide clone of a subprogram with classwide conditions. The body of the subprogram becomes a wrapper for a call to the clone. The inherited operation becomes a similar wrapper to which modified conditions apply, and the call to the clone includes the proper conversion in a call the parent operation. (Build_Class_Wide_Clone_Decl (Spec_Id : Entity_Id): For a subprogram that has a classwide condition that contains calls to other primitives, build an internal subprogram that is invoked through a type-specific wrapper for all inherited subprograms that may have a modified condition. * sem_prag.adb (Check_References): If subprogram has a classwide condition, create entity for corresponding clone, to be invoked through wrapper subprograns. (Analyze_Pre_Post_Condition_In_Decl_Part): Do not emit error message about placement if pragma isi internally generated. * sem_ch6.adb (Analyze_Subprogram_Body_Helper): If subprogram has a classwide clone, build body of clone as copy of original body, and rewrite original body as a wrapper as a wrapper for a call to the clone, so that it incorporates the original pre/postconditions of the subprogram. * freeze.adb (Check_Inherited_Conditions): For an inherited subprogram that inherits a classwide condition, build spec and body of corresponding wrapper so that call to inherited operation gets the modified conditions. * contracts.adb (Analyze_Contracts): If analysis of classwide condition has created a clone for a primitive operation, analyze declaration of clone. From-SVN: r247313
Ed Schonberg committed -
2017-04-27 Steve Baird <baird@adacore.com> * exp_util.adb (Build_Allocate_Deallocate_Proc): Add "Suppress => All_Checks" to avoid generating unnecessary checks. 2017-04-27 Yannick Moy <moy@adacore.com> * debug.adb: Reserve debug flag 'm' for no inlining in GNATprove. * sem_ch6.adb (Anayze_Subprogram_Body_Helper): Skip creation of inlining body in GNATprove mode when switch -gnatdm used. * sem_res.adb (Resolve_Call): Skip detection of lack of inlining in GNATprove mode when switch -gnatdm used. 2017-04-27 Arnaud Charlet <charlet@adacore.com> * sem_ch13.adb (Analyze_Attribute_Definition_Clause [Attribute_Address]): Call Set_Address_Taken when ignoring rep clauses, so that we keep an indication of the address clause before removing it from the tree. From-SVN: r247312
Arnaud Charlet committed -
2017-04-27 Yannick Moy <moy@adacore.com> * exp_util.ads, exp_util.adb (Evaluate_Name): Force evaluation of expression being qualified, when not an object name, or else evaluate the underlying name. From-SVN: r247311
Yannick Moy committed -
2017-04-27 Jerome Lambourg <lambourg@adacore.com> * bindusg.adb, bindgen.adb, gnatbind.adb, opt.ads: add -nognarl switch. 2017-04-27 Justin Squirek <squirek@adacore.com> * exp_ch7.adb (Build_Finalize_Statements): Move Num_Comps to Process_Component_List_For_Finalization as a local variable. (Process_Component_For_Finalize): Add an extra parameter to avoid global references. (Process_Component_List_For_Finalization): Correct calls to Process_Component_For_Finalize to take Num_Comps as a parameter. From-SVN: r247310
Arnaud Charlet committed -
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch8.adb (Find_Direct_Name): Account for the case where a use-visible entity is defined within a nested scope of an instance when giving priority to entities which were visible in the original generic. * sem_util.ads, sem_util.adb (Nearest_Enclosing_Instance): New routine. 2017-04-27 Tristan Gingold <gingold@adacore.com> * raise-gcc.c: Don't use unwind.h while compiling for the frontend, but mimic host behavior. 2017-04-27 Javier Miranda <miranda@adacore.com> * sem_ch3.adb (Build_Discriminated_Subtype): Propagate Has_Pragma_Unreferenced_Objects to the built subtype. 2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Analyze_Global_Item): Do not consider discriminants because they are not "entire objects". Remove the discriminant-related checks because they are obsolete. (Analyze_Input_Output): Do not consider discriminants because they are not "entire objects". 2017-04-27 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Do not perform check if the current scope does not come from source, as is the case for a rewritten task body, because check has been performed already, and may not be doable because of changed visibility. From-SVN: r247309
Arnaud Charlet committed -
2017-04-26 Tamar Christina <tamar.christina@arm.com> PR middle-end/79665 * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR, ROUND_MOD_EXPR cases. From-SVN: r247307
Tamar Christina committed -
2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> * a-cofuse.adb, a-cfdlli.adb, a-cofuse.ads, a-cfdlli.ads, a-cofuve.adb, a-cofuve.ads, a-cofuma.adb, a-cofuma.ads, sem_eval.adb, a-cofuba.adb: Minor reformatting. 2017-04-27 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Analyze_Call): If the return type of a function is incomplete in an context in which the full view is available, replace the type of the call by the full view, to prevent spurious type errors. * exp_disp.adb (Check_Premature_Freezing): Disable check on an abstract subprogram so that compiler does not reject a parameter of a primitive operation of a tagged type being frozen, when the untagged type of that parameter cannot be frozen. 2017-04-27 Bob Duff <duff@adacore.com> * sem_attr.adb (Compute_Type_Key): Don't walk representation items for irrelevant types, which could be in a different source file. 2017-04-27 Steve Baird <baird@adacore.com> * exp_attr.adb (Expand_N_Attribute_Reference): Don't expand Image, Wide_Image, Wide_Wide_Image attributes for CodePeer. From-SVN: r247305
Arnaud Charlet committed -
2017-04-27 Yannick Moy <moy@adacore.com> * exp_unst.ads: Fix typos in comments. 2017-04-27 Ed Schonberg <schonberg@adacore.com> * sem_eval.adb (Choice_Matches): Handle properly a real literal whose type has a defined static predicate. 2017-04-27 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch4.adb (Insert_Dereference_Action): Do not adjust the address of a controlled object when the associated access type is subject to pragma No_Heap_Finalization. Code reformatting. From-SVN: r247304
Arnaud Charlet committed
-