]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/ada/ChangeLog
[Ada] Efficiency improvement in bounded ordered containers
[thirdparty/gcc.git] / gcc / ada / ChangeLog
index f6e00851384dc28a7e516d99c75ce25cb87ab6bc..f8f43c00441c2913b77ec35b15aefef12ea00cc0 100644 (file)
@@ -1,3 +1,215 @@
+2019-08-20  Bob Duff  <duff@adacore.com>
+
+       * libgnat/a-cborma.adb, libgnat/a-cborse.adb (Clear): Repeatedly
+       call Delete. This avoids clearing the free list, which
+       substantially speeds up future Delete operations.
+
+2019-08-20  Bob Duff  <duff@adacore.com>
+
+       * sem_ch13.adb (Component_Order_Check): New procedure to check
+       for out-of-order clauses.
+       * warnsw.ads, warnsw.adb: New -gnatw_r switch.
+       * doc/gnat_ugn/building_executable_programs_with_gnat.rst:
+       Document new switch.
+       * gnat_ugn.texi: Regenerate.
+
+2019-08-20  Bob Duff  <duff@adacore.com>
+
+       * sem_ch13.adb (Object_Size): Give an error for zero. It really
+       rubs me the wrong way that we don't honor "for T'Object_Size use
+       0;", but it's not important enough to fix. In any case, if we're
+       not going to obey the clause, we should give an error.
+
+2019-08-20  Bob Duff  <duff@adacore.com>
+
+       * errout.adb (Error_Msg_Internal): Set Warn_Err in case of
+       Is_Style_Msg.
+       * erroutc.adb (Output_Msg_Text): Do Warnings_Treated_As_Errors
+       processing and [warning-as-error] modification for style
+       messages.  Clean up code, simplify, remove unnecessary block
+       statement, add renaming of table entry.
+       * erroutc.ads (Warning_Treated_As_Error): Fix comment: no such
+       thing as Set_Warning_As_Error.
+       * opt.ads: Clean up comments and move related declarations near
+       each other.
+       * par-prag.adb: Process Warning_As_Error. This is necessary
+       because many style warning happen during parsing.
+       * sem_prag.adb: Use new Acquire_Warning_Match_String.
+       * sem_util.ads, sem_util.adb (Acquire_Warning_Match_String): New
+       function shared by par-prag.adb and sem_prag.adb. Replaces the
+       procedure in sem_prag.adb. Avoid use of global variables.
+       * stringt.ads, stringt.adb (To_String): New function to convert
+       String_Id to String.
+       * doc/gnat_rm/implementation_defined_pragmas.rst: Document the
+       new feature.
+       * gnat_rm.texi: Regenerate.
+
+2019-08-20  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * lib.ads: Add with clause for GNAT.HTable.
+       Add pragma Inline for Is_Loaded and alphabetize the list.
+       (Unit_Name_Table_Size): New constant.
+       (Unit_Name_Header_Num): New subtype.
+       (Unit_Name_Hash): New function declaration.
+       (Unit_Names): New simple hash table.
+       (Init_Unit_Name): New procedure declaration.
+       * lib.adb (Set_Unit_Name): Unregister the old name in the table,
+       if any, and then register the new name.
+       (Init_Unit_Name): New procedure.
+       (Is_Loaded): Reimplement using a lookup in the names table.
+       (Remove_Unit): Unregister the name.
+       (Unit_Name_Hash): New function.
+       * lib-load.adb (Create_Dummy_Package_Unit): Call Init_Unit_Name.
+       (Load_Unit): Use a lookup in the names table to find out whether
+       the unit has already been loaded.  Call Init_Unit_Name and then
+       Remove_Unit if the loading has failed.
+       (Make_Child_Decl_Unit): Call Init_Unit_Name.
+       (Make_Instance_Unit): Likewise.
+       * lib-writ.adb (Ensure_System_Dependency): Likewise.
+
+2019-08-20  Bob Duff  <duff@adacore.com>
+
+       * sem_ch13.adb (Record_Hole_Check): Initialize After_Last.
+
+2019-08-20  Piotr Trojanek  <trojanek@adacore.com>
+
+       * impunit.adb (Get_Kind_Of_Unit): Revert change for adapting
+       this routine for gnatprove.
+
+2019-08-20  Arnaud Charlet  <charlet@adacore.com>
+
+       * doc/gnat_rm/implementation_defined_pragmas.rst: Document
+       requirements for Pragma Lock_Free.
+       * gnat_rm.texi: Regenerate.
+
+2019-08-20  Philippe Gil  <gil@adacore.com>
+
+       * bindgen.adb (Gen_Main): Set gnat_argc/gnat_argv to argc/argv
+       only when still uninitialized.
+
+2019-08-20  Bob Duff  <duff@adacore.com>
+
+       * libgnat/g-comlin.ads (Exit_From_Command_Line): Fix
+       documentation for GNAT.Command_Line.
+
+2019-08-20  Pierre-Marie de Rodat  <derodat@adacore.com>
+
+       PR ada/91492
+       * gcc-interface/lang.opt (-fdump-scos): Add missing dot at the
+       end of the documentation.
+
+2019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * gcc-interface/misc.c (default_pass_by_ref): Update call to
+       pass_by_reference.
+
+2019-08-19  Bob Duff  <duff@adacore.com>
+
+       * doc/gnat_rm/implementation_advice.rst: Fix documentation for
+       stream oriented attributes.
+       * gnat_rm.texi: Regenerate.
+
+2019-08-19  Gary Dismukes  <dismukes@adacore.com>
+
+       * einfo.ads (E_Function, E_Procedure): Update comments to
+       reflect that Renamed_Entity is also used for nongeneric
+       subprograms.
+
+2019-08-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * sem_prag.adb (Is_Before_First_Decl): Deal with rewritten
+       pragmas.
+
+2019-08-19  Bob Duff  <duff@adacore.com>
+
+       * sem_warn.adb (Warn_On_Unreferenced_Entity): Suppress warning
+       on formal parameters of dispatching operations.
+
+2019-08-19  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_res.adb (Resolve_Call): A call to an expression function
+       freezes when expander is active, unless the call appears within
+       the body of another expression function,
+
+2019-08-19  Dmitriy Anisimkov  <anisimko@adacore.com>
+
+       * libgnat/s-os_lib.ads, libgnat/s-os_lib.adb (To_Ada, To_C): New
+       routines.
+
+2019-08-19  Bob Duff  <duff@adacore.com>
+
+       * exp_attr.adb (Attribute_Valid): Correct the handling of
+       private types where the full type is modular. System.Address is
+       an example. Otherwise, we convert uncheckedly to a signed type,
+       so we get an incorrect range 0 .. -1, for which all values will
+       fail.  The 'Valid attribute is illegal for such types, but we
+       generate such illegal attribute_references for 'Valid_Scalars,
+       and we generate 'Valid_Scalars when the -gnateV switch is used.
+       Rename Btyp --> PBtyp to avoid hiding the outer Btyp, which was
+       confusing.
+       * libgnat/a-except.adb: Set the Exception_Raised component.
+       Otherwise, we have incorrect reads of invalid data.
+
+2019-08-19  Pierre-Marie de Rodat  <derodat@adacore.com>
+
+       * libgnat/a-cgaaso.ads, libgnat/a-cgarso.ads,
+       libgnat/a-cogeso.ads, libgnat/a-contai.ads,
+       libgnat/a-locale.ads: Import documentation from the RM.
+
+2019-08-19  Jerome Guitton  <guitton@adacore.com>
+
+       * Makefile.rtl (system.o): New target to add generation of
+       target properties.
+       * gcc-interface/Makefile.in (install-gnatlib): Install
+       ada_target_properties.
+
+2019-08-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * inline.adb (Add_Inlined_Body): Do not special-case instances
+       that are compilation units.
+       (Add_Pending_Instantiation): Likewise.
+       (Instantiate_Body): Skip instantiations that are compilation
+       units and have already been performed.
+       * sem_ch12.adb (Needs_Body_Instantiated): Do not special-case
+       instances that are compilation units.
+       (Load_Parent_Of_Generic): Be prepared for parent that is a
+       compilation unit but whose instantiation node has not been
+       replaced.
+
+2019-08-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * inline.adb (Initialize, Lock): Deal with
+       Called_Pending_Instantiations.
+
+2019-08-19  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch6.adb (Check_Synchronized_Overriding): Complete
+       predicate that applies legality check in 9.4 (11.9/2): if an
+       inherited subprogram is implemented by a protected procedure or
+       entry, its first paarameter must be out, in_out or
+       access_to_varible.
+
+2019-08-19  Javier Miranda  <miranda@adacore.com>
+
+       PR ada/65696
+       * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims):
+       Adding formal to specify how many predefined primitives are
+       inherited from the parent type.
+       * exp_disp.adb (Number_Of_Predefined_Prims): New subprogram.
+       (Make_Secondary_DT): Compute the number of predefined primitives
+       of all tagged types (including tagged types not defined at
+       library level).  Previously we unconditionally relied on the
+       Max_Predef_Prims constant value when building the dispatch
+       tables of tagged types not defined at library level (thus
+       consuming more memory for their dispatch tables than required).
+       (Make_DT): Compute the number of predefined primitives that must
+       be inherited from their parent type when building the dispatch
+       tables of tagged types not defined at library level. Previously
+       we unconditionally relied on the Max_Predef_Prims constant value
+       when building the dispatch tables of tagged types not defined at
+       library level (thus copying more data than required from the
+       parent type).
+
 2019-08-19  Bob Duff  <duff@adacore.com>
 
        * sem_ch13.adb (Record_Hole_Check): Procedure to check for holes