PR c++/50207
* class.c (finish_struct_1): Complain if the first field is
artificial.
Co-Authored-By: Jason Merrill <jason@redhat.com>
From-SVN: r178276
2011-08-29 Robert Dewar <dewar@adacore.com>
* sem_ch10.adb, a-coorse.adb, exp_dist.adb, exp_ch3.adb: Minor
reformatting.
* gcc-interface/Make-lang.in: Update dependencies.
2011-08-29 Yannick Moy <moy@adacore.com>
* alfa.ads (Name_Of_Heap_Variable): New constant name.
* lib-xref-alfa.adb, lib-xref.adb, lib-xref.ads (Drefs): New global
table to hold dereferences.
(Add_ALFA_Xrefs): Take into account dereferences as special
reads/writes to the variable "HEAP".
(Enclosing_Subprogram_Or_Package): Move subprogram here.
(Generate_Dereference): New procedure to store a read/write dereferencew
in the table Drefs.
* put_alfa.adb (Put_ALFA): Use different default than (0,0) used for
the special "HEAP" var.
* sem_ch4.adb (Analyze_Explicit_Dereference): Store read dereference
in ALFA mode.
* sem_util.adb (Note_Possible_Modification): Store write dereference
in ALFA mode.
From-SVN: r178252
2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch3.adb (Freeze_Type): Generate an accessibility check which
ensures that the level of the subpool access type is not deeper than
that of the pool object.
* sem_util.adb (Object_Access_Level): Expand to handle defining
identifiers.
* sem_res.adb (Resolve_Allocator): Add a guard to avoid examining the
subpool handle name of a rewritten allocator.
From-SVN: r178250
2011-08-29 Robert Dewar <dewar@adacore.com>
* impunit.adb, exp_ch4.adb, s-finmas.adb: Minor reformatting.
2011-08-29 Thomas Quinot <quinot@adacore.com>
* exp_dist.adb (TC_Rec_Add_Process_Element): For a choice with multiple
values, we generate multiple triples of parameters in the TypeCode.
Bump Choice_Index for each such triple so that a subsequent default
choice is associated with the correct index in the typecode.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* a-cdlili.adb (Iterate): Initialize properly an iterator over a null
container.
(First, Last): Handle properly an iterator over a null container.
2011-08-29 Bob Duff <duff@adacore.com>
* sem_ch10.adb (Analyze_With_Clause,Install_Withed_Unit): Abandon
processing if we run across a node with no Scope. This can happen if
we're with-ing an library-level instance, and that instance got errors
that caused "instantiation abandoned".
* sem_util.adb (Unit_Declaration_Node): Make it more robust, by raising
an exception instead of using Assert, so it won't go into an infinite
loop, even when assertions are turned off.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* a-coorse.adb: Proper handling of empty ordered sets.
From-SVN: r178249
2011-08-29 Thomas Quinot <quinot@adacore.com>
* a-except.adb, a-except-2005.adb: Minor comment rewording and
reformatting.
2011-08-29 Yannick Moy <moy@adacore.com>
* sem_ch3.adb (Array_Type_Declaration): Remove insertion of
declaration for Itypes in Alfa mode.
From-SVN: r178246
2011-08-29 Robert Dewar <dewar@adacore.com>
* a-cbhama.adb, a-cbhama.ads: Minor reformatting.
2011-08-29 Javier Miranda <miranda@adacore.com>
* sem_ch8.adb (Analyze_Subprogram_Renaming): Complete support for
renamings of formal subprograms when the actual for a formal type is
class-wide.
From-SVN: r178244
2011-08-29 Matthew Heaney <heaney@adacore.com>
* a-cbhama.ads, a-cbhase.ads (Move): Clear Source following assignment
to Target.
2011-08-29 Matthew Heaney <heaney@adacore.com>
* a-cborma.ads, a-cborse.ads (Cursor): Default-initialize all
components of record type.
* a-cborma.adb, a-cborse.adb (Move): Clear Source following assignmentw
to Target.
From-SVN: r178243
2011-08-29 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb, sem_util.adb, gnat1drv.adb, s-parint.ads: Minor
reformatting.
2011-08-29 Matthew Heaney <heaney@adacore.com>
* a-cbhama.ads, a-cbhase.ads (Cursor): Default-initialize all
components of record type.
2011-08-29 Bob Duff <duff@adacore.com>
* s-tassta.adb (Task_Wrapper): Handle and ignore exceptions propagated
by the termination handler.
From-SVN: r178241
2011-08-29 Yannick Moy <moy@adacore.com>
* sem_ch3.adb (Array_Type_Declaration): Create declarations for Itypes
created in Alfa mode, instead of inserting artificial declarations of
non-Itypes in the tree.
* sem_util.adb, sem_util.ads (Itype_Has_Declaration): New function to
know if an Itype has a corresponding declaration, as defined in
itypes.ads.
2011-08-29 Yannick Moy <moy@adacore.com>
* gnat1drv.adb: Minor rewrite.
2011-08-29 Bob Duff <duff@adacore.com>
* s-tasuti.adb (Make_Passive): Work around race condition in
Make_Independent, which can cause Wait_Count to be zero. So instead of
asserting that Wait_Count > 0, and then decrementing it, decrement it
only if Wait_Count > 0.
* s-taskin.ads (Wait_Count, Alive_Count, Awake_Count): All of these
should be nonnegative, so declare them Natural instead of Integer.
From-SVN: r178240
2011-08-29 Robert Dewar <dewar@adacore.com>
* exp_ch5.adb, sem_ch3.adb, a-cihama.adb, a-cihama.ads, exp_ch7.adb,
sem_ch5.adb, a-ciorse.adb, a-ciorse.ads, sem_ch12.adb, a-cidlli.adb,
a-cidlli.ads, sem_util.adb, sem_res.adb, gnat1drv.adb, a-except.adb,
a-except.ads, a-except-2005.ads, sem_ch4.adb, exp_disp.adb,
exp_aggr.adb, sem_ch13.adb, par-ch3.adb: Minor reformatting.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* s-auxdec-vms-alpha.adb: Add comments, remove some HT before labels.
2011-08-29 Vadim Godunko <godunko@adacore.com>
* s-parint.ads: Minor comment clarification.
2011-08-29 Vincent Celier <celier@adacore.com>
* prj.adb (Initialize): Make sure that new reserved words after Ada 95
may be used as identifiers.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* a-coinho.ads: Minor reformating.
From-SVN: r178239
2011-08-29 Pascal Obry <obry@adacore.com>
* exp_disp.adb: Minor comment fix.
(Make_Disp_Asynchronous_Select_Body): Properly initialize out parameters
to avoid warnings when compiling with -Wall.
(Make_Disp_Conditional_Select_Body): Likewise.
(Make_Disp_Timed_Select_Body): Likewise.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Analyze_Formal_Subprogram_Declaration): If default is
an entity name, generate reference for it.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* exp_ch5.adb (Expand_Iterator_Loop): Uniform handling of "X of S"
iterator form.
* sem_util.adb (Is_Iterator, Is_Reversible_Iterator): Yield True for
the class-wide type.
* sem_ch5.adb: Move some rewriting to the expander, where it belongs.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Check_Constrained_Object): Do not create an actual
subtype for an object whose type is an unconstrained union.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* par-ch3.adb (P_Array_Type_Definiation, P_Component_Items): "aliased"
is allowed in a component definition, by AI95-406.
2011-08-29 Matthew Heaney <heaney@adacore.com>
* a-chtgbo.adb (Generic_Iteration): Use correct overloading of Next.
2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
* a-except-2005.adb: Alphabetize all routines.
(Triggered_By_Abort): New routine.
* a-except-2005.ads (Triggered_By_Abort): New routine.
* a-except.adb Alphabetize all routines.
(Triggered_By_Abort): New routine.
* a-except.ads (Triggered_By_Abort): New routine.
* exp_ch7.adb: Update all comments involving the detection of aborts in
finalization code.
(Build_Object_Declarations): Do not generate code to detect the
presence of an abort at the start of finalization code, use a runtime
routine istead.
* rtsfind.ads: Add RE_Triggered_By_Abort to tables RE_Id and
RE_Unit_Table.
* sem_res.adb (Resolve_Allocator): Emit a warning when attempting to
allocate a task on a subpool.
* s-stposu.adb: Add library-level flag Finalize_Address_Table_In_Use.
The flag disables all actions related to the maintenance of
Finalize_Address_Table when subpools are not in use.
(Allocate_Any_Controlled): Signal the machinery that subpools are in
use.
(Deallocate_Any_Controlled): Do not call Delete_Finalize_Address which
performs costly task locking when subpools are not in use.
From-SVN: r178236
2011-08-29 Yannick Moy <moy@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): Restore expansion of tagged
types and dispatching calls in Alfa mode.
* lib-xref-alfa.adb (Collect_ALFA): Rewrite computation of
correspondance between body and spec scopes, to reuse utility functions
(Traverse_Declarations_Or_Statements): Protect access to body for stub
by testing the presence of the library unit for the body
* sem_ch6.adb (Set_Actual_Subtypes): take into account that in Alfa
mode the expansion of accept statements is skipped
* sem_util.adb, sem_util.ads (Unique_Entity): New function returning
the unique entity corresponding to the one returned by
Unique_Defining_Entity applied to the enclosing declaration of the
argument.
2011-08-29 Bob Duff <duff@adacore.com>
* treepr.ads: Improve debugging facilities. pn(x) no longer crashes in
gdb when x is not a node (it can be a node list, name_id, etc). pp is
an alias for pn. ppp is an alias for pt.
2011-08-29 Javier Miranda <miranda@adacore.com>
* exp_aggr.adb (Expand_Record_Aggregate): Use the top-level enclosing
aggregate to take a consistent decision on the need to convert into
assignments aggregates that initialize constant objects.
2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch4.adb (Expand_Allocator_Expression): Add a call to
Build_Allocate_Deallocate_Proc in order to handle allocation of
non-controlled objects on subpools.
* impunit.adb: Remove s-finmas and s-spsufi since they were never meant
to be end-user visible.
* s-finmas.adb: Add with and use clause for System.HTable.
Add an instantiation of Simple_HTable which provides a mapping between
the address of a controlled object and the corresponding
Finalize_Address used to clean up the object. The table is used when a
master is operating in heterogeneous mode.
(Attach): Explain why the input node is not verified on being already
attached.
(Delete_Finalize_Address): New routine.
(Detach): Add pragma Assert which ensures that a node is already
attached.
(Finalize): Add local variable Cleanup. Rewrite the iteration scheme
since nodes are no longer removed on traversal. Explain why node
detachment is undesirable in this case.
(Get_Finalize_Address): New routine.
(Hash): New routine.
(Is_Empty_List): Removed.
(pm): Renamed to Print_Master. Add output for discriminant
Is_Homogeneous.
Comment reformatting.
(Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine.
* s-finmas.ads: Various comments additions / improvements.
Type Finalization_Master has a discriminant which determines the mode of
operation.
(Delete_Finalize_Address): New routine.
(Get_Finalize_Address): New routine.
(pm): Renamed to Print_Master.
(Set_Finalize_Address (Address, Finalize_Address_Ptr)): New routine.
* s-stposu.adb: Add with clause for System.Address_Image; Add with and
use clause for System.IO.
(Allocate_Any_Controlled): Add machinery to set TSS primitive
Finalize_Address depending on the mode of allocation and the mode of
the master.
(Deallocate_Any_Controlled): Remove the relation pair object -
Finalize_Address regardless of the master mode. Add comment explaining
the reason.
(Detach): Ensure that fields Prev and Next are null after detachment.
(Finalize_Pool): Remove local variable Next_Ptr. Rewrite the iteration
scheme to check whether the list of subpools is empty. There is no
longer need to store the next subpool or advance the current pointer.
(Is_Empty_List): New routine.
(Print_Pool): New routine.
(Print_Subpool): New routine.
* s-stposu.ads: Various comments additions / improvements.
Field Master of type Root_Subpool is now a heterogeneous collection.
(Print_Pool): New routine.
(Print_Subpool): New routine.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* exp_ch5.adb (Expand_N_Iterator_Loop): Implement Ada2012 loop iterator
forms, using aspects of container types.
* sem_ch3.adb (Find_Type_Name): Preserve Has_Delayed_Aspects and
Has_Implicit_Dereference flags, that may be set on the partial view.
* sem_ch4.adb (Process_Overloaded_Indexed_Component): Prefix may be a
container type with an indexing aspect.
(Analyze_Quantified_Expression): Analyze construct with expansion
disabled, because it will be rewritten as a loop during expansion.
(Try_Container_Indexing): The prefix itself may be a container type
with an indexing aspect, as with a vector of vectors.
* sem_ch5.adb (Analyze_Iteration_Scheme): In a generic context, analyze
the original doamin of iteration, for name capture.
(Analyze_Iterator_Specification): If the domain is an expression that
needs finalization, create a separate declaration for it.
For an iterator with "of" retrieve default iterator info from aspect of
container type. For "in" iterator, retrieve type of Iterate function.
* sem_ch13.adb (Check_Iterator_Function): Fix typo.
(Check_Aspect_At_End_Of_Declaration): Make type unfrozen before
analysis, to prevent spurious errors about late attributes.
* sprint.adb: Handle quantified expression with either loop or iterator
specification.
* a-convec.ads, a-convec.adb: Iterate function returns a reversible
iterator.
From-SVN: r178235
2011-08-29 Vincent Celier <celier@adacore.com>
* make.adb (Scan_Make_Arg): Take any option as is in packages Compiler,
Binder or Linker of the main project file.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* inline.adb (Add_Scopes_To_Clean): Exclude any entity within a generic
unit.
2011-08-29 Yannick Moy <moy@adacore.com>
* exp_ch9.adb: Partial revert of previous change for Alfa mode
2011-08-29 Yannick Moy <moy@adacore.com>
* exp_ch11.adb: Minor expansion of comment.
2011-08-29 Yannick Moy <moy@adacore.com>
* lib-xref-alfa.adb (Add_ALFA_Scope): Treat generic entities.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve_Arithmetic_Op): If the node has a universal
interpretation, set the type before resolving the operands, because
legality checks on an exponention operand need to know the type of the
context.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Analyze_Package_Instantiation): Do not set delayed
cleanups on a master if the instance is within a generic unit.
Complement to the corresponding fix to inline.adb for K520-030.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* exp_ch7.adb (Build_Raise_Statement): Raise PE instead of the current
occurrence.
* exp_intr.adb: Minor comment fix.
2011-08-29 Bob Duff <duff@adacore.com>
* sem_ch13.adb (Analyze_Aspect_Specifications): Fix cases where
Delay_Required was used as an uninitialized variable.
From-SVN: r178233
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb: Remove Build_Explicit_Dereference.
* sem_util.adb, sem_util.ads (Build_Explicit_Dereference): Moved here
from sem_res.adb, used in analysis of additional constructs.
(Is_Iterator, Is_Reversible_Iterator): New predicates for Ada2012
expansion of iterators.
(Is_Object_Reference): Recognize variables rewritten as explicit
dereferences in Ada2012.
* snames.ads-tmpl: Add Has_Element, Forward_Iterator,
Reversible_Iterator names, for expansion of Ada2012 iterators.
* aspects.ads, aspects.adb (Find_Aspect): Utility.
* a-cdlili.ads, a-cdlili.adb: Add new iterator machinery to doubly
linked list container.
* a-coinve.ads, a-coinve.adb: Ditto for indefinite vector containers.
* a-coorse.ads, a-coorse.adb: Ditto for ordered sets.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* a-cohama.adb, a-cohama.ads: Add iterator primitives to hashed map
containers.
2011-08-29 Vincent Celier <celier@adacore.com>
* make.adb (Gnatmake): Get the maximum number of simultaneous
compilation processes after the Builder switches has been scanned, as
there may include -jnn.
2011-08-29 Matthew Heaney <heaney@adacore.com>
* a-chtgbo.adb (Generic_Equal): Use correct overloading of Next.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* gnatcmd.adb (GNATCmd): On OpenVMS, truncate the length of
GNAT_DRIVER_COMMAND_LINE to 255.
2011-08-29 Pascal Obry <obry@adacore.com>
* freeze.adb, sem_ch8.adb, a-convec.adb, a-convec.ads: Minor
reformatting and style fix (class attribute casing).
2011-08-29 Yannick Moy <moy@adacore.com>
* exp_ch11.adb: Yet another case where expansion should be common
between CodePeer and Alfa.
2011-08-29 Yannick Moy <moy@adacore.com>
* exp_ch9.adb: Partial revert of previous change for Alfa mode.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Matches_Limited_With_View): The limited views of an
incomplete type and its completion match.
From-SVN: r178228
2011-08-29 Emmanuel Briot <briot@adacore.com>
* make.adb, prj.adb, prj.ads (Compute_All_Imported_Projects): Also
initialize aggregated projects.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Find_Renamed_Entity): Within an instance, use scope
depth of candidates to resolve a potentially spurious ambiguity between
two visible subprograms.
From-SVN: r178225
2011-08-29 Johannes Kanig <kanig@adacore.com>
* exp_ch4.adb (Expand_Quantified_Expression): Do not expand in ALFA
mode.
* gnat1drv.adb (Adjust_Global_Switches): Set
Use_Expressions_With_Actions to False in ALFA mode.
* sem_res.adb (Resolve_Quantified_Expression): Simpler treatment in
ALFA mode.
From-SVN: r178223
2011-08-29 Yannick Moy <moy@adacore.com>
* exp_ch13.adb (Expand_N_Freeze_Entity): Do nothing in Alfa mode.
* exp_ch9.adb: Do not expand tasking constructs in Alfa mode.
* gnat1drv.adb (Adjust_Global_Switches): Suppress the expansion of
tagged types and dispatching calls in Alfa mode.
2011-08-29 Javier Miranda <miranda@adacore.com>
* sem_ch3.adb (Process_Discriminants): Add missing check to ensure that
we do not report an error on an Empty node.
2011-08-29 Geert Bosch <bosch@adacore.com>
* Makefile.rtl (GNATRTL_NONTASKING_OBJECTS): Add a-nllrar.o,
a-nlrear.o and a-nurear.o.
2011-08-29 Robert Dewar <dewar@adacore.com>
* freeze.adb: Minor code reorganization.
Minor reformatting.
* sem_util.adb, errout.adb, exp_ch11.adb, a-ngrear.adb, s-gearop.adb,
sem_ch6.adb: Minor reformatting
2011-08-29 Tristan Gingold <gingold@adacore.com>
* s-except.ads, s-except.adb: Provide dummy body.
2011-08-29 Yannick Moy <moy@adacore.com>
* sem_warn.adb (Within_Postcondition): Take into account the case of
an Ensures component in a Test_Case.
From-SVN: r178222
2011-08-29 Tristan Gingold <gingold@adacore.com>
* s-excdeb.ads, s-excdeb.adb: New files, created from s-except.
* rtsfind.ads (RTU_Id): Replaces System_Exceptions by
System_Exceptions_Debug
(RE_Unit_Table): Search RE_Local_Raise in System_Exceptions_Debug
* a-except.adb: With and use System.Exceptions_Debug instead of
System.Exceptions.
* a-except-2005.adb: Likewise.
* s-assert.adb: Likewise.
* s-except.adb, s-except.ads: Move debugging hooks to s-excdeb.
* Makefile.rtl: Add s-excdeb. Adjust compilation rule.
* gcc-interfaces/Makefile.in, gcc-interface/Make-lang.in: Add
s-excdeb. Update dependencies.
(GNATRTL_LINEARALGEBRA_OBJS): Remove a-nlrear.o a-nurear.o a-nllrar.o
as these no longer need external libraries.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve_Op_Expon): Additional check to reject an
exponentiation operator on universal values in a context that requires
a fixed-point type.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* raise-gcc.c (personnality_routine): Fix thinko. Set Ada occurrence
before calling notify_handled_exception.
* a-exextr.adb: Fix comment.
From-SVN: r178221
2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch4.adb (Expand_Allocator_Expression): Add code to set attribute
Finalize_Address of the access type's finalization master.
(Expand_N_Allocator): Add code to set attribute Finalize_Address of the
access type's finalization master. Add a guard to prevent
Associated_Storage_Pool from being set on .NET/JVM.
* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Add code to set
attribute Finalize_Address of the access type's finalization master.
* exp_ch7.adb (Make_Finalize_Address_Call): New routine.
* exp_ch7.ads (Make_Finalize_Address_Call): New routine.
* rtsfind.ads: Add RE_Set_Finalize_Address to tables RE_Id and
RE_Unit_Table.
* s-finmas.adb: Add with clause for System.Address_Image. Add with and
use clause for System.IO
(Detach): Relax the assertion, to be reinstated later.
(Finalize): Rewrite the iteration loop to avoid pointer comparison.
Relax the assertion on Finalize_Address, to be reinstated later.
(Is_Empty_List): New routine.
(pm): New debug routine.
(Set_Finalize_Address): New routine.
* s-finmas.ads (pm): New debug routine.
(Set_Finalize_Address): New routine.
* s-stposu.adb (Allocate_Any_Controlled): Code reformatting.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* a-exexpr-gcc.adb (GCC_Exception_Access, GNAT_GCC_Exception_Access):
Remove convention C.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* s-taprop-vms.adb (Get_Exc_Stack_Addr): Remove.
(Initialize_TCB): Remove Exc_Stack_Ptr initialization.
(Finalize_TCB): Remove its finalization.
(Initialize): Remove assignment of GET_Exc_Stack_Addr
* s-soflin.adb (NT_Exc_Stack): Remove
(Get_Exc_Stack_Addr_NT): Likewise.
(Get_Exc_Stack_Addr_Soft): Likewise.
* s-soflin.ads (Get_Exc_Stack_Addr_NT): Remove.
(Get_Exc_Stack_Addr): Likewise.
(Get_Exc_Stack_Addr_Soft): Likewise
* s-taspri-vms.ads (Exc_Stack_T): Remove.
(Exc_Stack_Ptr_T): Likewise.
(Private_Data): Remove Exc_Stack_Ptr component.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* raise-gcc.c (get_ip_from_context): New function. Factorize code.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* gnat_ugn.texi: Fix aix and x86-solaris info for run-time.
2011-08-29 Geert Bosch <bosch@adacore.com>
* s-gearop.ads (Back_Substitute, Diagonal, Forward_Eliminate,
L2_Norm, Swap_Column): New generic subprograms
* s-gearop.adb (Back_Substitute, Diagonal, Forward_Eliminate,
L2_Norm, Swap_Column): Implement new subprograms in order to
eliminate dependency on BLAS and LAPACK libraries in
Ada.Numerics.Generic_Real_Arrays and eventually also the complex
version. Forward_Eliminate/Back_Substitute can be used to put a
matrix in row echelon or reduced row echelon form using partial
pivoting.
* a-ngrear.adb: (Back_Substitute, Diagonal, Forward_Eleminate,
Swap_Column): Instantiate from System.Generic_Array_Operations.
("*", "abs"): Implement by instantiation from Generic_Array_Operations.
(Sqrt): Local function for simple computation of square root without
adding dependencies on Generic_Elementary_Functions.
(Swap): New subprogram to exchange floating point numbers.
(Inverse): Reimplement using Jordan-Gauss elimination.
(Jacobi): New procedure implementing Jacobi's method for computation
of eigensystems, based on Rutishauser's implementation.
(L2_Norm): Implement directly using the inner product.
(Sort_Eigensystem): Sort eigenvalue/eigenvector pairs in order of
decreasing eigenvalue as required by the Ada RM.
(Swap_Column): New helper procedure for Sort_Eigensystem.
Remove with of System.Generic_Real_BLAS and System.Generic_Real_LAPACK.
Add with of Ada.Containers.Generic_Anonymous_Array_Sort, for
Sort_Eigensystems.
2011-08-29 Thomas Quinot <quinot@adacore.com>
* put_scos.adb (Put_SCOs): Do not emit a newline for an empty
statements line.
From-SVN: r178220
2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
* s-finmas.adb (Finalize): Check Finalize_Address of the master rather
than the current node.
* s-finmas.ads: Move field Finalize_Address from type FM_Node to
Finalization_Master. The list headers have two fields instead of three.
This should fix alignment issue but subpool allocations are now
unusable. Alphabetize subprograms.
* s-stposu.adb (Allocate_Any_Controlled): Use the offset rather than
the size of the header when converting the beginning of the object to
a FM_Node. Set the master's Finalize_Address attribute if not already
set.
(Deallocate_Any_Controlled): Use the offset rather than the size of the
header when converting the beginning of the object to a FM_Node.
2011-08-29 Gary Dismukes <dismukes@adacore.com>
* exp_ch11.adb (Expand_N_Raise_Statement): Don't suppress expansion of
reraise when compiling for CodePeer.
2011-08-29 Arnaud Charlet <charlet@adacore.com>
* a-iteint.ads, Makefile.rtl: Add missing compilation of a-iteint.ads,
now needed by a-convec.adb. Fix warning.
2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
* exp_util.adb (Build_Allocate_Deallocate_Proc): Add a guard for the
processing of TSS routine Finalize_Address when compiling in
CodePeer_Mode.
2011-08-29 Thomas Quinot <quinot@adacore.com>
* a-strunb.ads, einfo.ads, g-comlin.ads, sem_ch6.adb,
sem_warn.adb: Minor reformatting.
2011-08-29 Emmanuel Briot <briot@adacore.com>
* prj-conf.adb (Get_Config_Switches): Also collect the list of
languages from aggregated projects.
2011-08-29 Yannick Moy <moy@adacore.com>
* lib-xref-alfa.adb, lib-xref.ads (Traverse_Declarations_Or_Statements,
Traverse_Handled_Statement_Sequence, Traverse_Package_Body,
Traverse_Package_Declaration, Traverse_Subprogram_Body,
Traverse_Compilation_Unit): Add a parameter Inside_Stubs so that bodies
for stubs are traversed too when parameter is set
(Traverse_All_Compilation_Units): Traverse without going inside stubs
(Traverse_Declarations_Or_Statements): Do the special traversing for
stubs when required.
* sem_util.adb, sem_util.ads (Get_Body_From_Stub): New function to
return subprogram or package body from stub.
(Is_Subprogram_Stub_Without_Prior_Declaration): New function to detect
stubs without prior subprogram decl.
2011-08-29 Vasiliy Fofanov <fofanov@adacore.com>
* gnat_ugn.texi: Fix typo.
From-SVN: r178219
2011-08-29 Hristian Kirtchev <kirtchev@adacore.com>
* s-stposu.adb (Allocate_Any_Controlled): Reimplement the mechanism
which accounts for size vs alignment issues and calculates the size of
the list header.
(Deallocate_Any_Controlled): Ditto.
(Nearest_Multiple_Rounded_Up): New routine.
From-SVN: r178218
2011-08-29 Tristan Gingold <gingold@adacore.com>
* a-exstat.adb (String_To_EO): Do no set Cleanup_Flag.
* a-exexda.adb (Set_Exception_C_Msg): Ditto.
(Set_Exception_Msg): Ditto.
* a-exexpr-gcc.adb (Setup_Current_Excep): Ditto. Do not set
Private_Data.
* a-except.adb, a-except-2005.adb (Save_Occurrence_No_Private): Remove.
Use Save_Occurrence instead of Save_Occurrence_No_Private.
(Raise_With_Msg): Remove Cleanup_Flag.
* a-except.ads, a-except-2005.ads (Exception_Occurrence): Remove
Clean_Flag and Private_Data components.
2011-08-29 Yannick Moy <moy@adacore.com>
* freeze.adb (Freeze_Record_Type): Ignore packing in Alfa mode, like
in CodePeer mode.
* sem_ch3.adb (Signed_Integer_Type_Declaration): Correct the generation
of an explicitly declared type, so that the base types of the original
type and this generated type are the same, and a "type" (not a subtype
like previously).
* errout.adb (Special_Msg_Delete): Do not issue messages "Size too
small" in Alfa mode, like in CodePeer mode.
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore rep
clauses in Alfa mode.
2011-08-29 Javier Miranda <miranda@adacore.com>
* exp_ch6.ads, exp_ch6.adb (Is_Null_Procedure): Move the spec of this
function to the package spec.
* sem_ch6.adb (Find_Corresponding_Spec, New_Overloaded_Entity): For
internally generated bodies of null procedures locate the internally
generated spec enforcing mode conformance.
(Is_Interface_Conformant): Ensure that the controlling formal of the
primitives match.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb (Analyze_Pragma, case Inline): In an instance, do not
reject the pragma if it appears to apply to a formal subprogram.
2011-08-29 Ed Schonberg <schonberg@adacore.com>
* exp_ch4.adb (Expand_Allocator_Expression): Use consistent name for
inner expression, to prevent double evaluation.
From-SVN: r178216
2011-08-29 Robert Dewar <dewar@adacore.com>
* a-convec.adb, exp_disp.adb: Minor reformatting.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* a-exexpr-gcc.adb (GNAT_GCC_Exception_Access): Set to convention C.
From-SVN: r178213
2011-08-29 Gary Dismukes <dismukes@adacore.com>
* exp_ch3.adb (Build_Record_Init_Proc.Build_Init_Procedure): Set
Exception_Handlers to No_List instead of Empty_List in the case where
there are no handlers.
2011-08-29 Tristan Gingold <gingold@adacore.com>
* gcc-interface/gigi.h (enum standard_datatypes): Add
ADT_reraise_zcx_decl
(reraise_zcx_decl): New macro.
* gcc-interface/trans.c (gnu_incoming_exc_ptr): New variable.
(gigi): Set reraise_zcx_decl.
(Exception_Handler_to_gnu_zcx): Save and restore gnu_incoming_exc_ptr.
(gnat_to_gnu): Handle N_Raise_Statement.
From-SVN: r178212