|
|
|
@@ -1,3 +1,492 @@
|
|
|
|
|
2021-12-02 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* gcc-interface/Make-lang.in (ADA_GENERATED_FILES): Add warning.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Marc Poulhiès <poulhies@adacore.com>
|
|
|
|
|
|
|
|
|
|
* gcc-interface/a-assert.ads, gcc-interface/a-assert.adb: Remove.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* gcc-interface/decl.c (gnat_to_gnu_entity): Do not back-annotate a
|
|
|
|
|
maximum size for the Esize of limited record and concurrent types.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* gcc-interface/gigi.h (aggregate_type_contains_array_p): Delete.
|
|
|
|
|
(type_has_variable_size): Declare.
|
|
|
|
|
* gcc-interface/decl.c (adjust_packed): Return 0 only if the field
|
|
|
|
|
type is an array with variable size.
|
|
|
|
|
* gcc-interface/utils.c (aggregate_type_contains_array_p): Make
|
|
|
|
|
static and remove SELF_REFERENTIAL parameter.
|
|
|
|
|
(type_has_variable_size): Make public.
|
|
|
|
|
(create_field_decl): Adjust call to aggregate_type_contains_array_p.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Justin Squirek <squirek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* gcc-interface/decl.c (gnat_to_gnu_entity): Skip normal
|
|
|
|
|
processing for Itypes that are E_Class_Wide_Subtype with
|
|
|
|
|
Equivalent_Type set.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* gcc-interface/trans.c (Call_to_gnu): Rename GNAT_NAME variable
|
|
|
|
|
into GNAT_SUBPROG to avoid later shadowing.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Yannick Moy <moy@adacore.com>
|
|
|
|
|
|
|
|
|
|
* libgnat/s-arit32.adb: Add ghost instances and lemmas.
|
|
|
|
|
(Scaled_Divide32): Add ghost code to prove. Minor code
|
|
|
|
|
modification to return early in error when divisor is zero.
|
|
|
|
|
* libgnat/s-arit32.ads: Add ghost instances and utilities.
|
|
|
|
|
(Scaled_Divide32): Add contract.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sprint.adb (Source_Dump): Set both Print_Generated_Code and
|
|
|
|
|
Debug_Generated_Code to False at the end.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Marc Poulhiès <poulhies@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_aggr.adb (Resolve_Array_Aggregate): Filter out nodes not
|
|
|
|
|
coming from source before emitting the warning.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Yannick Moy <moy@adacore.com>
|
|
|
|
|
|
|
|
|
|
* libgnat/s-aridou.adb (Log_Single_Size, Big_0): New ghost
|
|
|
|
|
constants.
|
|
|
|
|
(Lemma_Mult_Non_Negative, Lemma_Mult_Non_Positive,
|
|
|
|
|
Lemma_Not_In_Range_Big2xx64): New lemmas on big integers.
|
|
|
|
|
(Double_Divide): Remove justifications. Amend for that local
|
|
|
|
|
lemma Prove_Overflow_Case.
|
|
|
|
|
(Scaled_Divide): Remove justifications. Insert for that local
|
|
|
|
|
lemmas Prove_Negative_Dividend, Prove_Positive_Dividend and
|
|
|
|
|
Prove_Q_Too_Big, and amend local lemma Prove_Overflow. To prove
|
|
|
|
|
the loop invariant on (Shift mod 2 = 0), introduce local ghost
|
|
|
|
|
variable Iter to count loop iterations, and relate its value to
|
|
|
|
|
the value of Shift through Log_Single_Size, with the help of
|
|
|
|
|
local lemma Prove_Power. Deal with proof regression by adding
|
|
|
|
|
new local lemma Prove_First_Iteration and local ghost variable
|
|
|
|
|
D123.
|
|
|
|
|
* libgnat/s-arit64.ads (Multiply_With_Ovflo_Check64): Remove
|
|
|
|
|
unnecessary Pure_Function on function as package is Pure.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Yannick Moy <moy@adacore.com>
|
|
|
|
|
|
|
|
|
|
* libgnat/s-widthi.adb: Add pragma Annotate.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Yannick Moy <moy@adacore.com>
|
|
|
|
|
|
|
|
|
|
* libgnat/s-widint.ads: Mark in SPARK.
|
|
|
|
|
* libgnat/s-widlli.ads: Likewise.
|
|
|
|
|
* libgnat/s-widllli.ads: Likewise.
|
|
|
|
|
* libgnat/s-widlllu.ads: Likewise.
|
|
|
|
|
* libgnat/s-widllu.ads: Disable ghost/contract.
|
|
|
|
|
* libgnat/s-widthi.adb: Replicate and adapt the proof from
|
|
|
|
|
s-widthu.adb.
|
|
|
|
|
* libgnat/s-widthi.ads: Add minimal postcondition.
|
|
|
|
|
* libgnat/s-widthu.adb: Fix comments in the modular case.
|
|
|
|
|
* libgnat/s-widthu.ads: Add minimal postcondition.
|
|
|
|
|
* libgnat/s-widuns.ads: Disable ghost/contract.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* rtsfind.ads (RE_Id, RE_Unit_Table): Add RE_Suspension_Object.
|
|
|
|
|
* sem_util.adb (Is_Descendant_Of_Suspension_Object): Use Is_RTE.
|
|
|
|
|
(Is_Suspension_Object): Remove body.
|
|
|
|
|
* sem_util.ads (Is_Suspension_Object): Remove spec.
|
|
|
|
|
* snames.ads-tmpl (Name_Suspension_Object): Remove, now
|
|
|
|
|
unreferenced.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_util.adb (Append_Freeze_Action): Tune whitespace to make
|
|
|
|
|
the code look similar to Append_Freeze_Actions, which takes a
|
|
|
|
|
List_Id.
|
|
|
|
|
* sem_ch6.adb (Analyze_Return_Type): Cleanup with
|
|
|
|
|
Append_Freeze_Action.
|
|
|
|
|
* exp_ch3.adb (Build_Access_Subprogram_Wrapper_Body): Likewise.
|
|
|
|
|
* sem_ch3.adb (Build_Access_Subprogram_Wrapper): Likewise.
|
|
|
|
|
* contracts.adb (Add_Indirect_Call_Wrapper): Remove extra call
|
|
|
|
|
to Ensure_Freeze_Node.
|
|
|
|
|
(Add_Call_Helper): Likewise.
|
|
|
|
|
* freeze.adb (Check_Inherited_Conditions): Likewise.
|
|
|
|
|
(Attribute_Renaming): Likewise.
|
|
|
|
|
* sem_ch8.adb: Likewise.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
|
|
|
|
|
(No_Dispatching_Calls): Fix whitespace in example code.
|
|
|
|
|
* gnat_rm.texi: Regenerate.
|
|
|
|
|
* exp_ch13.adb (Expand_N_Freeze_Entity): Replace low-level
|
|
|
|
|
membership test with a high-level wrapper.
|
|
|
|
|
* exp_ch3.adb (Expand_Freeze_Record_Type): Remove unnecessary
|
|
|
|
|
initialization of list of wrapper declarations and unnecessary
|
|
|
|
|
guard for list of their bodies (if no bodies are created then
|
|
|
|
|
Append_Freeze_Actions is a no-op).
|
|
|
|
|
|
|
|
|
|
2021-12-02 Marc Poulhiès <poulhies@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_imgv.adb (Append_Table_To): Add new parameter to
|
|
|
|
|
Make_Aggregate call.
|
|
|
|
|
* gen_il-fields.ads (Opt_Field_Enum):
|
|
|
|
|
Add Is_Parenthesis_Aggregate and Is_Enum_Array_Aggregate.
|
|
|
|
|
* gen_il-gen-gen_nodes.adb (Union): Add Is_Enum_Array_Aggregate
|
|
|
|
|
and Is_Parenthesis_Aggregate field to N_Aggregate.
|
|
|
|
|
* libgnarl/s-interr.adb (User_Handler, User_Entry, Blocked)
|
|
|
|
|
(Ignored, Last_Unblocker, Server_ID): Likewise.
|
|
|
|
|
* libgnarl/s-intman.ads (Keep_Unmasked, Reserve): Likewise.
|
|
|
|
|
* libgnarl/s-intman__posix.adb (Exception_Interrupts)
|
|
|
|
|
(Initialize): Likewise.
|
|
|
|
|
* libgnarl/s-mudido__affinity.adb (Create): Likewise.
|
|
|
|
|
* libgnarl/s-osinte__linux.ads (Unmasked, Reserved): Likewise.
|
|
|
|
|
* libgnarl/s-taprop__linux.adb (Create_Task, Set_Task_Affinity)
|
|
|
|
|
* libgnarl/s-tasdeb.adb (Trace_On): Likewise.
|
|
|
|
|
* libgnarl/s-tasdeb.ads (Known_Tasks): Likewise.
|
|
|
|
|
* libgnarl/s-tasinf__linux.ads (Any_CPU, No_CPU): Likewise.
|
|
|
|
|
* libgnarl/s-taskin.adb (Initialize_ATCB): Likewise.
|
|
|
|
|
* libgnarl/s-taskin.ads (Ada_Task_Control_Block): Likewise.
|
|
|
|
|
* libgnarl/s-tasren.adb (Default_Treatment)
|
|
|
|
|
(New_State): Likewise.
|
|
|
|
|
* libgnarl/s-tassta.adb (Trace_Unhandled_Exception_In_Task):
|
|
|
|
|
Likewise.
|
|
|
|
|
* libgnarl/s-tataat.adb (Index_Array): Likewise.
|
|
|
|
|
* libgnarl/s-tpobop.adb (New_State): Likewise.
|
|
|
|
|
* libgnat/a-calend.adb (Cumulative_Days_Before_Month)
|
|
|
|
|
(Leap_Second_Times): Likewise.
|
|
|
|
|
* libgnat/a-calend.ads (Days_In_Month): Likewise.
|
|
|
|
|
* libgnat/a-cfinve.adb (Insert): Likewise.
|
|
|
|
|
* libgnat/a-chahan.adb (Char_Map): Likewise.
|
|
|
|
|
* libgnat/a-chtgbo.adb (Clear): Likewise.
|
|
|
|
|
* libgnat/a-cobove.adb ("&", Insert, To_Vector): Likewise.
|
|
|
|
|
* libgnat/a-cofove.adb (Insert, To_Vector): Likewise.
|
|
|
|
|
* libgnat/a-cohata.ads (Hash_Table_Type): Likewise.
|
|
|
|
|
* libgnat/a-coinve.adb (Merge, Insert, Insert_Space): Likewise.
|
|
|
|
|
* libgnat/a-convec.adb (Insert, To_Vector): Likewise.
|
|
|
|
|
* libgnat/a-coprnu.ads (Primes): Likewise.
|
|
|
|
|
* libgnat/a-direct.adb (Empty_String): Use regular "" instead
|
|
|
|
|
of aggregate.
|
|
|
|
|
(Start_Search_Internal, Name_Case_Equivalence, Search)
|
|
|
|
|
(Start_Search, Start_Search_Internal): Use bracket for
|
|
|
|
|
aggregate.
|
|
|
|
|
* libgnat/a-direct.ads (Start_Search,Search): Likewise.
|
|
|
|
|
* libgnat/a-direio.adb (Zeroes): Likewise.
|
|
|
|
|
* libgnat/a-nbnbre.adb (Leading_Padding, Trailing_Padding)
|
|
|
|
|
(Numerator_Image): Likewise.
|
|
|
|
|
* libgnat/a-ngrear.adb (Jacobi): Likewise.
|
|
|
|
|
* libgnat/a-stbubo.adb (Get_UTF_8): Likewise.
|
|
|
|
|
* libgnat/a-stbufo.adb (Put): Likewise.
|
|
|
|
|
* libgnat/a-stbuun.adb (Get_UTF_8): Likewise.
|
|
|
|
|
* libgnat/a-stbuut.adb (Put_7bit, Put_Character)
|
|
|
|
|
(Put_Wide_Character, Put_Wide_Wide_Character): Likewise.
|
|
|
|
|
* libgnat/a-stmaco.ads (Control_Set,Graphic_Set,Letter_Set)
|
|
|
|
|
(Lower_Set, Upper_Set, Basic_Set, Decimal_Digit_Set)
|
|
|
|
|
(Hexadecimal_Digit_Set, Alphanumeric_Set, Special_Set)
|
|
|
|
|
(ISO_646_Set): Likewise.
|
|
|
|
|
* libgnat/a-strbou.ads (Insert, Tail, "*", Replicate)
|
|
|
|
|
(Null_Bounded_String): Likewise.
|
|
|
|
|
* libgnat/a-strfix.ads (Head, Tail): Likewise.
|
|
|
|
|
* libgnat/a-strmap.adb (To_Domain, Lemma_Is_Sorted): Likewise.
|
|
|
|
|
* libgnat/a-strmap.ads (Null_Set): Likewise.
|
|
|
|
|
* libgnat/a-strsup.adb (Super_Head, Super_Replicate)
|
|
|
|
|
(Super_Tail): Likewise.
|
|
|
|
|
* libgnat/a-strsup.ads (Super_Head, Super_Tail, Times)
|
|
|
|
|
(Super_Replicate): Likewise.
|
|
|
|
|
* libgnat/a-sttebu.adb (Put_UTF8, Wide_Put_UTF_16): Likewise.
|
|
|
|
|
* libgnat/a-stuten.ads (BOM_16): Likewise.
|
|
|
|
|
* libgnat/a-stwibo.ads (Null_Bounded_Wide_String): Likewise.
|
|
|
|
|
* libgnat/a-stwima.ads (Null_Range): Likewise.
|
|
|
|
|
* libgnat/a-stwisu.adb (Super_Head, Super_Replicate)
|
|
|
|
|
(Super_Tail): Likewise.
|
|
|
|
|
* libgnat/a-stzbou.ads
|
|
|
|
|
(Null_Bounded_Wide_Wide_String): Likewise.
|
|
|
|
|
* libgnat/a-stzmap.ads (Null_Range): Likewise.
|
|
|
|
|
* libgnat/a-stzsup.adb (Super_Head, Super_Replicate)
|
|
|
|
|
(Super_Tail, Super_Trim): Likewise.
|
|
|
|
|
* libgnat/a-swmwco.ads (Control_Ranges, Graphic_Ranges)
|
|
|
|
|
(Letter_Ranges, Lower_Ranges, Upeer_Ranges, Basic_Ranges)
|
|
|
|
|
(Decimal_Digit_Ranges, Hexadecimal_Digit_Ranges)
|
|
|
|
|
(Alphanumeric_Ranges, Special_Graphic_Ranges, ISO_646_Ranges)
|
|
|
|
|
(Character_Ranges, Lower_Case_Mapping, Upper_Case_Mapping)
|
|
|
|
|
(Basic_Mapping): Likewise.
|
|
|
|
|
* libgnat/a-szmzco.ads (Control_Ranges, Graphic_Ranges)
|
|
|
|
|
(Letter_Ranges, Lower_Ranges, Upeer_Ranges, Basic_Ranges)
|
|
|
|
|
(Decimal_Digit_Ranges, Hexadecimal_Digit_Ranges)
|
|
|
|
|
(Alphanumeric_Ranges, Special_Graphic_Ranges, ISO_646_Ranges)
|
|
|
|
|
(Character_Ranges, Lower_Case_Mapping, Upper_Case_Mapping)
|
|
|
|
|
(Basic_Mapping): Likewise.
|
|
|
|
|
* libgnat/a-teioed.adb (Format_Number): Likewise.
|
|
|
|
|
* libgnat/a-wtedit.adb (Format_Number): Likewise.
|
|
|
|
|
* libgnat/a-ztedit.adb (Format_Number): Likewise.
|
|
|
|
|
* libgnat/g-arrspl.adb (Separators): Likewise.
|
|
|
|
|
* libgnat/g-catiio.adb (Month_Name_To_Number): Likewise.
|
|
|
|
|
* libgnat/g-cgideb.adb (NL, Title): Likewise.
|
|
|
|
|
* libgnat/g-comlin.adb (Internal_Initialize_Option_Scan)
|
|
|
|
|
(Display_Section_Help): Likewise.
|
|
|
|
|
* libgnat/g-comlin.ads (Opt_Parser_Data): Likewise.
|
|
|
|
|
* libgnat/g-debpoo.adb (Set_Dead_Beef, Dump): Likewise.
|
|
|
|
|
* libgnat/g-expect.adb (Expect, Has_Process, Send): Likewise.
|
|
|
|
|
* libgnat/g-forstr.adb ("+", Get_Formatted): Likewise.
|
|
|
|
|
* libgnat/g-memdum.adb (Dump): Likewise.
|
|
|
|
|
* libgnat/g-rannum.adb (Image): Likewise.
|
|
|
|
|
* libgnat/g-sechas.adb (Final, HMAC_Initial_Context): Likewise.
|
|
|
|
|
* libgnat/g-sehamd.ads (Initial_State): Likewise.
|
|
|
|
|
* libgnat/g-sehash.ads (Initial_State): Likewise.
|
|
|
|
|
* libgnat/g-sercom.ads (Data_Rate_Value): Likewise.
|
|
|
|
|
* libgnat/g-sercom__linux.adb (C_Data_Rate, C_Bits, C_Stop_Bits)
|
|
|
|
|
(C_Parity): Likewise.
|
|
|
|
|
* libgnat/g-shsh32.ads (K, Transform): Likewise.
|
|
|
|
|
* libgnat/g-shsh64.ads (K, Transform): Likewise.
|
|
|
|
|
* libgnat/g-socket.adb (Levels, Modes, Shutmodes, Requests)
|
|
|
|
|
(Options, Flags, Get_Name_Info, Image): Likewise.
|
|
|
|
|
* libgnat/g-socket.ads (Inet_Addr_Bytes_Length, Inet_Addr_Type)
|
|
|
|
|
(IPv4_To_IPv6_Prefix, Any_Inet_Addr, Any_Inet6_Addr)
|
|
|
|
|
(No_Inet_Addr, Broadcast_Inet_Addr, Loopback_Inet_Addr)
|
|
|
|
|
(Loopback_Inet6_Addr, Unspecified_Group_Inet_Addr)
|
|
|
|
|
(All_Hosts_Group_Inet_Addr, All_Routers_Group_Inet_Addr)
|
|
|
|
|
(Unspecified_Group_Inet6_Addr, All_Hosts_Group_Inet6_Addr)
|
|
|
|
|
(All_Routers_Group_Inet6_Addr): Likewise.
|
|
|
|
|
* libgnat/g-socpol.adb (To_C, Status, Get_Events): Likewise.
|
|
|
|
|
* libgnat/g-socpol.ads (Input_Event, Output_Event, Both_Event)
|
|
|
|
|
(Error_Event): Likewise.
|
|
|
|
|
* libgnat/g-sothco.ads (Families, Lengths, Sockaddr): Likewise.
|
|
|
|
|
* libgnat/g-spipat.adb (OK_For_Simple_Arbno): Likewise.
|
|
|
|
|
* libgnat/i-cobol.ads (Ada_To_COBOL, COBOL_To_Ada): Likewise.
|
|
|
|
|
* libgnat/i-pacdec.adb (Packed_Byte): Likewise.
|
|
|
|
|
* libgnat/i-pacdec.ads (Packed_Size): Likewise.
|
|
|
|
|
* libgnat/s-bitops.adb (Masks): Likewise.
|
|
|
|
|
* libgnat/s-crc32.adb (Table): Likewise.
|
|
|
|
|
* libgnat/s-gearop.adb (Unit_Matrix, Unit_Vector): Likewise.
|
|
|
|
|
* libgnat/s-genbig.adb (Out_data, Zero_Data, Big_Exp, Big_Mul)
|
|
|
|
|
(To_Bignum, To_String, Image, Leading_Padding): Likewise.
|
|
|
|
|
* libgnat/s-htable.adb (Reset): Likewise.
|
|
|
|
|
* libgnat/s-imgcha.adb (C0, C1): Likewise.
|
|
|
|
|
* libgnat/s-powflt.ads (Powten): Likewise.
|
|
|
|
|
* libgnat/s-powlfl.ads (Powten): Likewise.
|
|
|
|
|
* libgnat/s-powllf.ads (Powten): Likewise.
|
|
|
|
|
* libgnat/s-rannum.adb (Matrix_A, Random_Float_Template, Image):
|
|
|
|
|
Likewise.
|
|
|
|
|
* libgnat/s-rannum.ads (Generator): Likewise.
|
|
|
|
|
* libgnat/s-regexp.adb (Compile,Create_Primary_Table)
|
|
|
|
|
(Create_Primary_Table_Glob, Create_Secondary_Table, Compile):
|
|
|
|
|
Likewise.
|
|
|
|
|
* libgnat/s-regpat.adb (Bit_Conversion, Set, Dump_Until)
|
|
|
|
|
(Dump_Current, Dump_Error, Try, Reset_Class): Likewise.
|
|
|
|
|
* libgnat/s-regpat.ads (Pattern_Matcher, Never_Match): Likewise.
|
|
|
|
|
* libgnat/s-scaval__128.adb (Initialize): Likewise.
|
|
|
|
|
* libgnat/s-statxd.adb (Fields, W_F, W_LF)
|
|
|
|
|
(W_LLF, W_SF): Likewise.
|
|
|
|
|
* libgnat/s-stausa.adb (Initialize, Initialize_Analyzer)
|
|
|
|
|
(Output_Results): Likewise.
|
|
|
|
|
* libgnat/s-strops.adb (Str_Concat_SC): Likewise.
|
|
|
|
|
* libgnat/s-valrea.adb (Maxexp32, Maxexp64, Maxexp80): Likewise.
|
|
|
|
|
* libgnat/s-wchcon.ads (WC_Encoding_Letters)
|
|
|
|
|
(WC_Longest_Sequences): Likewise.
|
|
|
|
|
* par-ch4.adb (P_Aggregate_Or_Paren_Expr): Set
|
|
|
|
|
Is_Parenthesis_Aggregate when creating a N_Aggregate using
|
|
|
|
|
parenthesis.
|
|
|
|
|
* scng.adb (Scan): Lower version needed for bracket syntax from
|
|
|
|
|
Extensions to Ada2022.
|
|
|
|
|
* sem_aggr.adb (Resolve_Aggregate): Raise error for container
|
|
|
|
|
aggregate using parenthesis instead of bracket.
|
|
|
|
|
(Resolve_Array_Aggregate): Raise warning for aggregate using
|
|
|
|
|
parenthesis in Ada2022 with obsolescent warning enabled and not
|
|
|
|
|
in GNAT mode.
|
|
|
|
|
* sem_util.ads (Check_Ambiguous_Aggregate): Typo fix in comment.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* libgnarl/a-taside.ads (Activation_Is_Complete): Add pragma
|
|
|
|
|
Inline.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_ch12.adb (Freeze_Package_Instance): Consistently consider
|
|
|
|
|
the freeze node of the parent and use large inequality for
|
|
|
|
|
Slocs.
|
|
|
|
|
(Freeze_Subprogram_Instance): Likewise.
|
|
|
|
|
(Insert_Freeze_Node_For_Instance): For an instance in a package
|
|
|
|
|
spec with no source body that immediately follows, consider the
|
|
|
|
|
body of the package for the placement of the freeze node and go
|
|
|
|
|
to the outer level if there is no such body.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_ch13.ads (Expand_N_Freeze_Entity): Add note about a SPARK
|
|
|
|
|
twin.
|
|
|
|
|
* exp_ch3.ads (Freeze_Type): Likewise.
|
|
|
|
|
* exp_spark.adb (Expand_SPARK_N_Freeze_Entity): Mimic what is
|
|
|
|
|
done in Freeze_Entity.
|
|
|
|
|
(SPARK_Freeze_Type): Mimic what is done in Freeze_Type; add call
|
|
|
|
|
to Make_Predefined_Primitive_Eq_Spec.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_ch3.adb (Make_Predefined_Primitive_Specs): Move code for
|
|
|
|
|
spec of dispatching equality.
|
|
|
|
|
(Predefined_Primitive_Bodies): Move code for body if dispatching
|
|
|
|
|
equality.
|
|
|
|
|
(Make_Predefined_Primitive_Eq_Spec): Separated code for spec of
|
|
|
|
|
dispatching equality.
|
|
|
|
|
(Predefined_Primitive_Eq_Body): Separated code for body of
|
|
|
|
|
dispatching equality.
|
|
|
|
|
* exp_ch3.ads: Update.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* libgnat/s-valuti.ads (Scan_Natural_Ghost): Split body from
|
|
|
|
|
spec and put it into private part, so that GNATprove can pick it
|
|
|
|
|
both when analysing the unit and its clients.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* exp_aggr.adb, exp_ch6.adb, par-ch4.adb, sem_ch13.adb: Remove
|
|
|
|
|
extra space after ":=" symbol.
|
|
|
|
|
* gen_il-gen.adb: Likewise; add missing headerbox.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Richard Kenner <kenner@adacore.com>
|
|
|
|
|
|
|
|
|
|
* rtsfind.adb (Maybe_Add_With): Ensure that the added "with" is
|
|
|
|
|
never marked as ignored ghost code.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* freeze.adb (Freeze_Entity): Replace First_Entity/Next_Entity
|
|
|
|
|
with First_Component/Next_Component; remove condition with Ekind
|
|
|
|
|
equal to E_Component.
|
|
|
|
|
* sem_ch13.adb (Check_Record_Representation_Clause): Likewise
|
|
|
|
|
for component-or-discriminant.
|
|
|
|
|
* sem_util.adb (Is_Fully_Initialized_Type): Likewise; rename Ent
|
|
|
|
|
to a more specific Comp.
|
|
|
|
|
* sem_warn.adb (Check_References): Likewise.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_warn.adb (Warn_On_Unassigned_Out_Parameter): Move inner
|
|
|
|
|
loop at the beginning of subprogram, so it is executed only
|
|
|
|
|
once; fix order in the "add an ad hoc" phrase.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_warn.adb (Check_References): Remove redundant condition.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Doug Rupp <rupp@adacore.com>
|
|
|
|
|
|
|
|
|
|
* vxworks7-cert-rtp-link__ppcXX.spec: New file.
|
|
|
|
|
* Makefile.rtl: Use it.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Yannick Moy <moy@adacore.com>
|
|
|
|
|
|
|
|
|
|
* libgnat/i-c.adb: Add ghost code.
|
|
|
|
|
(C_Length_Ghost): New ghost functions to query the C length of a
|
|
|
|
|
string.
|
|
|
|
|
(To_Ada): Insert constant Count_Cst where needed to comply with
|
|
|
|
|
SPARK. Homogeneize code between variants for char, wchar_t,
|
|
|
|
|
char16_t and char32_t. Use char16_nul and char32_nul
|
|
|
|
|
systematically instead of their value. Fix the type of index To
|
|
|
|
|
to be Integer instead of Positive, to avoid a possible range
|
|
|
|
|
check failure on an empty Target. Insert an exit statement to
|
|
|
|
|
avoid a possible overflow failure when the last index in Target
|
|
|
|
|
is Natural'Last (possibly on a small string as well).
|
|
|
|
|
* libgnat/i-c.ads: Add contracts.
|
|
|
|
|
(C_Length_Ghost): New ghost functions to query the C length of a
|
|
|
|
|
string.
|
|
|
|
|
* libgnat/s-os_lib.adb: Remove pragma Compiler_Unit_Warning
|
|
|
|
|
causing a spurious error during compilation of GNAT, as this
|
|
|
|
|
pragma is not needed anymore now that we bootstrap (stage1) with
|
|
|
|
|
the base compiler runtime.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* libgnarl/a-taside.ads (Activation_Is_Complete): Add
|
|
|
|
|
precondition.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Piotr Trojanek <trojanek@adacore.com>
|
|
|
|
|
|
|
|
|
|
* sem_ch3.adb (Check_Derived_Type): Rename local variables; fix
|
|
|
|
|
style in comment.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Yannick Moy <moy@adacore.com>
|
|
|
|
|
|
|
|
|
|
* libgnat/s-valboo.adb (First_Non_Space_Ghost): Move to
|
|
|
|
|
utilities.
|
|
|
|
|
(Value_Boolean): Prefix call to First_Non_Space_Ghost.
|
|
|
|
|
* libgnat/s-valboo.ads (First_Non_Space_Ghost): Move to
|
|
|
|
|
utilities.
|
|
|
|
|
(Is_Boolean_Image_Ghost, Value_Boolean): Prefix call to
|
|
|
|
|
First_Non_Space_Ghost.
|
|
|
|
|
* libgnat/s-valuer.adb (Scan_Raw_Real): Adapt to change of
|
|
|
|
|
function Scan_Exponent to procedure.
|
|
|
|
|
* libgnat/s-valueu.adb (Scan_Raw_Unsigned): Adapt to change of
|
|
|
|
|
function Scan_Exponent to procedure.
|
|
|
|
|
* libgnat/s-valuti.adb (First_Non_Space_Ghost): Function moved
|
|
|
|
|
here.
|
|
|
|
|
(Last_Number_Ghost): New ghost query function.
|
|
|
|
|
(Scan_Exponent): Change function with side-effects into
|
|
|
|
|
procedure, to mark in SPARK. Prove procedure wrt contract.
|
|
|
|
|
Change type of local P to avoid possible range check failure (it
|
|
|
|
|
is not known whether this can be activated by callers).
|
|
|
|
|
(Scan_Plus_Sign, Scan_Sign): Change type of local P to avoid
|
|
|
|
|
possible range check failure. Add loop invariants and assertions
|
|
|
|
|
for proof.
|
|
|
|
|
(Scan_Trailing_Blanks): Add loop invariant.
|
|
|
|
|
(Scan_Underscore): Remove SPARK_Mode Off.
|
|
|
|
|
* libgnat/s-valuti.ads (First_Non_Space_Ghost): Function moved
|
|
|
|
|
here.
|
|
|
|
|
(Last_Number_Ghost, Only_Number_Ghost, Is_Natural_Format_Ghost,
|
|
|
|
|
Scan_Natural_Ghost): New ghost query functions.
|
|
|
|
|
(Scan_Plus_Sign, Scan_Sign, Scan_Exponent, Scan_Trailing_Blanks,
|
|
|
|
|
Scan_Underscore): Add functional contracts.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Yannick Moy <moy@adacore.com>
|
|
|
|
|
|
|
|
|
|
* libgnat/s-imgboo.adb: Mark in SPARK.
|
|
|
|
|
* libgnat/s-imgboo.ads: Mark in SPARK. Change from Pure to
|
|
|
|
|
Preelaborate unit in order to be able to depend on
|
|
|
|
|
System.Val_Bool.
|
|
|
|
|
(Image_Boolean): Functionally specify the result of the
|
|
|
|
|
procedure by calling System.Val_Bool.Value_Boolean on the
|
|
|
|
|
result.
|
|
|
|
|
* libgnat/s-valboo.adb: Mark in SPARK.
|
|
|
|
|
(First_Non_Space_Ghost): New ghost function.
|
|
|
|
|
(Value_Boolean): Change type of L and F to avoid possible range
|
|
|
|
|
check failure on empty Str.
|
|
|
|
|
* libgnat/s-valboo.ads: Mark in SPARK. Duplicate with-clause
|
|
|
|
|
from body in the spec to be able to call
|
|
|
|
|
System.Val_Util.Only_Space_Ghost in the contract.
|
|
|
|
|
(First_Non_Space_Ghost): New ghost function computing the first
|
|
|
|
|
non-space character in a string.
|
|
|
|
|
(Is_Boolean_Image_Ghost): New ghost function computing whether a
|
|
|
|
|
string is the image of a boolean value.
|
|
|
|
|
(Value_Boolean): Add in precondition the conditions to avoid
|
|
|
|
|
raising Constraint_Error. This precondition is never executed,
|
|
|
|
|
and only used in proof, thanks to the use of pragma
|
|
|
|
|
Assertion_Policy. Given that precondition, the postcondition can
|
|
|
|
|
simply check the first non-space character to decide whether
|
|
|
|
|
True or False is read.
|
|
|
|
|
* libgnat/s-valuti.adb: Mark in SPARK, but use SPARK_Mode Off on
|
|
|
|
|
all subprograms not yet proved.
|
|
|
|
|
(Bad_Value): Annotate expected exception.
|
|
|
|
|
(Normalize_String): Rewrite to avoid possible overflow when
|
|
|
|
|
incrementing F in the first loop. Add loop invariants.
|
|
|
|
|
* libgnat/s-valuti.ads: Mark in SPARK.
|
|
|
|
|
(Bad_Value): Add Depends contract to avoid warning on unused S.
|
|
|
|
|
(Only_Space_Ghost): New ghost function to query if string has
|
|
|
|
|
only space in the specified range.
|
|
|
|
|
(Normalize_String): Add functional contract.
|
|
|
|
|
(Scan_Exponent): Mark spec as not in SPARK as this function has
|
|
|
|
|
side-effects.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Pascal Obry <obry@adacore.com>
|
|
|
|
|
|
|
|
|
|
* libgnat/g-socket.ads (Max_Name_Length): Initialize with
|
|
|
|
|
NI_MAXHOST.
|
|
|
|
|
|
|
|
|
|
2021-12-02 Pascal Obry <obry@adacore.com>
|
|
|
|
|
|
|
|
|
|
* libgnat/g-socket.ads: Minor style fix.
|
|
|
|
|
|
|
|
|
|
2021-12-01 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* einfo.ads (E_Decimal_Fixed_Point_Subtype): Fix pasto.
|
|
|
|
|