2011-08-07  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/Makefile.in (raise-gcc.o): Fix previous change.

	* gcc-interface/gigi.h (enumerate_modes): Fix formatting.

	* gcc-interface/trans.c (Subprogram_Body_to_gnu): Revert latest change.

2011-08-05  Nicolas Roche  <roche@adacore.com>

	* gcc-interface/Makefile.in: Don't use directly ../xgcc to build shared
	libgnat. Use rather the value of GCC_FOR_TARGET. Fix issue with
	canadian cross.
	* gcc-interface/Make-lang.in: Add support for canadian cross setting.

2011-08-05  Matthew Heaney  <heaney@adacore.com>

	* a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Child_Count, Child_Depth):
	subprogram bodies declared out-of-order.

2011-08-05  Yannick Moy  <moy@adacore.com>

	* sem_util.adb (Unique_Name): only prefix with "standard" the names of
	entities directly in package Standard, otherwise skip the standard
	prefix.

2011-08-05  Robert Dewar  <dewar@adacore.com>

	* a-cbmutr.adb: Minor reformatting
	(Allocate_Node): refactor node allocation algorithm

2011-08-05  Robert Dewar  <dewar@adacore.com>

	* opt.ads, opt.adb (Debug_Pragmas_Disabled): New switch.
	* sem_prag.adb (Analyze_Pragma, case Debug_Policy): Implement Disable
	mode.
	(Analyze_Pragma, case Check_Policy): Ditto.
	* sem_prag.ads (Check_Disabled): New function
	* snames.ads-tmpl: Add Name_Disable.

2011-08-05  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Document implementation-defined policy DISABLE for
	pragmas Assertion_Policy, Check_Policy, Debug_Policy.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case Inline): reject an Inline pragma
	that appears in a generic formal part and applies to a formal
	subprogram.

2011-08-05  Robert Dewar  <dewar@adacore.com>

	* a-cbmutr.ads: Minor reformatting.

2011-08-05  Matthew Heaney  <heaney@adacore.com>

	* a-comutr.adb, a-cimutr.adb, a-cbmutr.adb (Read): do not use T'Valid
	to check count, check sign of value instead.
	* a-comutr.adb, a-cimutr.adb (Write): return immediately if tree empty
	(Copy_Subtree): allocate copy of source element
	(Equal_Subtree): compare elements, not access objects

2011-08-05  Vincent Celier  <celier@adacore.com>

	* gnat_ugn.texi: Fix VMS alternative.

2011-08-05  Thomas Quinot  <quinot@adacore.com>

	* sem_ch11.adb: Add comment.

2011-08-05  Robert Dewar  <dewar@adacore.com>

	* exp_util.adb: Minor comment fix.

2011-08-05  Robert Dewar  <dewar@adacore.com>

	* scng.adb (Error_Unterminated_String): Improve flag position when
	comma present.

2011-08-05  Matthew Heaney  <heaney@adacore.com>

	* Makefile.rtl, impunit.adb: Added a-cbmutr.ad[sb] (bounded multiway
	tree containers).
	* a-cbmutr.ads, a-cbmutr.adb: This is the new Ada 2012 unit for bounded
	multiway tree containers.

2011-08-05  Robert Dewar  <dewar@adacore.com>

	* styleg.adb (Check_Comment): Implement comment spacing of 1 or 2
	* stylesw.adb: Implement -gnatyC to control comment spacing
	* stylesw.ads (Style_Check_Comments_Spacing): New switch (set by
	-gnatyc/C).
	* usage.adb: Add line for -gnatyC.

2011-08-05  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Document -gnatyC.
	* vms_data.ads: Implement COMMENTS1/COMMENTS2 (retaining COMMENTS as a
	synonym for COMMENTS2).

2011-08-05  Robert Dewar  <dewar@adacore.com>

	* par_sco.adb, sem_ch3.adb, scos.ads, a-iteint.ads, sem_ch12.adb,
	a-cimutr.adb, a-cimutr.ads, sem_util.ads, sem_res.adb, a-fihema.adb,
	sem_ch4.adb, lib-xref-alfa.adb, exp_disp.adb, a-comutr.adb,
	a-comutr.ads, lib-xref.adb: Minor reformatting.

2011-08-05  Robert Dewar  <dewar@adacore.com>

	* sem_ch11.adb (Analyze_Raise_Statement): Kill assignment to formal
	warning if there is an exception handler present.

2011-08-05  Pascal Obry  <obry@adacore.com>

	* a-iteint.ads: Fix copyright year.

2011-08-05  Thomas Quinot  <quinot@adacore.com>

	* par_sco.adb (Traverse_Declarations_Or_Statements): Do not generate a
	statement SCO for a USE clause or a representation clause.

2011-08-05  Yannick Moy  <moy@adacore.com>

	* lib-xref-alfa.adb (Collect_ALFA): generate the proper relation
	between body and spec for stub.
	(Detect_And_Add_ALFA_Scope): take into account subprogram stub
	* lib-xref.adb (Enclosing_Subprogram_Or_Package): in the case of a
	pragma precondition or postcondition, for which the enclosing
	subprogram or package in the AST is not the desired one, return empty.

2011-08-05  Thomas Quinot  <quinot@adacore.com>

	* g-expect.adb: Minor reformatting.

2011-08-05  Bob Duff  <duff@adacore.com>

	* a-fihema.adb: Comment out OS_Lib.

2011-08-05  Matthew Heaney  <heaney@adacore.com>

	* Makefile.rtl, impunit.adb: Added a-c[oi]mutr.ad[sb]
	(unbounded multiway tree containers) and a-iteint.ads.
	* a-comutr.ads, a-comutr.adb:
	This is the new Ada 2012 unit for unbounded multiway tree containers
	* a-cimutr.ads, a-cimutr.adb
	This is the new Ada 2012 unit for indefinite multiway tree containers
	* a-iteint.ads: New file.

2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* gcc-interface/Makefile.in (raise-gcc.o): Search $(srcdir)/../libgcc.

2011-08-05  Bob Duff  <duff@adacore.com>

	* sinfo.ads, sinfo.adb (Subpool_Handle_Name): New attribute for
	subpools.
	* par-ch4.adb (P_Allocator): Parse new subpool specification syntax.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Try_Container_Indexing): New procedure to implement the
	general indexing aspects of Ada2012. Called when analyzing indexed
	components when other interpretations fail.
	* sem_ch8.adb (Find_Direct_Name): check for implicit dereference only
	in an expression context where overloading is meaningful. This excludes
	the occurrence in an aspect specification (efficiency only).
	* sem_attr.adb (Analyze_Attribute): indicate that the attributes
	related to iterators can be set by an attribute specification, but
	cannot be queried.
	* sem_ch13.adb (Analyze_Aspect_Specifications): handle
	Constant_Indexing and Variable_Indexing.
	(Check_Indexing_Functions): New procedure to perform legality checks.
	Additional semantic checks at end of declarations.

2011-08-05  Sergey Rybin  <rybin@adacore.com>

	* tree_io.ads: Update ASIS_Version_Number because of the change of the
	order of calling Tree_Write/Tree_Read routines made for aspects.

2011-08-05  Bob Duff  <duff@adacore.com>

	* a-fihema.adb (Finalize): Fix race condition.

2011-08-05  Yannick Moy  <moy@adacore.com>

	* sem_ch12.adb (Analyze_Package_Instantiation,
	Need_Subprogram_Instance_Body): do not generate instance bodies in ALFA
	mode.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_type.adb (Specific_Type): in an instance, the type-specific
	operand of an equality check that involves null may have a private
	type. Use full view to determine legality of construct.

2011-08-05  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb (Get_Closure): Do not crash when it is not possible to
	delete or close the file when the call to gnatmake was successful.

2011-08-05  Yannick Moy  <moy@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): in ALFA mode, set
	Global_Discard_Names.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

	* sinfo.ads: comments on use of entity field for aspect specifications.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Reset_Entity): If the entity field of the associated
	node is not itself an entity but a selected component, it is a
	rewritten parameterless call to an en enclosing synchronized operation,
	and this expansion will be performed again in the instance, so there is
	no global information to preserve.

2011-08-05  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Set_All_DT_Position): Cleanup code and improve support
	for renamings of predefined primitives.
	(In_Predef_Prims_DT): New subprogram.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb, sem_util.ads (Check_Implicit_Dereference): If a
	possible interpretation of name is a reference type, add an
	interpretation that is the designated type of the reference
	discriminant of that type.
	* sem_res.adb (resolve): If the interpretation imposed by context is an
	implicit dereference, rewrite the node as the deference of the
	reference discriminant.
	* sem_ch3.adb (Analyze_Subtype_Declaration, Build_Derived_Record_Type,
	Build_Discriminated_Subtype): Inherit Has_Implicit_Dereference from
	parent type or base type.
	* sem_ch4.adb (Process_Indexed_Component,
	Process_Overloaded_Indexed_Component, Indicate_Name_And_Type,
	Analyze_Overloaded_Selected_Component, Analyze_Selected_Component):
	Check for implicit dereference.
	(List_Operand_Interps): Indicate when an implicit dereference is
	ambiguous.
	* sem_ch8.adb (Find_Direct_Name): Check for implicit dereference.

2011-08-05  Thomas Quinot  <quinot@adacore.com>

	* scos.ads: Update documentation of SCO table. Pragma statements can now
	be marked as disabled (using 'p' instead of 'P' as the statement kind).
	* par_sco.ads, par_sco.adb: Implement the above change.
	(Process_Decisions_Defer): Generate a P decision for the first parameter
	of a dyadic pragma Debug.
	* sem_prag.adb (Analyze_Pragma, case Debug): Mark pragma as enabled if
	necessary.
	* put_scos.adb: Code simplification based on above change.

2011-08-05  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, gnatcmd.adb, switch-c.adb, exp_attr.adb, make.adb,
	bindgen.adb, einfo.adb, sem_ch12.adb, sem_attr.adb, a-fihema.adb,
	a-fihema.ads, sem_elab.adb, sem_elab.ads, aspects.adb, opt.ads,
	prj-conf.adb, sem_ch13.adb, s-ficobl.ads: Minor reformatting

2011-08-05  Bob Duff  <duff@adacore.com>

	* a-stunau.ads, g-spipat.adb: Update comments.

2011-08-05  Bob Duff  <duff@adacore.com>

	* a-fihema.ads: Minor comment fix.
	* a-fihema.adb (Allocate, Deallocate): Assert that the alignment is
	correct.
	(Attach, Detach): Remove some unnecessary code.
	(Finalize): Remove Node_Ptr_To_Address, replace with a constant.

2011-08-05  Bob Duff  <duff@adacore.com>

	* a-fihema.ads, a-fihema.adb (Finalization_Collection): Avoid heap
	allocation for Objects component. This simplifies the code somewhat. It
	is also a little more efficient in the not-so-unusual case where there
	are no controlled objects allocated.
	Make Finalization_Started flag atomic.
	(Finalize): Avoid unnecessary detachment of items from the list.
	(pcol): Minor cleanup.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Analyze_Formal_Package_Declaration): reject a formal
	package whose name is the same as that of the generic unit, or its
	ultimate prefix.

2011-08-05  Bob Duff  <duff@adacore.com>

	* a-fihema.adb, a-fihema.ads: Minor comment improvements.
	* sem_ch3.adb, exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb:
	Minor comment fixes.

2011-08-05  Arnaud Charlet  <charlet@adacore.com>

	* make.adb (Linking_Phase): No longer need to set source search path
	before calling gnatlink in CodePeer mode.
	* gnatlink.adb (Gnatlink): No longer pass -gnat83/95/05/12 switch to
	gcc in CodePeer mode, since the binder generated file no longer has a
	'with Main'.
	* switch.ads, switch.adb (Is_Language_Switch): Removed.
	* switch-c.adb: Update comment.

2011-08-05  Thomas Quinot  <quinot@adacore.com>

	* exp_strm.adb, bindgen.adb, s-ficobl.ads: Minor reformatting.

2011-08-05  Nicolas Roche  <roche@adacore.com>

	* gnat_ugn.texi: Fix minor syntax error issue.

2011-08-05  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb (Get_Closure): Do not crash when it is not possible to
	delete or close the file when the call to gnatmake returns a non
	successful return code.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.adb (Expand_N_Type_Conversion): When expanding a predicate
	check, indicate that the copy of the original node does not come from
	source, to prevent an infinite recursion of the expansion.

2011-08-05  Johannes Kanig  <kanig@adacore.com>

	* debug.adb: document switch -gnatd.G for gnat2why, which deactivates
	VC generation for subprogram bodies.

2011-08-05  Yannick Moy  <moy@adacore.com>

	* einfo.ads: Typo.
	* sem_ch3.adb (Signed_Integer_Type_Declaration): in ALFA mode, define
	the base type with the smallest allowed base type.

2011-08-05  Sergey Rybin  <rybin@adacore.com>

	* tree_gen.adb, tree_in.adb, aspects.adb: Fix tree read-write for
	aspects.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.ads: minor comment updates.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Analyze_Formal_Package_Declaration): in an
	instantiation and a formal package the compiler generates a package
	renaming declaration so that the generic name within the declaration
	is interpreted as a renaming of the instance. At the end of a formal
	package declaration, this renaming must become invisible.

2011-08-05  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Is_Init_Call): Reimplemented to avoid character
	comparison and rely on concrete entities instead.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

	* einfo.ads, einfo.adb (Has_Implicit_Dereference): new flag on types
	and discriminants, to indicate that the type has an access discriminant
	that supports implicit dereference.
	* snames.ads-tmpl: Add names of aspects and attributes related to
	Ada2012 iterators: constant_indexing, default_iterator,
	iterator_element, implicit_dereference, variable_indexing.
	* aspects.ads, aspects.adb: entries for iterator-related aspects.
	* sem_ch13.adb (Analyze_aspect_specifications): dummy entries for
	iterator-related aspects.
	* sem_attr.adb, exp_attr.adb Dummy entries for iterator-related aspects.

2011-08-05  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi, vms_data.ads: Extend the subsection about coupling
	metrics in gnatmetric to cover new kinds of coupling mentrics.

2011-08-05  Steve Baird  <baird@adacore.com>

	* bindgen.adb (Gen_CodePeer_Wrapper): Call Ada_Main_Program instead
	of calling the user-defined main subprogram.
	(Gen_Main):  Declare Ada_Main_Program and (if CodePeer_Mode
	is set) Call_Main_Subprogram ahead of, as opposed to
	inside of, Main.
	(Gen_Output_File_Ada): Remove CodePeer_Mode-conditional
	generation of a "with" of the user-defined main subprogram.
	Remove CodePeer_Mode-conditional call to Gen_CodePeer_Wrapper
	(which is now called from Gen_Main instead).

2011-08-05  Emmanuel Briot  <briot@adacore.com>

	* projects.texi: Added reference to the Makefile package.

2011-08-05  Thomas Quinot  <quinot@adacore.com>

	* exp_ch7.adb: Minor comment rewording.

2011-08-05  Ed Falis  <falis@adacore.com>

	* env.c: Fix comment.

2011-08-05  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_elab.adb (Is_Finalization_Procedure): Reimplemented to avoid
	character comparison and rely on concrete entities instead.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb: (Check_Private_Overriding): better error message,
	suggested by AI95-0068.

2011-08-05  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Find_Last_Init): Use Next_Suitable_Statement to retrieve
	the two potential initialization calls. This accounts for any
	access-before-elaboration checks which may precede the initialization
	calls.
	(Next_Suitable_Statement): New routine. Returns the next real statement
	after the input node while skipping generated checks.
	* sem_elab.adb (Check_A_Call): New formal parameter In_Init_Proc along
	with comment on usage.
	Do not generate Elaborate_All when the trigger is a finalization call
	coming from a type init proc.
	(Check_Elab_Call): Propagate the initialization procedure context to
	subsequent calls to Check_A_Call.
	(Check_Internal_Call_Continue): Propagate the initialization procedure
	context to subsequent calls to Check_Elab_Call.
	(Is_Finalization_Procedure): New routine. Returns True if the input
	entity denotes a [Deep_]Finalize routine.
	* sem_elab.ads (Check_Elab_Call): New formal parameter In_Init_Proc
	along with comment on usage.

2011-08-05  Vadim Godunko  <godunko@adacore.com>

	* s-atocou.ads: Add list of supported platforms.

2011-08-05  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb, restrict.adb: Correct style for or'ing Boolean variables

	* opt.ads (Disable_ALI_File): new Boolean flag
	* lib-writ.adb (Write_ALI): when Disable_ALI_File is set, do nothing

2011-08-05  Ed Falis  <falis@adacore.com>

	* env.c (__gnat_environ): Fix includes for RTPs and VTHREADS so that
	environ is properly defined.

2011-08-05  Vincent Celier  <celier@adacore.com>

	* make.adb (Compilation_Phase): Exit immediately when all objects have
	been found up to date, to avoid multiple exit messages.
	* prj-nmsc.adb (Add_Source): Allow duplicate source file names in the
	same project for languages with no compiler.
	* gnat_ugn.texi: Document compiler switch -gnateI and gnatmake switch
	-eI.
2011-08-05  Robert Dewar  <dewar@adacore.com>

	* exp_ch7.ads, sem_type.adb, make.adb, sem_prag.adb, sem_util.adb,
	sem_util.ads, sem_attr.adb, restrict.ads, sem_ch6.adb, prj-conf.adb,
	prj-conf.ads, s-atocou.ads, s-atocou.adb, s-atocou-x86.adb,
	s-atocou-builtin.adb: Minor reformatting.

2011-08-05  Yannick Moy  <moy@adacore.com>

	* exp_ch7.adb (Establish_Transient_Scope): in formal verification mode,
	if the node to wrap is a pragma check, this node and enclosed
	expression are not expanded, so do not apply any transformations here.
	* exp_prag.adb (Expand_Pragma_Check): document the need to avoid
	introducing transient scopes.

2011-08-05  Jose Ruiz  <ruiz@adacore.com>

	* adaint.c (__gnat_set_writable, __gnat_set_readable,
	__gnat_set_executable, __gnat_set_non_writable, __gnat_set_non_readable,
	__gnat_copy_attribs): On VxWorks 6.x and later, the required chmod
	routine is available, so we use the default implementation of these
	functions.
	* s-os_lib.ads (Copy_File, Copy_Time_Stamps): Document that there is
	support for copying attributes on VxWorks 6.

2011-08-05  Yannick Moy  <moy@adacore.com>

	* debug.adb: Remove use of -gnatd.D.
	* gnat1drv.adb (Adjust_Global_Switches): adjust switches for ALFA mode
	* opt.ads: Simplify variables for ALFA mode, to keep one only
	* restrict.adb, sem_prag.adb: Adapt treatment done for CodePeer mode
	to ALFA mode.

2011-08-05  Vincent Celier  <celier@adacore.com>

	* prj-conf.adb (Do_Autoconf): Look also for --RTS in
	Builder'Default_Switches.

2011-08-05  Vincent Celier  <celier@adacore.com>

	* makeusg.adb: Add lines for --create-map-file switches.

2011-08-05  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_Entity): For a subprogram, if a type in the
	profile is incomplete and the full view is available, replace it with
	the full view.
	* sem_ch6.adb (Possible_Freeze): if a type in the profile is
	incomplete, freezing the subprogram is delayed until the full view is
	frozen.
	* sem_type.adb (Disambiguate): an ambiguity between a user-defined
	fixed-point multiplication operator and the predefined operator is
	resolved in favor of the user-defined one.

2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* init.c [__alpha__ && __osf__] (__gnat_error_handler): Use
	CONST_CAST.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.ads, sem_unit.adb (Type_Without_Stream_Operation): determine
	whether a type lacks user-defined Read or Write operations, or has a
	component that lacks them.
	* sem_attr.adb (Check_Stream_Attribute): if restriction
	No_Default_Stream_Attributes is active, verify that all subcomponent
	types of the target have user-defined stream operations, and report
	error otherwise.
	* exp_ch3.adb (Stream_Operqtion_OK): use Type_Without_Stream_Operation.
	* exp_strm.adb: Build_Elementary_Input_Call,
	Build_Elementary_Write_Call): remove checks for restriction
	No_Default_Stream_Attributes, now checked in semantics.

2011-08-04  Vincent Celier  <celier@adacore.com>

	* prj-conf.ads, prj-conf.adb (Do_Autoconf): If there is no --RTS
	switches on the command line, look for all valid --RTS switches in the
	Builder switches and for each language use the first runtime name found
	to invoke gprconfig.
	(Get_Or_Create_Configuration_File): Warn if --RTS is specified on the
	command line and there is no auto-configuration.
	(Runtime_Name_Set_For): New function.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Build_Object_Declarations): Do not generate the
	elaborate initialization expression for variable Abort when processing
	a package body or a declaration.
	(Create_Finalizer): Propagate the package context when creating the
	exception-related variables.
	* exp_ch7.ads (Build_Object_Declarations): New formal parameter
	For_Package along with usage comment.

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Makefile.in: Clean up targets.
	Enable new package for atomic counters and copy-on-write implementation
	of unbounded strings on x86 platforms.
	* gcc-interface/Make-lang.in: Update dependencies.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* exp_ch7.adb: Minor reformatting.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* exp_strm.adb: Minor reformatting.

2011-08-04  Vadim Godunko  <godunko@adacore.com>

	* s-atocou.adb: Replace by dummy version and use on targets where atomic
	operations are not supported.
	* s-atocou-builtin.adb: Renamed from s-atocou.adb.
	* s-atocou-x86.adb: New file.
	* Makefile.rtl: Add s-atocou.o file

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

	* make.adb (Compile): Move setting of CodePeer_Mode to ...
	(Compilation_Phase): ... here.
	(Scan_Make_Arg): Now bind and link by default in CodePeer mode.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* Make-generated.in: Fix minor typo in comment.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* gnatls.adb: Use Prj.Env.Initialize_Default_Project_Path to retrieve
	the project path.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* a-coinho.adb: Minor reformatting.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* a-coinho.ads: Minor reformatting.

2011-08-04  Vadim Godunko  <godunko@adacore.com>

	* s-atocou.ads, s-atocou.adb: New files.
	* a-strunb-shared.ads, a-strunb-shared.adb, a-stwiun-shared.ads,
	a-stwiun-shared.adb, a-stzunb-shared.ads, a-stzunb-shared.adb: Remove
	direct use of GCC's atomic builtins and replace them by use of new
	atomic counter package.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* exp_strm.adb: better error message for No_Default_Stream_Attributes.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-tags.adb (Unregister_Tag): Replace the complex address arithmetic
	with a call to Get_External_Tag.
	* exp_ch7.adb (Build_Cleanup_Statements): Update the comment on
	subprogram usage. Remove the guard against package declarations and
	bodies since Build_Cleanup_Statements is no longer invoked in that
	context.
	(Build_Components): Initialize Tagged_Type_Stmts when the context
	contains at least one library-level tagged type.
	(Build_Finalizer): New local variables Has_Tagged_Types and
	Tagged_Type_Stmts along with associated comments on usage. Update the
	logic to include tagged type processing.
	(Create_Finalizer): Insert all library-level tagged type unregistration
	code before the jump block circuitry.
	(Expand_N_Package_Body): Remove the call to Build_Cleanup_Statements.
	(Expand_N_Package_Declaration): Remove the call to
	Build_Cleanup_Statements.
	(Process_Tagged_Type_Declaration): New routine. Generate a call to
	unregister the external tag of a tagged type.
	(Processing_Actions): Reimplemented to handle tagged types.
	(Process_Declarations): Detect the declaration of a library-level
	tagged type and carry out the appropriate actions.
	(Unregister_Tagged_Types): Removed. The machinery has been directly
	merged with Build_Finalizer.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* bindgen.ads, gnatlink.adb, sem_ch4.adb, gnatbind.adb, put_alfa.adb,
	gnatls.adb, exp_ch3.adb: Minor reformatting.

2011-08-04  Marc Sango  <sango@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Replace the message
	"invisible attribute of}" of the spark restriction violation in
	attribute reference by the simple message "invisible attribute of type".
	Indeed, the node value Error_Msg_Node_1 used is in conflit with the
	two insertion characters: '&' and '}'.

2011-08-04  Vadim Godunko  <godunko@adacore.com>

	* impunit.adb (Non_Imp_File_Names_12): Add "a-coinho".
	* a-coinho.ads, a-coinho.adb: New file.
	* Makefile.rtl: Add Ada.Containers.Indefinite_Holders.

2011-08-04  Nicolas Roche  <roche@adacore.com>

	* alfa_test.adb: Not all ali files are containing alfa information even
	if compiled with -gnatd.F. So suppress warning about missing ALFA
	information.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* lib-xref-alfa.adb (Add_ALFA_Scope): use non-empty unique name for
	scope.
	* put_alfa.adb: Check that scope name is not empty.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch3.adb (Stream_Operation_Ok): new predicate
	Needs_Elementary_Stream_Operation, to determine whether user-defined
	Read and Write attributes are available for the elementary components
	of the given type. If only the predefined attributes are available,
	then when restriction No_Default_Stream_Attributes is active the
	predefined stream attributes for the composite type cannot be created.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* bindgen.adb: Fix obsolete comments and names from Ada/C days.
	Put routines in alpha order

2011-08-04  Jose Ruiz  <ruiz@adacore.com>

	* gcc-interface/Makefile.in: Remove xenomai specific versions of system.
	* gcc-interface/Make-lang.in: Update dependencies.

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/lang.opt: Add AdaWhy language, simimlar to Ada.
	* gcc-interface/lang-specs.h: Add handling of AdaWhy specs (calls
	gnat1why).

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, make.adb, a-cohata.ads, sem_prag.adb, makeutl.adb,
	lib-xref-alfa.adb: Minor reformatting.

2011-08-04  Marc Sango  <sango@adacore.com>

	* sem_ch12.adb (Analyze_Generic_Package_Declaration,
	Analyze_Generic_Subprogram_Declaration, Analyze_Package_Instantiation,
	Analyze_Subprogram_Instantiation): Check absence of generic in SPARK
	mode.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

	* bindgen.adb (Gen_Adainit_C): Remove.
	(Gen_Adafinal_C): Ditto.
	(Gen_Elab_Externals_C): Ditto.
	(Gen_Elab_Calls_C): Ditto.
	(Gen_Elab_Order_C): Ditto.
	(Gen_Elab_Defs_C): Ditto.
	(Gen_Finalize_Library_C): Ditto.
	(Gen_Finalize_Library_Defs_C): Ditto.
	(Gen_Main_C): Ditto.
	(Gen_Output_File_C): Ditto.
	(Gen_Restrictions_C): Ditto.
	(Gen_Versions_C): Ditto.
	(Write_Info_Ada_C): Ditto.
	(Gen_Object_Files_Options): Call WBI instead of Write_Info_Ada_C
	(Gen_Output_File): Do not force Ada_Bind_File anymore.
	Always call Gen_Output_File_Ada.
	* gnatlink.adb (Begin_Info): Now a constant.
	(End_Info): Ditto.
	(Ada_Bind_File): Remove
	(Process_Args): Do not handle -A/-C.  Remove not Ada_Bind_File cases.
	* switch-b.adb (Scan_Binder_Switches): Do not handle -C.
	* gnatbind.adb (Gnatbind): Remove not Ada_Bind_File cases.
	* opt.ads (Ada_Bind_File): Remove.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* projects.texi: Document target-specific directory in default project
	path for gnatmake.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* gnatls.adb, prj-env.adb: Add $prefix/share/gpr to default project
	path in all cases .

2011-08-04  Yannick Moy  <moy@adacore.com>

	* sem_ch3.adb, sem_ch5.adb, sem_util.adb, sem_ch4.adb, sem_ch8.adb,
	opt.ads, lib-xref.ads: Code clean up.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* gnat_rm.texi: Update description of Test_Case
	* gnat_ugn.texi: Typo.

2011-08-04  Ed Falis  <falis@adacore.com>

	* adaint.c (__gnat_get_number_of_cpus): fix typo in last checkin.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch4.adb (Suitable_Element): Skip field _parent on .NET/JVM when
	it is of type Root_Controlled. This action eliminates fields Prev and
	Next from type equality.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* lib-xref-alfa.adb: Correct typo.

2011-08-04  Matthew Heaney  <heaney@adacore.com>

	* a-cohata.ads (Hash_Table_Type): default-initialize the Nodes
	component.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb (Check_Arg_Is_String_Literal): remove useless procedure
	(Analyze_Pragma): allow static string expression for name of Test_Case,
	instead of simply string literals.
	* sem_util.adb (Get_Name_From_Test_Case_Pragma): adapt to static string
	expressions.

2011-08-04  Vincent Celier  <celier@adacore.com>

	* makeutl.adb (Complete_Mains.Find_File_Add_Extension): Use canonical
	case suffixes to find truncated main sources.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

	* impunit.adb (Non_Imp_File_Names_95): Add g-tastus.
	s-stusta.adb (Compute_All_Task): Use Put_Line instead of Put.
	(Compute_Current_Task): Ditto.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

	* gnat_ugn.texi: Mention GNAT.Task_Stack_Usage.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* lib-xref-alfa.adb (Is_Global_Constant): new function that detects
	library-level constant.
	(Add_ALFA_Xrefs): ignore global constants in ALFA xref.
	* sem_res.adb (Resolve_Actuals): do not add cross-reference to Formal
	used as selector of parameter association, in ALFA mode.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* exp_ch5.adb, exp_ch7.adb, exp_util.adb, bindgen.adb, sem_prag.adb,
	s-tassta.adb, exp_ch4.adb, exp_disp.adb, s-stausa.adb: Minor
	reformatting.

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

	* make.adb (Linking_Phase): Set source search path before calling
	gnatlink in CodePeer mode.

2011-08-04  Javier Miranda  <miranda@adacore.com>

	* exp_ch7.adb (Expand_N_Package_Body, Expand_N_Package_Declaration):
	Remove code which takes care of building TSDs.
	* rtsfind.ads (RE_Check_Interface_Conversion): New entity.
	* exp_ch4.adb (Apply_Accessibility_Check): Add support for generating
	the accessibility check in VM targets.
	* exp_disp.adb (Make_VM_TSD): Spec moved to exp_disp.ads
	(Building_Static_DT): Now returns false for VM targets.
	(Build_VM_TSDs): Removed.
	(Expand_Interface_Conversion): Generate missing runtime check for
	conversions to interface types whose target type is unknown at compile
	time.
	(Make_VM_TSD): Add missing code to disable the generation of calls to
	Check_TSD if the tagged type is not defined at library level, or not
	has a representation clause specifying its external tag, or -gnatdQ is
	active.
	* exp_disp.ads (Build_VM_TSDs): Removed.
	(Make_VM_TSDs): Spec relocated from exp_disp.adb
	* sem_disp.adb (Check_Dispatching_Operation): No code required to
	register primitives in the dispatch tables in VM targets.
	* exp_ch3.adb (Expand_N_Object_Declaration): Remove wrong expansion of
	initialization of class-wide interface objects in VM targets.
	(Expand_Freeze_Record_Type): For VM targets call Make_VM_TSD (instead
	of Make_DT).

2011-08-04  Jerome Lambourg  <lambourg@adacore.com>

	* gnatlink.adb (Gnatlink): Correct missleading error message displayed
	when dotnet-ld cannot be found.

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

	* bindgen.adb: Simplify significantly generation of binder body file in
	CodePeer mode.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Prevent assert failure
	when compiling binder generated file in CodePeer mode (xxx'Elab_Spec
	not expanded).

2011-08-04  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb, sem.ads: Code cleanup.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

	* s-tassta.adb (Task_Wrapper): Rewrite the dynamic stack usage part.
	* s-stausa.adb, s-stausa.ads: Major rewrite. Now provides accurate
	results if possible.
	* s-stusta.adb (Print): Adjust after changes in s-stausa.
	* gnat_ugn.texi: Update dynamic stack usage section.

2011-08-04  Steve Baird  <baird@adacore.com>

	* bindgen.adb (Gen_CodePeer_Wrapper): new procedure.
	Generate (if CodePeer_Mode is set) a "wrapper" subprogram which
	contains only a call to the user-defined main subprogram.
	(Gen_Main_Ada) - If CodePeer_Mode is set, then
	call the "wrapper" subprogram instead of directly
	calling the user-defined main subprogram.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch5.adb (Expand_N_Case_Statement): Check the statements of all
	alternatives of a case statement for controlled objects. Rename local
	variable A to Dead_Alt.
	(Expand_N_If_Statement): Check the then and else statements of an if
	statement for controlled objects. Check the then statements of all
	elsif parts of an if statement for controlled objects.
	(Expand_N_Loop_Statement): Check the statements of a loop for controlled
	objects.
	* exp_ch7.adb (Process_Transient_Objects): Rewrite the condition which
	detects a loop associated with the expansion of an array object.
	Augment the processing of the loop statements to account for a possible
	wrap done by Process_Statements_For_Controlled_Objects.
	* exp_ch9.adb (Expand_N_Asynchronous_Select): Check the triggering
	statements and abortable part of an asynchronous select for controlled
	objects.
	(Expand_N_Conditional_Entry_Call): Check the else statements of a
	conditional entry call for controlled objects.
	(Expand_N_Selective_Accept): Check the alternatives of a selective
	accept for controlled objects.
	(Expand_N_Timed_Entry_Call): Check the entry call and delay
	alternatives of a timed entry call for controlled objects.
	* exp_ch11.adb (Expand_Exception_Handlers): Check the statements of an
	exception handler for controlled objects.
	* exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, Boolean)):
	Add formal parameter Nested_Constructs along with its associated
	comment.
	(Requires_Cleanup_Actions (Node_Id)): Update all calls to
	Requires_Cleanup_Actions.
	(Process_Statements_For_Controlled_Objects): New routine.
	* exp_util.ads (Process_Statements_For_Controlled_Objects): New
	routine. Inspect a node which contains a non-handled sequence of
	statements for controlled objects. If such an object is found, the
	statements are wrapped in a block.

2011-08-04  Bob Duff  <duff@adacore.com>

	* sem_type.adb (Covers): If T2 is a subtype of a class-wide type, we
	need to compare with Class_Wide_Type (T2), in order to get at the
	original class-wide type node.
	* sem_type.ads (Covers): Improve the comment.
	* einfo.ads (Class_Wide_Type): Improve the comment.
	* exp_intr.adb (Expand_Unc_Deallocation): Remove unnecessary setting of
	the type of the Deref.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* gnat_rm.texi: Document that Test_Case pragma can only appear on
	separate declarations.
	* sem_prag.adb (procedure Check_Identifier_Is_One_Of): new procedure to
	check identifier of pragma argument.
	(Chain_TC): check that no other test case associated to the same entity
	share the same name.
	(Check_Test_Case): disallow test case inside subprogram body
	(Analyze_Pragma): correct call to check identifier and not argument
	* sem_util.adb, sem_util.ads (Get_Name_From_Test_Case_Pragma): new
	function gets name from test case pragma.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* gnat_rm.texi: Document new pragma and aspect.
	* aspects.adb, aspects.ads (Aspect_Id): new value Aspect_Test_Case
	(No_Duplicates_Allowed): new constant array defining whether duplicates
	aspects of each kind can appear on the same declaration.
	* einfo.adb, einfo.ads (Spec_PPC_List): replace field with Contract
	field, which points to a node holding the previous Spec_PPC_List.
	* exp_ch9.adb, sem_ch6.adb, sem_prag.adb: Reach to Spec_PPC_List
	through the indirection with Contract.
	* exp_util.adb (Insert_Actions): raise Program_Error on N_Contract node
	* par-prag.adb (Prag): do nothing on Test_Case pragma
	* sem.adb (Analyze): abort on N_Contract, on which Analyze should not
	be called directly.
	* sem_attr.adb (Analyze_Attribute): allow attribute 'Result in
	component Ensures of Test_Case.
	* sem_ch12.adb, sem_ch6.adb, sem_ch9.adb
	(Analyze_Generic_Subprogram_Declaration,
	Analyze_Subprogram_Instantiation,
	Analyze_Abstract_Subprogram_Declaration,
	Analyze_Subprogram_Body_Helper,
	Analyze_Subprogram_Specification, Analyze_Entry_Declaration):
	insert contract in subprogram node at point of definition
	* sem_ch13.adb
	(Aspect_Loop): do not raise error on duplicate Test_Case aspect
	(Analyze_Aspect_Specifications): analyze Test_Case aspect and create
	corresponding pragma
	(Check_Aspect_At_Freeze_Point): raise Program_Error on Test_Case aspect
	* sem_ch3.adb (Analyze_Declarations): insert analysis of test-cases,
	similar to the analysis of pre/post
	(Derive_Subprogram): insert contract in subprogram node at point of
	derivation.
	* sem_prag.adb, sem_prag.ads
	(Check_Arg_Is_String_Literal, Check_Identifier):
	new checking procedures to be called in treatment of pragmas
	(Check_Test_Case): new procedure to check that a Test_Case aspect or
	pragma is well-formed. This does not check currently that 'Result is
	used only in the Ensures component of a Test_Case.
	(Analyze_Pragma): add case for Test_Case
	(Analyze_TC_In_Decl_Part): pre-analyze the Requires and Ensures
	components of a Test_Case.
	(Preanalyze_TC_Args): new procedure to preanalyze the boolean
	expressions in the 3rd (and 4th if present) arguments of a Test_Case
	pragma, treated as spec expressions.
	(Sig_Flags): add value -1 for Test_Case.
	* sem_util.adb, sem_util.ads (Get_Ensures_From_Test_Case_Pragma,
	Get_Requires_From_Test_Case_Pragma): getters for both expression
	components of a Test_Case.
	* sinfo.adb, sinfo.ads (N_Contract): new kind of node used as
	indirection between an entry or [generic] subprogram entity and its
	pre/post + test-cases.
	(Spec_PPC_List, Spec_TC_List, Set_Spec_PPC_List, Set_Spec_TC_List):
	get/set for fields of an N_Contract node.
	* snames.ads-tmpl (Name_Test_Case, Name_Ensures, Name_Mode,
	Name_Normal, Name_Requires, Name_Robustness, Pragma_Test_Case): new
	names and pragma for Test_Case.
	* sprint.adb (Sprint_Node): raise Program_Error on N_Contract node

2011-08-04  Vincent Celier  <celier@adacore.com>

	* gnat_ugn.texi: Improve documentation of gnatmake switch
	--source-info-file=.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Make_Final_Call): Add local variable Atyp (assertion
	type). Initialize Atyp to the appropriate type which is later checked
	for completion. Rewrite the assertion associated with private type
	completion.

2011-08-04  Ed Falis  <falis@adacore.com>

	* adaint.c: Add call to vxCpuConfiguredGet for VxWorks SMP to
	initialize the number of CPUs.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_type.adb (Disambiguate): New subsidiary routine
	In_Same_Declaration_List, to implement AI05-0020: a user-defined
	equality on an anonymous access type whose designated type is private
	does not lead to an ambiguity with the universal access equality
	operator in the body or child units of the defining package. The same
	is true for a multiplication operator on a private type completed with
	a fixed-point-type.

2011-08-04  Javier Miranda  <miranda@adacore.com>

	* opt.ads (Init_Or_Norm_Scalars_Config): Removed.
	(Normalize_Scalars_Config): Removed.
	* opt.adb
	(Register_Opt_Config_Switches): Remove registering config values of
	Init_Or_Norm_Scalars_Config and Normalize_Scalars_Config.
	(Restore_Opt_Config_Switches): Remove code which restores the values of
	Init_Or_Norm_Scalars and Normalize_Scalars. Recalculate value of
	Init_Or_Norm_Scalars.
	(Save_Opt_Config_Switches): Remove code which saves values of
	Init_Or_Norm_Scalars and Normalize_Scalars.
	(Set_Opt_Config_Switches): Remove code which restores config values of
	Init_Or_Norm_Scalars and Normalize_Scalars. Recalculate value of
	Init_Or_Norm_Scalars.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* frontend.adb (Frontend): remove previous patch to avoid full
	qualification in ALFA mode.
	* lib-xref-alfa.adb (Add_ALFA_Xrefs): use unique name for variables.
	* sem_util.adb, sem_util.ads (Unique_Name): new function to define a
	unique name for an entity, which could be used to identify the entity
	across compilation units.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* prj-env.adb
	(Initialize_Default_Project_Path): Add target specific directory
	($prefix/$target/lib/gnat) in front of project path in all cases
	(making gnatmake's behaviour consistent with gprbuild).
	* gnatcmd.adb, make.adb, prj-makr.adb, clean.adb:
	Pass target name from Sdefault to project subsystem.
	* gnatls.adb: Show new target specific default project directory.

2011-08-04  Johannes Kanig  <kanig@adacore.com>

	* cstand.adb: Add Information to Identifier in Standard
	(Identifer_For): Set Entity to the corresponding entity

2011-08-04  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi: Update doc on gnatcheck.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* lib-xref-alfa.adb (Add_ALFA_Xrefs): correct definition of ranges of
	xrefs in a scope.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* exp_prag.adb (Expand_Pragma_Check): in ALFA mode, return without
	performing expansion.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper,
	Analyze_Generic_Subprogram_Body): protect call to Process_PCCs so that
	it is not called in ALFA mode.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* make.adb, osint.adb, osint.ads (Reset_Command_Line_Files): not used
	after all, so removed.

2011-08-04  Sergey Rybin  <rybin@adacore.com>

	* vms_data.ads: Add missing VMS qualifiers.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* make.adb, makeutl.adb, osint.adb, osint.ads (Check_Mains): rebuild
	the list of files on the command line after processing it through
	Complete_Mains.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Build_Raise_Statement): Remove the specialized
	processing for .NET/JVM. These targets can now benefit from
	Raise_From_Controlled_Operation and they share the same processing with
	standard targets.
	(Establish_Transient_Scope): Remove the restriction for .NET/JVM.
	These targets need transient scopes in order to properly finalize short
	lived controlled objects.
	(Make_Handler_For_Ctrl_Operation): Remove the specialized processing for
	 NET/JVM. These targets can now benefit from
	Raise_From_Controlled_Operation and they share the same processing with
	standard targets.

2011-08-04  Geert Bosch  <bosch@adacore.com>

	* tracebak.c (STOP_FRAME): Stop at any next pointer outside the stack

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb (Has_Visible_Private_Ancestor): subsidiary routine to
	Expand_Record_Aggregate, to determine whether aggregate must be
	expanded into assignments. This is the case if the ancestor part is
	private, regarless of the setting of the flag Has_Private_Ancestor.

2011-08-04  Ed Falis  <falis@adacore.com>

	* vxaddr2line.adb: Add support for e500v2 and for Linux hosts

2011-08-04  Bob Duff  <duff@adacore.com>

	* sinfo.ads: Fix comment.

2011-08-04  Steve Baird  <baird@adacore.com>

	* bindgen.adb (Get_Ada_Main_Name): If CodePeer_Mode is set, then
	choose a package name in much the same way as is
	done for JGNAT when VM_Target /= No_VM, except that
	a slightly more distinctive prefix string is used.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* makeutl.adb (Complete_Mains): no longer accept unit names on the
	gnatmake command line.
	This behavior was never documented (and was supported only because of
	an early bug in the code). This case might lead to ambiguous cases
	(between unit names and truncated base names without suffixes).

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-tags.ads, a-tags.adb (Unregister_Tag): New routine.
	Remove the external tag of a tagged type from the internal hash table.
	* exp_ch7.adb (Build_Cleanup_Statements): Update the comment on the
	expanded usage of the routine. Strenghten the check for Is_Master. Add
	processing for tagged types.
	(Build_Finalizer): Create all the necessary lists used in finalizer
	creation when the processed context is a package that may contain
	tagged types.
	(Expand_Cleanup_Actions): Rename the call to Has_Controlled_Objects to
	Requires_Cleanup_Actions.
	(Expand_N_Package_Body): Package bodies may need clean up code
	depending on whether they contain tagged types.
	(Expand_N_Package_Declaration): Package declarations may need clean up
	code depending on whether they contain tagged types.
	(Unregister_Tagged_Types): New routine. Search through a list of
	declarations or statements, looking for non-abstract Ada tagged types.
	For each such type, generate code to unregister the external tag.
	* exp_util.adb (Has_Controlled_Objects (Node_Id)): Renamed to
	Requires_Cleanup_Actions.
	(Requires_Cleanup_Actions (List_Id, Boolean)): New routine. Search
	through a list of declarations or statements looking for non-abstract
	Ada tagged types or controlled objects.
	* exp_util.ads (Has_Controlled_Objects (Node_Id)): Renamed to
	Requires_Cleanup_Actions.
	(Has_Controlled_Objects (List_Id, Boolean)): Removed.
	* rtsfind.ads: Add entry RE_Unregister_Tag to tables RE_Id and
	RE_Unit_Table.

2011-08-04  Vincent Celier  <celier@adacore.com>

	* prj-env.adb (For_All_Source_Dirs.For_Project): Check if project Prj
	has Ada sources, not project Project, because if the root project
	Project has no sources of its own, all projects will be deemed without
	sources.

2011-08-04  Gary Dismukes  <dismukes@adacore.com>

	* bindgen.adb (Gen_Adainit_Ada): Move the generation of the declaration
	of the No_Param_Proc acc-to-subp type used for initialization of
	__gnat_finalize_library_objects so that it's declared at library level
	rather than nested inside of the adainit routine.

2011-08-04  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Make_DT): Generate code to check the external tag ONLY
	if the tagged type has a representation clause which specifies its
	external tag.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* einfo.ads, einfo.adb (Has_Private_Ancestor): now a flag on types.
	Remove previous procedure with that name.
	* sem_ch3.adb (Build_Derived_Record_Type): set Has_Private_Ancestor
	when appropriate.
	* sem_aggr.adb (Resolve_Extension_Aggregate): if the ancestor part is a
	subtype mark, the ancestor cannot have unknown discriminants.
	(Resolve_Record_Aggregate): if the type has invisible components
	because of a private ancestor, the aggregate is illegal.

2011-08-04  Vincent Celier  <celier@adacore.com>

	* switch-m.adb (Normalize_Compiler_Switches): Recognize and take into
	account switches -gnat2005, -gnat12 and -gnat2012.

2011-08-04  Bob Duff  <duff@adacore.com>

	* s-tasdeb.ads: Minor comment fix.

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

	* gnatlink.adb (Gnatlink): Pass -gnat83/95/05/12 switch to gcc in
	CodePeer mode.
	* switch.ads, switch.adb (Is_Language_Switch): New function.

2011-08-04  Vincent Celier  <celier@adacore.com>

	* switch-c.adb: Minor comment addition.

2011-08-04  Vincent Celier  <celier@adacore.com>

	* vms_conv.adb (Process_Argument): Fail graciously when qualifier
	ending with '=' is followed by a space (missing file name).

2011-08-04  Pascal Obry  <obry@adacore.com>

	* g-regist.ads: Fix size of HKEY on x86_64-windows.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Analyze_Associations): New routine
	Check_Overloaded_Formal_Subprogram to reject a formal package when
	there is a named association or a box initialisation for an overloaded
	formal subprogram of the corresponding generic.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* alfa.ads (ALFA_Xref_Record): add component for type of entity
	* get_alfa.adb, put_alfa.adb: Read and write new component of
	cross-reference.
	* lib-xref-alfa.adb (Collect_ALFA): generate new component.

2011-08-04  Pascal Obry  <obry@adacore.com>

	* urealp.adb: Minor reformatting.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

	* exp_ch7.adb (build_finalizer.process_declarations.processing_actions):
	Handle the case when Cleanup_Protected_Object returns Empty.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* frontend.adb (Frontend): only qualify names in non-ALFA mode

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Try_Class_Wide_Operation): if the context is a procedure
	call, ignore functions.

2011-08-04  Geert Bosch  <bosch@adacore.com>

	* urealp.adb (Equivalent_Decimal_Exponent): Avoid the use of floating
	point.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* makeutl.adb (Compute_Builder_Switches): no longer accept a unit name
	as an index for Builder'Switches. This conforms to the documentation.
	* make.adb (Insert_Project_Sources): avoid duplicate code

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* makeutl.adb (Complete_Mains): if the user has passed a relative file
	name on the command line (for instance "../dummy"), never assume it can
	be a unit name.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

	* bindgen.adb: Remove code the reference or create the
	Break_Start/__gnat_break_start procedure.
	* s-stalib.adb (Break_Start): Removed.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* make.adb, makeutl.adb, makeutl.ads (Compute_Builder_Switches): now
	shared with gprbuild.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* par-ch4.adb (P_Primary): preferentially issue an error message about
	a missing parenthesis arount a conditional or case expression in Ada
	2012 mode, if we detect that the alignment is not correct for a
	statement.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Process_Declarations): Do not consider the result of a
	tag-to-class-wide conversion as needing finalization actions.
	* exp_util.adb (Has_Controlled_Objects): Do not consider the result of
	a tag-to-class-wide conversion as needing finalization actions.
	(Is_Finalizable_Transient): The result of a tag-to-class-wide
	conversion does not need finalization actions.
	(Is_Tag_To_CW_Conversion): New routine.
	* exp_util.ads (Is_Tag_To_CW_Conversion): New routine. Determines
	whether an object is the result of a tag-to-class-wide conversion.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications): correct order in which
	the left-hand-side and right-hand-side of a conjunct are inserted when
	translating a pre- or postcondition
	* sem_ch6.adb: Correct typo in comment

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* gnat_rm.texi: Ravenscar does not prohibit dependence on
	Unchecked_Conversion and Unchecked_Deallocation.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* make.adb: Minor reformatting.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* prj.adb, prj.ads, makeutl.adb (Complete_Mains): search for the
	sources in the project and its imported projects, but not in the whole
	tree.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* make.adb: Remove debug trace.

2011-08-04  Vincent Celier  <celier@adacore.com>

	* makeutl.adb (Do_Complete): Get the absolute path name of a relative
	path in canonical form, to be able to compare path names on platforms
	such as Windows or Darwin.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* par_sco.adb (Traverse_Declarations_Or_Statements.Set_Statement_Entry):
	For a pragma (statement with C1 = 'P'), record the sloc of the pragma.
	* scos.ads: Update documentation accordingly.
	* put_scos.adb (Output_SCO_Line): Omit statement SCOs for disabled
	pragmas.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Bad_Attribute_For_Predicate): flag illegal use of
	attribute only if prefix type is scalar.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* make.adb, makeutl.adb, prj-env.adb (Check_Mains): put back support
	in gnatmake for specifying mains on the command line that do not belong
	to the main project. These mains must currently all belong to the same
	project, though.
	(Ultimate_Extension_Of): removed, since duplicated
	Ultimate_Extending_Project.

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

	* make.adb (Do_Codepeer_Globalize_Step): Removed. Use CodePeer_Mode
	instead.
	(CodePeer_Mode_String): New.
	(Linking_Phase, Binding_Phase): Call gnatlink with -P switch in
	CodePeer mode.
	(Scan_Make_Arg): Do not disable binding/linking phase in CodePeer mode.
	* bindgen.adb (Gen_Elab_Calls_Ada): Ignore subprograms in CodePeer
	mode, since no useful elaboration subprogram is needed by CodePeer.
	* gnatlink.adb (Gnatlink): Add support for -P switch (CodePeer mode).
	In this mode, compile binder file with -gnatC and do stop after this
	step.

2011-08-04  Vincent Celier  <celier@adacore.com>

	* exp_ch7.adb: Minor comment fix.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* exp_ch7.adb, make.adb, sem_ch10.adb, bindgen.adb, sem_res.adb,
	exp_ch4.adb, makeutl.adb: Minor reformatting.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* make.adb, makeutl.adb, makeutl.ads (Make): major refactoring.
	Create several new subprograms to move code out of Make. This makes the
	code more readable, removes code duplication, and is a preparation work
	for adding support for aggregate projects.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

	* s-po32gl.ads, s-po32gl.adb: New files.
	* exp_ch7.ads (Get_Global_Pool_For_Access_Type): New function.
	* exp_ch7.adb (Get_Global_Pool_For_Access_Type): New function.
	(Build_Finalization_Collection): Use it.
	* exp_ch4.adb (Complete_Controlled_Allocation): Ditto.
	* rtsfind.ads: System_Pool_32_Global, Re_Global_Pool_32_Object: New
	literals.
	* gcc-interface/Makefile.in: Use s-po32gl.o on VMS.
	* gcc-interface/Make-lang.in: Update dependencies.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* makeutl.adb (Complete_Mains): add support for specs with no suffix on
	the command line.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* make.adb, makeutl.adb (Complete_Mains): if a main specified on the
	command line is not a file name, also check whether it could be a unit
	name.

2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>

	* bindgen.adb (Gen_Finalize_Library_Ada): Factor out code to generate
	the header of the finalization routine.
	If the unit has no finalizer but is a body whose spec has one, then
	generate the decrement of the elaboration entity only.
	If the unit has a finalizer and is a spec, then do not generate the
	decrement of the elaboration entity.
	(Gen_Finalize_Library_C): Likewise.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Alignment_Of): New subsidiary routine.
	(Bounds_Size_Expression): Removed.
	(Double_Alignment_Of): New subsidiary routine.
	(Make_Finalize_Address_Stmts): New local variable Index_Typ. Account
	for a hole in the dope vector of unconstrained arrays due to different
	index and element alignments.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Allocator): diagnose task allocator that will
	raise program_error because body has not been seen yet.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Analyze_With_Clause): Protect against child unit with
	an unresolved name.

2011-08-04  Vincent Celier  <celier@adacore.com>

	* makeutl.adb (Do_Complete): Check absolute paths in canonical forms

2011-08-04  Yannick Moy  <moy@adacore.com>

	* alfa.adb, alfa.ads (Unique_Defining_Entity): move function from here
	* sem_util.adb, sem_util.ads (Unique_Defining_Entity): ...to here

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* sem_ch12.adb (Analyze_Package_Instantiation): Do not omit body for
	instantiation in RCI.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* make.adb: Share more code with gprbuild

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* projects.texi: Added documentation for the IDE'Gnat project file
	attribute.

2011-08-04  Nicolas Roche  <roche@adacore.com>

	* gnat_rm.texi: Minor editing.

2011-08-04  Javier Miranda  <miranda@adacore.com>

	* bindgen.adb (Gen_Adafinal_Ada): Do not differentiate the main case
	and the library case for VM targets.
	(Gen_Adainit_Ada): Likewise.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* g-altive.ads: Minor comment updates.
	* prj-nmsc.adb: Minor reformatting.

2011-08-04  Javier Miranda  <miranda@adacore.com>

	* opt.ads
	(Normalize_Scalars_Config): Value of the configuration switch set by
	pragma Normalize_Scalars when it appears in the gnat.adc file.
	(Normalize_Scalars): New field for record Config_Switches_Type. Used
	to save and restore settings of this pragma.
	* opt.adb
	(Register_Opt_Config_Switches, Save_Opt_Config_Switches,
	Restore_Opt_Config_Switches): Add missing support for Normalize_Scalars.

2011-08-04  Vincent Celier  <celier@adacore.com>

	* gnat_ugn.texi: Document gnatlink options -M and -M=mapfile

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

	* makeutl.adb: Minor reformatting.

2011-08-04  Olivier Hainque  <hainque@adacore.com>

	* g-altive.ads: Update comments to reflect that only the soft
	binding is available today.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* bindgen.adb, einfo.adb, sem_ch12.adb, s-tasren.adb, sem_res.adb,
	makeutl.adb, prj-nmsc.adb, opt.ads, prj-env.adb: Minor reformatting
	* gcc-interface/Make-lang.in: Update dependencies.

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

	* prj-env.adb: Remove local debug traces.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* checks.adb (Apply_Float_Conversion_Check): correct a typo where Lo_OK
	was used instead of Hi_OK, which could cause a read of an uninitialized
	value later on. Detected while working on the new warning.
	* exp_ch9.adb (Expand_N_Entry_Declaration): remove useless assignment
	to local variable.
	* sem_ch5.adb (Analyze_Assignment): set the last assignment component
	in more cases, in order to detect more unreferenced values.
	* sem_util.adb, sem_util.ads (Get_Enclosing_Object): return enclosing
	object for expression, if any.

2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_intr.adb (Expand_Binary_Operator_Call): Look at the RM size of
	the operand types instead of the Esize.

2011-08-04  Steve Baird  <baird@adacore.com>

	* switch-b.adb (Scan_Binder_Switches): Add -P binder switch, used to
	enable CodePeer_Mode.
	* bindusg.adb (Display): Add help message describing -P binder switch.
	* gnat_ugn.texi: Document -P binder switch.
	* bindgen.adb (Gen_Main_Ada): If CodePeer_Mode is set, then call the
	user-defined main program directly.
	(Gen_Output_File_Ada): If CodePeer_Mode is set, generate a with of the
	user-defined main program in the context clause of the package body.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* alfa.adb, alfa.ads (Get_Entity_For_Decl): remove function, partial
	duplicate of Defining_Entity
	(Get_Unique_Entity_For_Decl): rename function into
	Unique_Defining_Entity
	* einfo.adb, einfo.ads (Is_In_ALFA, Body_Is_In_ALFA): remove flags
	(Formal_Proof_On): remove synthesized flag
	* cstand.adb, sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
	sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_res.adb, sem_util.adb,
	sem_util.ads, stand.ads: Remove treatment associated to entities in ALFA
	* sem_prag.adb (Analyze_Pragma): remove special treatment for pragma
	Annotate (Formal_Proof)

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* prj-env.adb (Create_Config_Pragmas_File): fix handling of multi-unit
	source files with non-standard naming schemes, in imported projects

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* makeutl.adb (Complete_Mains): when a multi-unit source file is
	specified on the gprbuild command line, we need to compile all units
	within that file, not just the first one we find
	Fix error message for mains that are not found.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* sem_ch6.adb: Update comment.
	* sem_ch12.adb: Minor reformatting.

2011-08-04  Bob Duff  <duff@adacore.com>

	* s-tasren.adb (Task_Do_Or_Queue): Previous code was reading
	Acceptor.Terminate_Alternative without locking Acceptor, which causes a
	race condition whose symptom is to fail to lock Parent. That, in turn,
	causes Parent.Awake_Count to be accessed without locking Parent, which
	causes another race condition whose symptom is that Parent.Awake_Count
	can be off by 1 (either too high or too low). The solution is to lock
	Parent unconditionally, and then lock Acceptor, before reading
	Acceptor.Terminate_Alternative.

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

	* debug.adb: Update comment.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* par_sco.adb, exp_util.adb, make.adb, a-tags.adb, sem_prag.adb,
	sem_util.adb, sem_attr.adb, exp_ch4.adb, g-comlin.adb, g-comlin.ads,
	exp_ch6.adb: Minor reformatting.

2011-08-04  Gary Dismukes  <dismukes@adacore.com>

	* gnat_ugn.texi: Add sentence about the case of compile-time-detected
	checks for -gnateE.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* gnat_rm.texi: update Ravenscar desription to reflect Ada2012 RM.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* sinfo.ads: Minor reformatting.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* makeutl.adb, makeutl.ads, prj-nmsc.adb (Complete_Mains): report error
	even if there is no location.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb, sem_ch4.adb: move check for restriction
	No_Task_Hierarchy to resolve_allocator.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* sinfo.adb, sinfo.ads, sem_prag.adb, sem_ch12.adb (Pragma_Enabled):
	This flag of N_Pragma nodes is not used, remove it as well as all of
	the associated circuitry.

2011-08-04  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Make_DT): Switch -gnatdQ disables the generation of the
	runtime check on duplicated externa tags
	* debug.adb Document switch -gnatdQ.

2011-08-04  Gary Dismukes  <dismukes@adacore.com>

	* a-fihema.ads: Minor typo fix.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* sem_ch10.adb: Minor comment update.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb: Update the node field usage to reflect the renaming of
	Return_Flag to Return_ Flag_Or_Transient_Decl.
	(Return_Flag): Renamed to Return_Flag_Or_Transient_Decl.
	(Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl.
	(Write_Field15_Name): Change Return_Flag to
	Return_Flag_Or_Transient_Decl.
	* einfo.ads: Rename node field Return_Flag to
	Return_Flag_Or_Transient_Decl. Update the associated comment and all
	occurrences in entities.
	(Return_Flag): Renamed to Return_Flag_Or_Transient_Decl. Update
	associated Inline pragma.
	(Set_Return_Flag): Renamed to Set_Return_Flag_Or_Transient_Decl. Update
	associated Inline pragma.
	* exp_ch4.ads, exp_ch4.adb (Expand_N_Expression_With_Actions): New
	routine.
	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Update the calls to
	Return_Flag and Set_Return_Flag.
	* exp_ch7.adb (Process_Declarations): Add code to recognize hook
	objects generated for controlled transients declared inside an
	Exception_With_Actions. Update the calls to Return_Flag.
	(Process_Object_Declaration): Add code to add a null guard for hook
	objects generated for controlled transients declared inside an
	Exception_With_Actions. Update related comment.
	* exp_util.adb (Has_Controlled_Objects): Add code to recognize hook
	objects generated for controlled transients declared inside an
	Exception_With_Actions. Update the calls to Return_Flag.
	* expander.adb (Expand): Add new case for N_Expression_With_Actions.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb:(Wrong_Type): Improve error message on a one-element
	positional aggregate.

2011-08-04  Vincent Celier  <celier@adacore.com>

	* par_sco.adb (Process_Decisions.Output_Header): Check and record pragma
	SLOC only for pragmas.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* projects.texi: Minor typo fix.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* prj-nmsc.adb (Check_File): Minor change to traces, to help debugging
	on case-sensitive file systems.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* put_scos.adb (Put_SCOs): Do not emit decision SCO for an X decision
	nested in a disabled pragma.
	* scos.ads, scos.adb, par_sco.ads, par_sco.adb: Record sloc of
	enclosing pragma, if any, for X decisions.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* sem_prag.adb: Minor reformatting.

2011-08-04  Vincent Celier  <celier@adacore.com>

	* a-tags.adb (Check_TSD): Avoid concatenation of strings, as it is not
	allowed in no run time mode.

2011-08-04  Vincent Celier  <celier@adacore.com>

	* make.adb (Check): When -gnatc is used, check for the source file
	inside the ALI file with a canonical case file name.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* g-comlin.adb, g-comlin.ads (Add_Switch): Put back support for
	overriding the separator.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* sem_aggr.adb, par_sco.adb, sem_type.adb, exp_util.adb, exp_ch9.adb,
	prj-nmsc.adb, sem_ch13.adb, exp_strm.adb: Minor reformatting.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Minor documentation fix for pragma Annotate.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* sem_attr.adb (Analyze_Attribute): add check during pre-analysis that
	'Result only appears in postcondition of function.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* a-tags.adb (Check_TSD): When raising PROGRAM_ERROR for a duplicated
	external tag, include the value of the external tag in the exception
	message.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* sem_attr.adb (Result): modify error message for misplaced 'Result

2011-08-04  Sergey Rybin  <rybin@adacore.com>

	* gnat_rm.texi (pragma Annotate): Fix syntax description to make it
	clear that the second argument must be an identifier.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* exp_ch9.adb (Build_Barrier_Function): When compiling with
	-fpreserve-control-flow, insert an IF statement on the barrier
	condition to ensure that a conditional branch instruction is generated.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* prj-part.adb, prj.adb, prj.ads, prj-tree.ads
	(Processing_Flags.Ignore_Missing_With): new flag.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* prj-nmsc.adb (Find_Sources, Path_Name_Of): Fix handling of
	Source_List_File on case-insensitive systems where the file is actually
	on a case-sensitive file system (NFS,...).

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch6.adb (Analyze_Function_Return): In a rare case where a
	function return contains a controlled [extension] aggregate and the
	return statement is not part of a handled sequence of statements, wrap
	the return in a block. This ensures that all controlled temporaries
	generated during aggregate resolution will be picked up by the
	finalization machinery.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Aggregate): If aggregate has box-initialized
	components, freeze type before resolution, to ensure that default
	initializations are present for all components.
	* sem_res.adb (Resolve_Actuals): the designated object of an
	accces-to-constant type is a legal actual in a call to an
	initialization procedure.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_util.adb (Extract_Renamed_Object): Add N_Type_Conversion and
	N_Unchecked_Type_Conversion to the possible containers of a renamed
	transient variable.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* par-ch13.adb (Aspect_Specifications_Present): recognize
	"with Identifier'Class =>" as an aspect, so that a meaningful warning
	is issued in Strict mode.
	* par.adb: Fix typos in comments.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* sem_attr.adb (Result): modify error message to take into account Post
	aspect when compiling Ada 2012 (or newer) code.

2011-08-04  Nicolas Roche  <roche@adacore.com>

	* env.c (__gnat_clearenv): Avoid use of dynamic size array in order to
	remove need for GCC exceptions.

2011-08-04  Vincent Celier  <celier@adacore.com>

	* makeutl.adb (Do_Complete): Call Debug_Output with the name of the
	project, not the source file name.
	* prj.adb (Find_Sources.Look_For_Sources): If the source has been
	excluded, continue looking. This excluded source will only be returned
	if there is no other source with the same base name that is not locally
	removed.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Intrinsic_Operator): if the result type is
	private and one of the operands is a real literal, use a qualified
	expression rather than a conversion which is not meaningful to the
	back-end.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* sem_ch13.adb (Aspect_Loop): when an aspect X and its classwise
	corresponding aspect X'Class are allowed, proceed with analysis of the
	aspect instead of skipping it.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

	* s-flocon.adb, s-flocon.ads: Add a body for s-flocon.ads
	This will allow to have an Ada implementation for the subprogram.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Analyze_Full_Type_Declaration): If the declaration is a
	completion and aspects are present, apply them to the entity for the
	type which is currently the partial view, but which is the one that
	will be frozen.
	* sem_ch13.adb (Analyze_Aspect_Specifications): if the predicate
	applies to a partial view, indicate that the full view has predicates
	and delayed aspects.
	(Replace_Type_Reference): Handle properly predicates that apply to the
	full view of a private completion.

2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>

	* layout.adb (Layout_Type): For composite types, do not set Esize.
	* freeze.adb (Set_Small_Size): Remove test on alignment and do not
	set Esize.
	(Size_Known): Look at the RM size of components instead of the Esize.
	(Freeze_Record_Type): Look at the RM size instead of the Esize to
	issue warning and activate Implicit_Packing.
	(Freeze_Entity): Likewise.  Do not issue a warning for alias/atomic
	if the Esize is not known.
	* sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Size>: Set Esize
	for elementary types only.
	(Analyze_Record_Representation_Clause): Look at the RM size instead
	of the Esize to issue errors.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Do not set Esize if it
	is not known.
	<E_Record_Type>: Look at the RM size instead of the Esize.  Remove
	obsolete block.
	Look at the RM size instead of the Esize for types if the latter is
	not known.
	(gnat_to_gnu_field): Use Known_Esize instead of Known_Static_Esize.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_type.adb: proper handling of equality not involving anonymous
	access types.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Create_Finalizer): Remove local variables Spec_Nod and
	Vis_Decls. When creating a library-level finalizer for a package spec,
	both the declaration and body of the finalizer are inserted either in
	the visible or private declarations of the package spec.

2011-08-04  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Derive_Subprograms): Complete assertion to request the
	use of the full-view of a type when invoking Is_Ancestor.
	* sem_type.adb (Is_Ancestor): For consistency, when the traversal of
	the full-view of private parents is requested, then use also the
	full-view of the parent of the first derivation.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

	* s-taprop-vxworks.adb (Enter_Task): Use System.Float_Control.Reset
	instead of the locally imported procedure.
	* s-taprop-mingw.adb (Enter_Task): Ditto.
	* s-valrea.adb (Scan_Real): Ditto.
	* s-imgrea.adb (Set_Image_Real): Ditto.
	* s-flocon.ads: Make the package pure.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* sinfo.ads, sinfo.adb (Debug_Statement, Set_Debug_Statement): Remove.
	* tbuild.ads, tbuild.adb (Make_Pragma): Adjust accordingly.
	* sinfo-cn.ads, sinfo-cn.adb (Change_Name_To_Procedure_Call_Statement):
	New subprogram, moved here from...
	* par.adb, par-ch5.adb (P_Statement_Name): ... here.
	* par-prag.adb (Par.Prag, case Pragma_Debug): Do not perform any
	rewriting of the last argument into a procedure call statement here...
	* sem_prag.adb (Analyze_Pragma, case Pragma_Debug): ...do it there
	instead.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* par_sco.adb: Minor reformatting.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* erroutc.adb: Minor reformatting.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* par_sco.adb: Comment update.

2011-08-04  Tristan Gingold  <gingold@adacore.com>

	* s-flocon.ads: New file.
	* g-flocon.ads: Now a renaming of s-flocon.
	* Makefile.rtl: Add s-flocon.o

2011-08-04  Javier Miranda  <miranda@adacore.com>

	* exp_strm.adb (Build_Array_Input_Function): if the array type is
	constrained, do not attempt to build a subtype of it.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* errout.ads Change comments: remove 'R'M as an example where quotes
	are needed; add ALFA as another case where quotes are not needed
	* erroutc.adb (Set_Msg_Insertion_Reserved_Word): add ALFA as another
	case where quotes are not needed.
	* sem_ch11.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
	sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_prag.adb, sem_res.adb:
	Remove all occurrences of 'A'L'F'A

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb: check legality of invariant pragma.

2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>

	* bindgen.adb: Add comments.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* einfo.adb, einfo.ads: Free Flag254 and make Formal_Proof_On a
	synthesized flag.
	* sem_prag.adb (Analyze_Pragma): record the pragma Annotate
	(Formal_Proof, On/Off) in the Rep_Item list of the current subprogram.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* exp_ch7.adb, exp_ch6.adb, sem_ch3.adb, layout.adb, sem_ch5.adb,
	osint-c.ads, sem_util.ads, gnat1drv.adb, targparm.ads, sem_ch6.adb,
	sem_ch13.adb, s-pooloc.adb: Minor reformatting.

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* s-pooloc.ads, s-pooglo.ads: Minor reformatting

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	PR ada/47880
	* s-pooloc.adb (Deallocate): Fix the case of deallocating the only
	allocated object.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* einfo.ads, exp_ch4.adb: Minor reformatting.

2011-08-04  Jerome Lambourg  <lambourg@adacore.com>

	* back_end.ads (Gen_Or_Update_Object_File): Add more comments.

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.adb (Expand_Composite_Equality): code cleanup: use component
	type in all cases to compute list of primitive operations, because full
	view may be an itype that is not attached to the list of declarations.

2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>

	* bindgen.adb (Gen_Adafinal_Ada): Generate an early return if the
	library has already been finalized.
	(Gen_Adafinal_C): Likewise.
	(Gen_Adainit_Ada): Generate an early return if the library has
	already been elaborated.
	(Gen_Adainit_C): Likewise.
	(Gen_Output_File_Ada): Generate an elaboration flag.
	(Gen_Output_File_C): Likewise.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch4.adb (Expand_Allocator_Expression): Disable the generation of
	Set_Finalize_Address_Ptr for CodePeer because Finalize_Address was not
	built in the first place.
	(Expand_N_Allocator): Disable the generation of Set_Finalize_Address_Ptr
	for CodePeer because Finalize_Address was not built to begin with.
	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Ditto.

2011-08-04  Pascal Obry  <obry@adacore.com>

	* adaint.c (__gnat_tmp_name): Use current process id to create temp
	filenames, this ensures unicity of filenames across processes.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* bindgen.adb (Gen_Finalize_Library_Ada): Rename generated routine
	Raise_Controlled to Raise_From_Controlled_Operation. Update the
	signature of Raise_From_Controlled_Operation by adding flag From_Abort.
	Add False as the actual to From_Abort in the generated call to
	Raise_From_Controlled_Operation.

2011-08-04  Jerome Lambourg  <lambourg@adacore.com>

	* osint-c.ads, osint-c.adb (Set_Library_Info_Name): Move to declaration
	so that the ali file name can be retrieved from outside of this package.
	* back_end.ads, back_end.adb (Gen_Or_Update_Object_File): New method
	doing nothing in the general case, but used to update the object file
	timestamp if directly generated by the backend.
	* gnat1drv.adb (Gnat1drv): Make sure the object file's timestamp is set
	to a later time than the ali file one.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* einfo.adb, einfo.ads (Formal_Proof_On): new flag set on subprogram
	entities whose body contains an Annotate pragma which forces formal
	proof on this body.
	* sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
	sem_ch6.adb, sem_ch9.adb, sem_res.adb: Adapt call to
	Mark_Non_ALFA_Subprogram to pass in a message and node.
	* sem_prag.adb (Analyze_Pragma): add treatment of pragma Annotate
	(Forma_Proof, On) which sets the flag Formal_Proof_On in the
	surrounding subprogram.
	* sem_util.adb, sem_util.ads (Mark_Non_ALFA_Subprogram,
	Mark_Non_ALFA_Subprogram_Unconditional): if the subprogram being marked
	as not in ALFA is annotated with Formal_Proof being On, then an error
	is issued based on the additional parameters for message and node.
	* snames.ads-tmpl (Name_Formal_Proof): new name for annotation.
	* gcc-interface/Make-lang.in: Update dependencies.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Do not generate
	Finalize_Address when CodePeer is enabled.

2011-08-04  Pascal Obry  <obry@adacore.com>

	* adaint.c (__gnat_tmp_name): Use _tempnam() instead of tempnam() as
	the latter returns a pointer to a static buffer which is deallocated
	at the end of the routine.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* sem_ch3.adb (Array_Type_Declaration): move test for type in ALFA
	after index creation; mark unconstrained base array type generated as
	being in/not in ALFA as well
	(Make_Index): mark subtype created as in/not in ALFA
	* sem_ch5.adb (Analyze_Iteration_Scheme): mark entity for iterating
	over a loop as in/not in ALFA, depending on its type and form of loop
	iteration.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Build_Object_Declarations): Initialize flag Abort
	directly to False on .NET and JVM.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* sem_ch3.adb (Constrain_Enumeration, Constrain_Integer): remove
	constraint that subtype must come from source code to be in ALFA, so
	that anonymous subtypes can be in ALFA too.

2011-08-04  Yannick Moy  <moy@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): remove obsolete addition of
	reference for ALFA mode.
	* lib-xref-alfa.adb, lib-xref.ads (Traverse_Compilation_Unit): make
	procedure public so as to use it from formal verification back-end.

2011-08-04  Jerome Lambourg  <lambourg@adacore.com>

	* g-comlin.adb (For_Each_Simple_Switch.Is_In_Config): Remove the
	invalid checks of the Parameter, making Remove_Switch not working
	correctly.

2011-08-04  Arnaud Charlet  <charlet@adacore.com>

	* targparm.ads: Update header: no run-time exception is needed on this
	file.

2011-08-04  Vincent Celier  <celier@adacore.com>

	* a-fihema.adb: Use System.IO instead of GNAT.IO

2011-08-04  Thomas Quinot  <quinot@adacore.com>

	* sem_ch3.adb (Access_Definition): Anonymous access to subprogram types
	are forbidden in Compiler_Unit mode.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* sem_util.adb: Minor reformatting.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* bindgen.adb (Gen_Finalize_Library_Ada): Update the import string for
	library-level finalizers.
	(Gen_Finalize_Library_C): Update the import string for library-level
	finalizers.
	(Gen_Finalize_Library_Defs_C): Update the definition name of a
	library-level finalizer.
	* exp_ch7.adb: Remove with and use clauses for Stringt.
	(Create_Finalizer): Remove local variables Conv_Name, Prag_Decl,
	Spec_Decl. Add local variable Body_Id. The names of library-level
	finalizers are now manually fully qualified and are no longer external.
	A single name is now capable of servicing .NET, JVM and non-VM targets.
	Pragma Export is no longer required to provide visibility for the name.
	(Create_Finalizer_String): Removed.
	(New_Finalizer_Name): New routine which mimics New_..._Name.

2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_elab.adb (Check_Internal_Call_Continue): Change the type of the
	elaboration counter to Standard_Short_Integer.
	* sem_util.adb (Build_Elaboration_Entity): Likewise.
	* bindgen.adb (Gen_Elab_Externals_Ada): Adjust to above change.
	(Gen_Elab_Externals_C): Likewise.

2011-08-04  Ed Falis  <falis@adacore.com>

	* system-vxworks-arm.ads, system-vxworks-sparcv9.ads,
	system-vxworks-ppc.ads, system-vxworks-m68k.ads,
	system-vxworks-mips.ads, system-vxworks-x86.ads
	(Always_Compatible_Rep): set to False for all VxWorks targets.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* par_sco.adb, prj-proc.adb, make.adb, bindgen.adb, prj.adb, prj.ads,
	makeutl.adb, makeutl.ads, prj-nmsc.adb, exp_ch5.adb, exp_ch12.adb,
	exp_ch7.ads, exp_util.ads, sem_util.ads, g-comlin.ads, exp_ch6.adb,
	exp_ch6.ads, lib-xref.ads, exp_ch7.adb, exp_util.adb, exp_dist.adb,
	exp_strm.adb, gnatcmd.adb, freeze.adb, g-comlin.adb, lib-xref-alfa.adb,
	sem_attr.adb, sem_prag.adb, sem_util.adb, sem_elab.adb, sem_ch8.adb,
	sem_ch11.adb, sem_eval.adb, sem_ch13.adb, sem_disp.adb, a-fihema.adb:
	Minor reformatting and code reorganization.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* projects.texi: Added doc for aggregate projects.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, prj-nmsc.adb, prj-env.adb (Process_Declarative_Items):
	Add support for overriding the Project_Path in aggregate projects.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* a-cofove.ads: Minor reformatting.

2011-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Update the comment
	on the generated code.
	(Build_Finalize_Statements): Update the comment on the generated code.
	(Build_Initialize_Statements): Update the comment on the generated code.
	(Build_Object_Declarations): Add local variable Result. The object
	declarations are now built in sequence.
	* rtsfind.ads: Add RE_Exception_Occurrence_Access to tables RE_Id and
	RE_Unit_Table.

2011-08-04  Robert Dewar  <dewar@adacore.com>

	* checks.adb, alfa.adb, alfa.ads: Minor reformatting.

2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Elaboration_Entity): Document new definition and use.
	(Elaboration_Entity_Required): Adjust to above change.
	* exp_attr.adb (Expand_N_Attribute_Reference): Likewise.
	* exp_ch12.adb: And with and use for Snames.
	(Expand_N_Generic_Instantiation): Test 'Elaborated attribute.
	* exp_util.adb (Set_Elaboration_Flag): Likewise.
	* sem_attr.adb (Analyze_Attribute) <Check_Library_Unit>: Delete.
	<Check_Unit_Name>: Deal with N_Expanded_Name.
	<Attribute_Elaborated>: Extend to all unit names.
	* sem_elab.adb: And with and use for Uintp.
	(Check_Internal_Call_Continue): Adjust to Elaboration_Entity change.
	* sem_util.ads (Build_Elaboration_Entity): Adjust comment.
	* sem_util.adb (Build_Elaboration_Entity): Change type to Integer.
	* bindgen.adb (Gen_Elab_Externals_Ada): New local subprogram taken
	from Gen_Adainit_Ada.
	(Gen_Elab_Externals_C): Likewise, but taken from Gen_Adainit_C.
	(Gen_Adafinal_Ada): Remove redundant test.  In the non-main program
	case, do not call System.Standard_Library.Adafinal; instead call
	finalize_library if needed.
	(Gen_Adafinal_C): Likewise.
	(Gen_Adainit_Ada): Do not set SSL.Finalize_Library_Objects in the
	non-main program case.
	(Gen_Adainit_C): Generate a couple of external declarations here.
	In the main program case, set SSL.Finalize_Library_Objects.
	(Gen_Elab_Calls_Ada): Adjust to Elaboration_Entity change.
	(Gen_Elab_Calls_C): Likewise.
	(Gen_Finalize_Library_Ada): Likewise.  Skip SAL interface units.
	(Gen_Finalize_Library_C): Likewise.  Generate a full function.
	(Gen_Main_C): Put back call to Ada_Final and don't finalize library
	objects here.
	(Gen_Output_File_Ada): Generate pragma Linker_Destructor for Ada_Final
	if -a is specified.  Call Gen_Elab_Externals_Ada.  Move around call to
	Gen_Adafinal_Ada.
	(Gen_Output_File_C): Generate __attribute__((destructor)) for Ada_Final
	if -a is specified.  Call Gen_Elab_Externals_C.  Remove useless couple
	of external declarations.  Call Gen_Finalize_Library_C.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* prj.adb, prj.ads, makeutl.adb, makeutl.ads (Complete_Mains,
	Compute_Compilation_Phases): new subprogram.
	(Builder_Data, Builder_Project_Tree_Data): new subprogram and type
	The number of mains as well as the various compilation phases that
	need to be run are now project tree specific, since various
	aggregated trees might have different requirements. In particular,
	they do not all require bind or link phases.

2011-08-04  Emmanuel Briot  <briot@adacore.com>

	* prj.adb, prj.ads, makeutl.adb, makeutl.ads, prj-env.adb
	(Project_Tree_Appdata): New type.
	It is now possible to associate application-specific data to a project
	tree. In particular, this is used in the gprbuild builder to avoid a
	number of global tables and htables, especially now that there can be
	several project trees loaded at once because of aggregate projects.
	(Debug_Name): new procedure.
	* projects.texi: Clarify syntax of "**" for Source_Dirs

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* prj.ads, makeutl.adb, makeutl.ads (Queue.Insert): now also inserts
	the "roots" for a main.
	(Fill_From_Project): add support for aggregate projects. Main units
	in aggregated projects are now automatically added in the list of
	files to build (although this fails later on in gprbuild, because
	these files are not using the root proejct tree, so this needs
	further cleanup)
	* gcc-interface/Make-lang.in: Update dependencies.

2011-08-03  Yannick Moy  <moy@adacore.com>

	* sem_ch4.adb (Analyze_Conditional_Expression): only allow boolean
	conditional expression in ALFA.
	* sem_res.adb (Resolve_Conditional_Expression): mark non-boolean
	expressions as not in ALFA.

2011-08-03  Robert Dewar  <dewar@adacore.com>

	* a-cofove.adb: Minor reformatting.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads
	(Insert_Project_Sources, Insert_withed_Sources_For): moved from the
	gprbuild sources.
	These packages are more logically placed in the Queue package, since
	they manipulate the queue. It is also likely that they can be adapted
	for gnatmake, thus sharing more code.
	(Finish_Program, Fail_Program): moved from the gprbuild sources, so
	that we could move the above.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* errutil.adb (Finalize): clean up the list of error messages on exit.
	Calling this subprogram multiple times will no longer show duplicate
	error messages on stderr.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* g-comlin.adb, g-comlin.ads (Set_Command_Line): ignore the parameter
	Getopt_Switches when we have already define a command line
	configuration.

2011-08-03  Yannick Moy  <moy@adacore.com>

	* sem_ch11.adb (Analyze_Raise_xxx_Error): do not mark such nodes as not
	in ALFA. Instead, they are considered as assertions to prove.
	* sem_ch4.adb (Analyze_Conditional_Expression): do not always mark such
	nodes as not in ALFA. Instead, include conditional expressions in ALFA
	if they have no ELSE part, or if they occur in pre- and postconditions,
	where the Condition cannot have side-effects in ALFA
	(Analyze_Membership_Op): do not mark such nodes as not in ALFA
	(Analyze_Type_Conversion): do not always mark such nodes as not in ALFA.
	Instead, include type conversion between scalar types in ALFA.
	* sem_ch6.adb (Process_Formals): correctly mark a parameter in ALFA
	if-and-only-if its type is in ALFA.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

	* scos.adb, get_scos.adb, put_scos.adb
	New code letter for decisions: G (entry guard)
	* par_sco.adb
	(Traverse_Subprogram_Body): Rename to...
	(Traverse_Subprogram_Or_Task_Body): New subrpogram.
	(Traverse_Protected_Body): New subprogram
	(Traverse_Declarations_Or_Statements): Add traversal of task bodies,
	protected bodies and entry bodies.

2011-08-03  Yannick Moy  <moy@adacore.com>

	* einfo.adb, einfo.ads (Is_Postcondition_Proc): new flag for procedure
	entities with get/set subprograms, which is set on procedure entities
	generated by the compiler for a postcondition.
	* sem_ch6.adb (Process_PPCs): set new flag on postcondition procedures
	* alfa.adb, alfa.ads (Get_Entity_For_Decl): new function returning the
	entity for a declaration
	(Get_Unique_Entity_For_Decl): new function returning an entity which
	represents a declaration, so that matching spec and body have the same
	entity.

2011-08-03  Robert Dewar  <dewar@adacore.com>

	* a-except-2005.adb, a-cfhama.adb, a-cfhase.adb, a-cfhase.ads,
	a-cforma.adb, a-cforse.ads, a-cforse.adb: Minor reformatting

2011-08-03  Yannick Moy  <moy@adacore.com>

	* lib-xref-alfa.adb (Detect_And_Add_ALFA_Scope): make the subprogram
	library-level because retriction No_Implicit_Dynamic_Code in the
	front-end prevents its definition as a local subprogram
	(Traverse_Compilation_Unit): extract new procedure from Add_ALFA_File,
	for reuse in other contexts
	(Traverse_Declarations_Or_Statements,
	Traverse_Handled_Statement_Sequence, Traverse_Package_Body,
	Traverse_Package_Declaration, Traverse_Subprogram_Body): make all these
	procedures take a callback parameter to be called on all declarations
	* lib-xref.ads
	(Traverse_All_Compilation_Units): new generic function to traverse a
	compilation unit and call a callback parameter on all declarations

2011-08-03  Javier Miranda  <miranda@adacore.com>

	* sem_prag.adb (Process_Interface_Name): Allow duplicated export names
	in Java since they are always enclosed in a namespace that
	differentiates them, and overloaded entities are supported by the VM.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* checks.adb (Determine_Range): If a computed bound of an operation is
	outside the range of the base type of the expression, and overflow
	checks are enabled, the result is unknown and cannot be used for any
	subsequent constant folding.
	* sem_eval.adb (Compile_Time_Compare): if the bounds of one operand are
	unknown, so is the result of the comparison.

2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-except-2005.adb (Raise_From_Controlled_Operation): Add new formal
	From_Abort. When finalization was triggered by an abort, propagate
	Standard'Abort_Signal rather than Program_Error.
	* a-except-2005.ads (Raise_From_Controlled_Operation): Add new formal
	From_Abort.
	* a-except.adb (Raise_From_Controlled_Operation): Add new formal
	From_Abort. When finalization was triggered by an abort, propagate
	Standard'Abort_Signal rather than Program_Error.
	* a-except.ads:(Raise_From_Controlled_Operation): Add new formal
	From_Abort.
	* exp_ch7.adb:(Build_Adjust_Or_Finalize_Statements): New local variable
	Abort_Id. Update the calls to Build_Object_Declarations and
	Build_Raise_Statement to include Abort_Id.
	(Build_Adjust_Statements): New local variable Abort_Id. Update the
	calls to Build_Object_Declarations and Build_Raise_Statement to include
	Abort_Id.
	(Build_Finalize_Statements): New local variable Abort_Id. Update the
	calls to Build_Object_Declarations and Build_Raise_Statement to include
	Abort_Id.
	(Build_Components): Create an entity for Abort_Id when exceptions are
	allowed on the target.
	(Build_Finalizer): New local variable Abort_Id.
	(Build_Initialize_Statements): New local variable Abort_Id. Update the
	calls to Build_Object_Declarations and Build_Raise_Statement to include
	Abort_Id.
	(Build_Object_Declarations): Add new formal Abort_Id. Create the
	declaration of flag Abort_Id to preserve the original abort status
	before finalization code is executed.
	(Build_Raise_Statement): Add new formal Abort_Id. Pass Abort_Id to
	runtime routine Raise_From_Controlled_Operation.
	(Create_Finalizer): Update the call to Build_Raise_Statement to include
	Abort_Id. Update the call to Build_Object_Declarations to include
	Abort_Id. Update the layout of the finalizer body.
	(Make_Handler_For_Ctrl_Operation): Add an actual for From_Abort.
	(Process_Transient_Objects): New local variable Abort_Id. Remove the
	clunky code to create all flags and objects related to
	exception propagation and replace it with a call to
	Build_Object_Declarations. Update the call to Build_Raise_Statement to
	include Abort_Id.
	* exp_ch7.ads (Build_Object_Declarations): Moved from body to spec.
	Add new formal Abort_Id and associated comment on its use.
	(Build_Raise_Statement): Add new formal Abort_Id and associated comment
	on its use.
	* exp_intr.adb (Expand_Unc_Deallocation): New local variable Abort_Id.
	Remove the clunky code to create all flags and objects related to
	exception propagation and replace it with a call to
	Build_Object_Declarations. Update the call to Build_Raise_Statement.

2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>

	* s-tassta.adb: Fix minor typos.

2011-08-03  Robert Dewar  <dewar@adacore.com>

	* rtsfind.ads, makeutl.ads, prj.ads, prj.adb, make.adb,
	lib-writ.adb, makeutl.adb, s-soflin.ads, clean.adb: Minor reformatting.

2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Create_Finalizer): Treat freeze nodes in similar fashion
	to packages. This ensures that the finalizer body will not end up
	inside the freeze node.
	(Process_Declarations): Add code to detect whether a freeze node has a
	nested finalization collection.

2011-08-03  Pascal Obry  <obry@adacore.com>

	* g-awk.adb, g-awk.ads: Make GNAT.AWK API compatible with Ada 2005.
	(Current_Session): Return a not null access to Session_Type.
	(Default_Session): Likewise.

2011-08-03  Robert Dewar  <dewar@adacore.com>

	* a-cfdlli.adb, bindgen.adb, exp_ch4.adb, exp_ch13.adb, sem_warn.adb,
	exp_ch3.adb, exp_ch3.ads: Minor reformatting.

2011-08-03  Pascal Obry  <obry@adacore.com>

	* g-awk.ads: Minor comment fix.

2011-08-03  Sergey Rybin  <rybin@adacore.com>

	* tree_io.ads (ASIS_Version_Number): Update because of the changes in
	the tree structure related to discriminant constraints.
	Original_Discriminant cannot be used any more for computing the
	defining name for the reference to a discriminant.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* sem_disp.adb (Is_Tag_Indeterminate): If the return type of the
	function is not visibly tagged, this is not a dispatching call and
	therfore is not Tag_Indeterminate, even if the function is marked as
	dispatching on result.

2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch13.adb: Add with and use clauses for Restrict and Rident.
	(Expand_N_Free_Statement): Add a guard to protect against run-times
	which do not support controlled types.
	* exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Add a guard to protect
	against run-times which do not support controlled types.
	* exp_ch4.adb (Complete_Controlled_Allocation): Add a guard to protect
	against run-times which do not support controlled types.
	* exp_ch7.adb (Build_Finalization_Collection): Add a guard to protect
	against run-times which do not support controlled types.
	* exp_util.adb (Needs_Finalization): Code reformatting. Add a guard to
	protect against run-times which do not support controlled types.

2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_intr.adb: Put back with and use clauses for Exp_Ch11.
	(Expand_Unc_Deallocation): Expand the AT_END handler at the very end.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Expand_Iterator_Loop): indicate that the cursor is
	modified in the source, to prevent spurious warnings when compiling
	with -gnatg.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

	* a-except-2005.adb: Minor reformatting.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* sem_warn.adb (Check_One_Unit): if the only mention of a withed unit
	is a renaming declaration in the private part of a package, do not emit
	a warning that the with_clause could be moved because the renaming may
	be used in the body or in a child unit.

2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
	Propagate the Comes_From_Source attribute from the original return
	object to the renaming.

2011-08-03  Jose Ruiz  <ruiz@adacore.com>

	* exp_ch7.adb (Build_Raise_Statement): Do not call
	Raise_From_Controlled_Operation when this routine is not present in
	the run-time library.
	(Cleanup_Protected_Object, Cleanup_Task): For restricted run-time
	libraries (Ravenscar), tasks are non-terminating, and protected objects
	and tasks can only appear at library level, so we do not want
	finalization of protected objects nor tasks.
	* exp_intr.adb: Minor clarification in comment.
	bindgen.adb (Gen_Adainit_Ada, Gen_Main_C, Gen_Output_File_Ada,
	Gen_Output_File_C): Remove references to finalization of library-level
	objects when using restricted run-time libraries.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Build_Discriminant_Constraints): Set
	Original_Discriminant only if the parent type is a generic formal.

2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch13.adb: Add with and use clause for Targparm;
	(Expand_N_Free_Statement): Prevent the generation of a custom
	Deallocate on .NET/JVM targets since this requires pools and address
	arithmetic.
	* exp_ch4.adb (Expand_Allocator_Expression): When compiling for
	.NET/JVM targets, attach the newly allocated object to the access
	type's finalization collection. Do not generate a call to
	Set_Finalize_Address_Ptr on .NET/JVM because this routine does not
	exist in the runtime.
	(Expand_N_Allocator): When compiling for .NET/JVM targets, do not
	create a custom Allocate for object that do not require initialization.
	Attach a newly allocated object to the access type's finalization
	collection on .NET/JVM.
	* exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add special processing for
	assignment of controlled types on .NET/JVM. The two hidden pointers
	Prev and Next and stored and later restored after the assignment takes
	place.
	* exp_ch6.adb (Expand_Call): Add local constant Curr_S. Add specialized
	kludge for .NET/JVM to recognize a particular piece of code coming from
	Heap_Management and change the call to Finalize into Deep_Finalize.
	* exp_ch7.adb (Build_Finalization_Collection): Allow the creation of
	finalization collections on .NET/JVM only for types derived from
	Controlled. Separate the association of storage pools with a collection
	and only allow it on non-.NET/JVM targets.
	(Make_Attach_Call): New routine.
	(Make_Detach_Call): New routine.
	(Process_Object_Declarations): Suppress the generation of
	build-in-place return object clean up code on .NET/JVM since it uses
	pools.
	* exp_ch7.ads (Make_Attach_Call): New routine.
	(Make_Detach_Call): New routine.
	* exp_intr.adb Add with and use clause for Targparm.
	(Expand_Unc_Deallocation): Detach a controlled object from a collection
	on .NET/JVM targets.
	* rtsfind.ads: Add entries RE_Attach, RE_Detach and
	RE_Root_Controlled_Ptr to tables RE_Id and RE_Unit_Table.
	* snames.ads-tmpl: Add name Name_Prev. Move Name_Prev to the special
	names used in finalization.

2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-fihema.adb: Add with and use clauses for System.Soft_Links.
	(Attach, Detach): Lock the current task when chaining an object onto a
	collection.

2011-08-03  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-except.adb, a-except-2005.adb (Raise_From_Controlled_Operation):
	Rewritten to create the message strings when the exception is not
	raised by an abort during finalization.
	* a-except.ads, a-except-2005.ads: Add pragma Export for procedure
	Raise_From_Controlled_Operation and update its associated comment.
	* a-fihema.ads, a-fihema.adb: New GNAT unit.
	Ada.Finalization.Heap_Management provides key functionality
	associated with controlled objects on the heap, their creation,
	finalization and reclamation. Type Finalization_Collection is
	effectively a wrapper which sits ontop of a storage pool and performs
	all necessary bookkeeping for all the objects it contains. Each
	access-to-controlled or access-to-class-wide type receives a collection
	as part of its expansion. The compiler generates buffer code and
	invokes Allocate / Deallocate to create and destroy allocated
	controlled objects.
	* a-finali.adb ("="): Removed.
	* a-finali.ads ("="): Removed. Controlled types no longer carry hidden
	fields Prev and Next.
	* ali.adb (Scan_ALI): Add parsing code to process PF / Has_Finalizer.
	A library unit with at least one controlled object on the library level
	has a special finalizer which is invoked by the binder. To signal this,
	ali files carry field PF.
	* ali.ads: New field in type Unit_Record called Has_Finalizer. Add
	associated comment on field usage.
	* a-tags.adb (Get_RC_Offset): Removed.
	(Needs_Finalization): New routine.
	* a-tags.ads: Update the structure of the GNAT dispatch tables.
	Dispatch tables now carry field Needs_Finalization which provides
	runtime indication whether a type is controlled or has controlled
	components or both. Remove field RC_Offset.
	(Get_RC_Offset): Removed along with its associated pragma Export.
	Since tagged types with controlled components no longer carry hidden
	field _controller, the special mechanism to retrieve its location is no
	longer needed.
	(Needs_Finalization): New routine.
	* atree.ads, atree.adb (Elist24): New routine.
	(Set_Elist24): New routine.
	* atree.h: Add a define clause for Elist24.
	* bindgen.adb New library-level variable Lib_Final_Built.
	(Gen_Adafinal_Ada): Reimplemented. Depending on the restrictions or the
	presence of a VM target, the routine generates calls to the proper
	library finalization routine.
	(Gen_Adainit_Ada): Import Finalize_Library_Objects only on non-VM
	targets. Set the correct library finalization routine depending on
	whether the library has controlled objects or this is a VM compilation.
	(Gen_Finalize_Library_Ada): New routine. This procedure generates calls
	to library-level finalizers of compiled units in reverse order of
	elaboration. It also produces exception management code and reraises a
	potential exception after all units have been finalized.
	(Gen_Finalize_Library_C): New routine. This procedure generates calls to
	library-level finalizers of compiled units in reverse order of
	elaboration.
	(Gen_Finalize_Library_Defs_C): New routine. This procedure generates the
	definitions of all library-level finalizers available to the compilation
	(Gen_Main_Ada): Directly call Adafinal which now contails all target
	dependent code.
	(Gen_Main_C): Add new local constant Needs_Library_Finalization. Call
	System.Standard_Library.Adafinal directly. If the library needs
	finalization actions, create the sequence of finalization calls.
	(Gen_Output_File_Ada): Alphabetize local variables and constants.
	Generate a with clause for System.Soft_Links when compiling for a VM.
	Remove the code which imports System.Standard_Library.Adafinal as
	Do_Finalize. Generate the library finalization routine.
	(Gen_Output_File_C): Add new local constant Needs_Library_Finalization.
	If the library needs finalization actions, create all the definitions
	of library- level finalizers.
	(Has_Finalizer): New routine. Determines whether at least one compiled
	unit has a library-level finalizer.
	Add type Qualification_Mode.
	(Set_Unit_Name): Add a formal which controls the replacement of a dot.
	* einfo.adb: New usage of field 15 as Return_Flag.
	Remove Finalization_Chain_Entity from the usages of field 19.
	Remove Associated_Final_Chain from the usages of field 23.
	New usage of field 23 as Associated_Collection.
	New usage of field 24 as Finalizer.
	New usage of flag 252 as Is_Processed_Transient.
	(Associated_Final_Chain): Removed.
	(Associated_Collection): New routine.
	(Finalization_Chain_Entity): Removed.
	(Finalizer): New routine.
	(Is_Finalizer): New routine.
	(Is_Processed_Transient): New routine.
	(Return_Flag): New routine.
	(Set_Associated_Final_Chain): Removed.
	(Set_Associated_Collection): New routine.
	(Set_Finalization_Chain_Entity): Removed.
	(Set_Finalizer): New routine.
	(Set_Is_Processed_Transient): New routine.
	(Set_Return_Flag): New routine.
	(Write_Entity_Flags): Include Is_Processed_Transient to the list of
	displayed flags.
	(Write_Field8_Name): Alphabetize the output.
	(Write_Field11_Name): Alphabetize the output.
	(Write_Field12_Name): Alphabetize the output.
	(Write_Field13_Name): Alphabetize the output.
	(Write_Field14_Name): Alphabetize the output.
	(Write_Field15_Name): Alphabetize the output.
	(Write_Field16_Name): Alphabetize the output.
	(Write_Field17_Name): Alphabetize the output.
	(Write_Field18_Name): Alphabetize the output.
	(Write_Field19_Name): Alphabetize the output. Remove the output of
	Finalization_Chain_Entity.
	(Write_Field20_Name): Alphabetize the output.
	(Write_Field21_Name): Alphabetize the output.
	(Write_Field22_Name): Alphabetize the output.
	(Write_Field23_Name): Alphabetize the output. Remove the output of
	Associated_Final_Chain. Add output for Associated_Collection.
	(Write_Field24_Name): Alphabetize the output.
	(Write_Field25_Name): Add output for Finalizer.
	(Write_Field26_Name): Alphabetize the output.
	(Write_Field27_Name): Alphabetize the output.
	(Write_Field28_Name): Alphabetize the output.
	* einfo.ads: Add new field description for Associated_Collection and
	its uses in nodes.
	Remove Associated_Final_Chain and its uses in nodes.
	Remove Finalization_Chain_Entity and its uses in nodes.
	Add new field description for Finalizer and its uses in nodes.
	Add new synthesized attribute Is_Finalizer.
	Add new flag description for Is_Processed_Transient and its uses in
	nodes.
	Add new field description for Return_Flag and its uses in nodes.
	(Associated_Final_Chain): Removed along with its pragma Inline.
	(Associated_Collection): New routine and pragma Inline.
	(Finalization_Chain_Entity): Removed along with its pragma Inline.
	(Finalizer): New routine and pragma Inline.
	(Is_Finalizer): New routine and pragma Inline.
	(Is_Processed_Transient): New routine and pragma Inline.
	(Return_Flag): New routine and pragma Inline.
	(Set_Associated_Final_Chain): Removed along with its pragma Inline.
	(Set_Associated_Collection): New routine and pragma Inline.
	(Set_Finalization_Chain_Entity): Removed along with its pragma Inline.
	(Set_Finalizer): New routine and pragma Inline.
	(Set_Is_Processed_Transient): New routine and pragma Inline.
	(Set_Return_Flag): New routine and pragma Inline.
	* exp_aggr.adb: Alphabetize subprograms.
	(Build_Array_Aggr_Code): Remove formal Flist and its associated comment.
	(Build_Record_Aggr_Code): Remove formals Flist and Obj along with their
	associated comments. Remove local variables External_Final_List and
	Attach.
	Rename Ctrl_Stuff_Done to Finalization_Done. Rename local variable A to
	Ancestor. Remove the retrieval of finalization lists. Update the call to
	Make_Adjust_Call.
	(Convert_Aggr_In_Allocator): Remove the retrieval of finalization
	lists. Update the call to Late_Expansion.
	(Convert_Aggr_In_Assignment): Update the call to Late_Expansion.
	(Convert_Aggr_In_Object_Decl): Update the call to Late_Expansion.
	(Gen_Assign): Remove the retrieval of the finalization list used to
	build the assignment. Update the calls to Make_Init_Call and
	Make_Adjust_Call.
	(Gen_Ctrl_Actions_For_Aggr): Renamed to Generate_Finalization_Actions.
	Remove the mechanism to determine attachment levels and finalization
	list retrieval. Remove the processing for coextensions.
	(Init_Controller): Removed. Controllers no longer exist.
	(Late_Expansion): Remove formals Flist and Obj along with their
	associated comments. Update the calls to Build_Record_Aggr_Code and
	Build_Array_Aggr_Code.
	* exp_ch13.adb (Expand_N_Free_Statement): New routine.
	(Expand_N_Freeze_Entity): Add special processing for finalizers which
	appear in entry bodies, protected subprograms and task bodies.
	* exp_ch13.ads (Expand_N_Free_Statement): New routine.
	* exp_ch3.adb (Add_Final_Chain): Removed.
	(Build_Array_Init_Proc): Alphabetize local variables.
	(Build_Assignment): Alphabetize local variables. Update the call to
	Maked_Adjust_Call.
	(Build_Class_Wide_Master): Rename local variables to better reflect
	their role.
	(Build_Discriminant_Assignments): Code reformatting.
	(Build_Init_Call_Thru): Code reformatting.
	(Build_Init_Procedure): Code reformatting. Generate a special version
	of Deep_Finalize which is capable of finalizing all initialized
	components and ignore the rest.
	(Build_Init_Statements): Rename local variables to better reflect their
	role.
	Reimplement the mechanism to include the creation and update of an index
	variable called a "counter". It is used as a bookmark for tracing
	initialized and non-initialized components.
	(Build_Initialization_Call): Remove local variable Controller_Typ.
	Alphabetize all local variables. Remove the initialization of the
	record controller and update the call to Make_Init_Call.
	(Build_Record_Init_Proc): Rename formal Pe to Rec_Ent.
	New local variable Counter.
	(Constrain_Array): Alphabetize.
	(Expand_Freeze_Array_Type): Create a collection instead of a
	finalization list.
	(Expand_Freeze_Class_Wide_Type): New routine. Creates TSS primitive
	Finalize_Address which is used in conjunction with allocated controlled
	objects.
	(Expand_N_Object_Declaration): Remove the creation of a finalization
	list for anonymous access types. Update the calls to Make_Init_Call and
	Make_Adjust_Call.
	(Expand_Freeze_Record_Type): Remove local variable Flist. Remove the
	retrieval of finalization lists. Remove the expansion of the record
	controller. Create TSS primitive Finalize_Address used in conjunction
	with controlled objects on the heap. Create finalization collections
	for access-to-controlled record components.
	(Expand_Record_Controller): Removed.
	(Freeze_Type): Remove the freezing of record controllers. Freezing of
	class-wide types now requires additional processing. Create
	finalization collections for access-to-controlled types.
	(Increment_Counter): New routine.
	(Make_Counter): New routine.
	(Make_Eq_If): Remove the mention of Name_uController.
	(Make_Predefined_Primitive_Specs): There is no longer need to skip
	types coming from System.Finalization_Root.
	(Predef_Deep_Spec): Reimplemented to reflect the new parameter profiles.
	(Predefined_Primitive_Bodies): There is no longer need to skip types
	coming from System.Finalization_Root.
	(Stream_Operation_OK): Do not generate stream routines for
	type Ada.Finalization.Heap_Management.Finalization_Collection.
	* exp_ch3.ads: Alphabetize subprograms.
	* exp_ch4.adb: Remove with and use clause for Sem_Ch8.
	Add with and use clause for Lib.
	(Complete_Coextension_Finalization): Removed.
	(Complete_Controlled_Allocation): New routine. Create a finalization
	collection for anonymous access-to-controlled types. Create a custom
	Allocate which interfaces with the back end and the machinery in
	Heap_Management.
	(Expand_Allocator_Expression): Add necessary calls to
	Complete_Controlled_Allocation. Remove the retrieval of finalization
	lists. Update the calls to Make_Adjust_Call. Generate a call to
	Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
	the associated collection.
	(Expand_N_Allocator): Remove the processing for dynamic coextensions.
	Code clean up. Remove the retrieval of finalization lists and
	attachment levels.
	Update the call to Make_Init_Call. Generate a call to
	Ada.Finalization.Heap_Management.Set_Finalize_Address_Ptr to decorate
	the associated collection.
	(Get_Allocator_Final_List): Removed. Finalization lists are not
	available.
	(Suitable_Element): Remove the mention of Name_uController.
	* exp_ch5.adb: Remove with and use clauses for Ttypes and Uintp.
	(Make_Tag_Ctrl_Assignment): Rewritten to simply do a finalization of
	the left hand side, carry out the assignment and adjust the left hand
	side.
	* exp_ch6.adb (Add_Final_List_Actual_To_Build_In_Place_Call): Removed.
	(Add_Collection_Actual_To_Build_In_Place_Call): New routine.
	(BIP_Formal_Suffix): Rename BIP_Final_List and BIPfinallist to
	BIP_Collection and BIPcollection.
	(Build_Heap_Allocator): New routine used to allocate the return object
	of a build-in-place function onto a collection.
	(Expand_Ctrl_Function_Call): Moved from Exp_Ch7.
	(Expand_Call): Do not replace direct calls to Deep routines with their
	aliases.
	(Expand_N_Extended_Return_Statement): Give all variables shorter names
	and update their occurrences. Add a special return flag to monitor the
	[ab]normal execution of the function. The flag is set right before the
	return statement.
	Rewrite the mechanism used to allocate a build-in-place return object
	on the heap or on a storage pool.
	(Is_Direct_Deep_Call): New routine.
	(Make_Build_In_Place_Call_In_Allocator): Add a collection to a
	build-in-place function call instead of a final list. Build a call to
	Set_Finalize_Address_Ptr to decorate the associated collection.
	(Make_Build_In_Place_Call_In_Anonymous_Context): Create a temporary in
	order to name the build-in-place function call's result for later
	finalization. Add a collection to a build-in-place function call
	instead of a final list.
	(Make_Build_In_Place_Call_In_Assignment): Add a collection to a
	build-in-place function call instead of a final list. Remove the code
	which moves one final list and transforms it into the actual in a
	nested build-in-place call.
	(Make_Build_In_Place_Call_In_Object_Declaration): Add a collection to a
	build-in-place function call instead of a final list.
	(Move_Final_List): Removed.
	(Needs_BIP_Collection): New routine.
	(Needs_BIP_Final_List): Removed.
	* exp_ch6.ads: Replace BIP_Final_List with BIP_Collection in
	enumeration type BIP_Formal_Kind.
	Update the related comment.
	(Needs_BIP_Collection): New routine.
	(Needs_BIP_Final_List): Removed.
	* exp_ch7.adb: Add with and use clauses for Elists, Exp_Ch6, Stringt
	and Ttypes. Remove with and use clauses for Sem_Type. Alphabetize the
	majority of subprograms in this unit. Add Name_Finalize_Address to
	array Name_Of and TSS_Finalize_Address to array Deep_Name_Of.
	(Build_Adjust_Or_Finalize_Statements): Create the adjust or finalization
	statements for an array type.
	(Build_Adjust_Statements): Create the adjust statements for a record
	type.
	(Build_Cleanup_Statements): New routine. A procedure which given any
	construct containing asynchronous calls, references to _master, or is a
	task body, a task allocation or a protected body produces the necessary
	runtime calls to clean up these constructs.
	(Build_Exception_Handler): New routine.
	(Build_Final_List): Removed.
	(Build_Finalization_Collection): New routine. A core procedure which
	creates a collection to service heap allocated controlled objects
	associated with an access-to-controlled type.
	(Build_Finalize_Statements): Create the finalization statements for a
	record types.
	(Build_Finalizer): New routine. A core procedure which given any
	construct with declarations and/or statements detects all objects which
	need any type of clean up (controlled objects, protected objects) and
	generates all necessary code to clean up the said objects in the proper
	order.
	(Build_Finalizer_Call): New routine.
	(Build_Initialize_Statements): Create the initialization statements for
	an array type. The generated routine contains code to finalize partially
	initialized arrays.
	(Build_Object_Declarations): New routine.
	(Build_Raise_Statement): New routine.
	(Clean_Simple_Protected_Objects): Removed.
	(Controller_Component): Removed.
	(Enclosing_Function): New routine.
	(Expand_Cleanup_Actions): Create a finalizer for a construct which has
	either declarations or statements or both.
	(Expand_N_Package_Body): Create a finalizer for a non-generic package.
	(Expand_N_Package_Declaration): Create a finalizer for a non-generic
	package.
	(Find_Final_List): Removed.
	(Global_Flist_Ref): Removed.
	(In_Finalization_Root): Removed.
	(Insert_Actions_In_Scope_Around): Determine the range of the transient
	scope in terms of tree nodes. Process all transient variables within
	that range.
	(Make_Adjust_Call): Rewritten. There is no longer an attach call
	generated after the adjust.
	(Make_Attach_Call): Removed.
	(Make_Call): New routine.
	(Make_Clean): Removed.
	(Make_Deep_Array_Body): Rewritten to simply invoke the appropriate
	build routines.
	(Make_Deep_Proc): Rewritten to generate the new profile signature used
	in Deep routines.
	(Make_Deep_Record_Body): Rewritten to simply invoke the appropriate
	build routines.
	(Make_Final_Call): Modified to simply create a call to either
	Deep_Finalize or Finalize.
	(Make_Finalize_Address_Body): New routine.
	(Make_Finalize_Address_Stmts): New routine. A function which produces
	TSS primitive Finalize_Address used in conjunction with heap allocated
	controlled objects.
	(Make_Handler_For_Ctrl_Operation): Add specialized code for .NET/JVM.
	(Make_Init_Call): Rewritten. There is no longer an attach call
	generated after initialization.
	(Make_Local_Deep_Finalize): New routine.
	(Make_Set_Finalize_Address_Ptr_Call): New routine.
	(Make_Transient_Block): Remove the finalization list retrieval and
	manipulation.
	(Needs_Finalization): Moved to Exp_Util.
	(Parent_Field_Type): New routine.
	(Preprocess_Components): New routine.
	(Process_Transient_Objects): New routine.
	(Wrap_HSS_In_Block): New routine.
	(Wrap_Transient_Declaration): Remove finalization list management and
	controller insertion.
	(Wrap_Transient_Expression): Code reformatting.
	(Wrap_Transient_Statement): Code reformatting.
	* exp_ch7.ads (Build_Final_List): Removed.
	(Build_Finalization_Collection): New routine.
	(Build_Raise_Statement): New routine.
	(Controller_Component): Removed.
	(Expand_Ctrl_Function_Call): Moved to Exp_Ch6.
	(Find_Final_List): Removed.
	(In_Finalization_Root): Removed.
	(Is_Simple_Protected_Type): Update related comment.
	(Make_Adjust_Call): New parameter profile and associated comments.
	(Make_Attach_Call): Removed.
	(Make_Final_Call): New parameter profile and associated comments.
	(Make_Finalize_Address_Body): New routine.
	(Make_Init_Call): New parameter profile and associated comments.
	(Make_Local_Deep_Finalize): New routine.
	(Make_Set_Finalize_Address_Ptr_Call): New routine.
	(Needs_Finalization): Moved to Exp_Util.
	* exp_ch9.adb (Add_Object_Pointer): Code reformatting.
	(Expand_N_Protected_Body): Remove the handling of finalization lists.
	(Find_Protection_Type): Moved to Exp_Util.
	* exp_disp.adb: Remove with and use clauses for Exp_Ch7.
	(Make_DT): Update sequence of dispatch table initialization. Remove the
	initialization of field RC_Offset. Add initialization of field Needs_
	Finalization.
	* exp_intr.adb (Expand_Unc_Deallocation): Code reformatting.
	Reimplement how an object is first finalized, then deallocated.
	* exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
	Code reformatting.
	* exp_tss.ads: Add special suffix for TSS primitive Finalize_Address.
	Register TSS_Finalize_Address with type TSS_Names.
	* exp_util.adb (Build_Allocate_Deallocate_Proc): New routine. This core
	procedure provides the interface between an allocation / deallocation
	and the support machinery in Ada.Finalization.Heap_Management.
	(Find_Init_Call): Code reformatting.
	(Find_Init_Call_In_List): Code reformatting.
	(Find_Protection_Type): Moved from Exp_Ch9.
	(Find_Prim_Op): Reimplement to add preference of recovered primitive.
	(Has_Controlled_Coextensions): Removed.
	(Has_Controlled_Objects): New routine.
	(In_Library_Level_Package_Body): New routine.
	(Insert_Action_After): New routine.
	(Is_Finalizable_Transient): New routine. This predicate determines
	whether an object declaration is one of the many variants of controlled
	transients.
	(Is_Null_Access_BIP_Func_Call): New routine.
	(Is_Non_BIP_Func_Call): New routine.
	(Is_Related_To_Func_Return): New routine.
	(Needs_Finalization): Moved from Exp_Ch7.
	* exp_util.ads (Build_Allocate_Deallocate_Proc): New routine.
	(Find_Protection_Type): Moved from Exp_Ch9.
	(Has_Controlled_Coextensions): Removed.
	(Has_Controlled_Objects): New routine.
	(In_Library_Level_Package_Body): New routine.
	(Insert_Action_After): New routine.
	(Is_Finalizable_Transient): New routine.
	(Is_Null_Access_BIP_Func_Call): New routine.
	(Is_Non_BIP_Func_Call): New routine.
	(Is_Related_To_Func_Return): New routine.
	(Needs_Finalization): Moved from Exp_ch7.
	* expander.adb (Expand): Add a case for N_Free_Statement.
	* freeze.adb (Freeze_All): Replace the generation of a finalization
	list with a collection for access-to-controlled types.
	(Freeze_Entity): Code reformatting.
	(Freeze_Record_Type): Remove the freezing of a record controller
	component.
	(Freeze_Subprogram): Code reformatting.
	* inline.adb (Cleanup_Scopes): Remove the reset of the scope
	finalization list.
	* lib-writ.adb (Write_Unit_Information): Output "PF" when a package
	has a library-level finalizer.
	* lib-writ.ads: Add "PF" to the sequence of unit attributes.
	* a-filico.ads, a-filico.adb, s-finimp.ads, s-finimp.adb: Removed.
	* Makefile.rtl: Remove a-filico and s-finimp from the list of object
	files. Add a-fihema to the list of object files.
	* par-ch4.adb:
	Alphabetize the associations in type Is_Parameterless_Attribute.
	* rtsfind.ads: Ada.Finalization_List.Controller and
	System.Finalization_Implementation are no longer a GNAT unit.
	Update the range of type Ada_Finalization_Child. Remove the following
	recoverable entities:

	   RE_Attach_To_Final_List
	   RE_Deep_Tag_Attach
	   RE_Finalize_List
	   RE_Finalize_One
	   RE_Finalizable_Ptr_Ptr
	   RE_Global_Final_List
	   RE_Limited_Record_Controller
	   RE_List_Controller
	   RE_Move_Final_List
	   RE_Record_Controller
	   RE_Simple_List_Controller

	Add the following recoverable entities:

	   RE_Add_Offset_To_Address
	   RE_Allocate
	   RE_Base_Pool
	   RE_Deallocate
	   RE_Exception_Identity
	   RE_Finalization_Collection
	   RE_Finalization_Collection_Ptr
	   RE_Needs_Finalization
	   RE_Save_Library_Occurrence
	   RE_Set_Finalize_Address_Ptr
	   RE_Set_Storage_Pool_Ptr
	   RE_Storage_Count
	* sem_aggr.adb (Resolve_Record_Aggregate): Remove mention of
	Name_uController.
	* sem_aux.adb (First_Discriminant): Remove mention of Name_uController.
	(First_Stored_Discriminant): Remove the mention of Name_uController.
	* sem_aux.ads: Comment reformatting.
	* sem_ch10.adb (Build_Chain): Signal the class-wide creation machinery
	to redecorate an already existing class-wide type.
	(Decorate_Tagged_Type): New parameter profile and associated comment.
	Create a "shadow class-wide type" for a shadow entity.
	* sem_ch11.adb (Analyze_Exception_Handlers): Remove the dubious setting
	of the final chain along with the associated comment.
	* sem_ch3.adb (Access_Type_Declaration): Add new local variable
	Full_Desig and set it to the full view of the designated type.
	Initialize the finalization collection to empty.
	(Build_Derived_Record_Type): Alphabetize local variables. Code
	reformatting.
	(Collect_Fixed_Components): Remove the mention of Name_uController.
	(Create_Constrained_Components): Remove the mention of Name_uController.
	(Make_Class_Wide_Type): Add specialized code to redecorate an existing
	class-wide type of a shadow entity.
	(Process_Full_View): Update the machinery which marks type
	Limited_Controlled's entity as limited.
	* sem_ch4.adb (Analyze_One_Call): Code reformatting.
	* sem_ch6.adb (Create_Extra_Formals): Do not generate a finalization
	list, instead make a collection build-in-place formal.
	* sem_ch8.adb (Analyze_Object_Renaming): Look at the available view of
	a designated type in order to establish a match between the renaming
	and the renamed entity.
	(Find_Selected_Component): Add guard to prevent spurious exceptions
	from being raised on .NET/JVM.
	* sem_disp.adb (Check_Dispatching_Operation): Include Finalize_Address
	to the list of primitive that need special processing. Update arrays
	C_Names and D_Names.
	(Replace_Types): Handle class-wide types.
	* sem_elab.adb (Check_A_Call): Since Deep_Initialize now has a
	different parameter profile, look at the first formal.
	* sem_prag.adb: Remove with and use clauses for Exp_Ch7. Add with and
	use clauses for Exp_Util.
	* sem_res.adb: Remove with and use clauses for Elists.
	(Propagate_Coextensions): Removed.
	(Resolve_Allocator): Do not propagate the list of coextensions from one
	allocator to another.
	* sem_util.adb (Build_Actual_Subtype_Of_Component): Rename variable
	Deaccessed_T to Desig_Typ.
	(Enter_Name): Remove the mention of Name_uController.
	(Gather_Components): Remove the mention of Name_uController.
	(Incomplete_Or_Private_View): New routine.
	(Is_Coextension_Root): Removed.
	(Is_Fully_Initialized_Type): Remove the mention of Name_uController.
	* sem_util.ads (Incomplete_Or_Private_View): New routine.
	(Is_Coextension_Root): Removed.
	* s-finroo.ads: Remove with clause for Ada.Unchecked_Conversion.
	Controlled types are now derived from a null tagged record. Remove
	types Finalizable_Ptr, Finalizable and Empty_Root_Controlled.
	* sinfo.adb (Coextensions): Removed.
	(Set_Coextensions): Removed.
	* sinfo.ads: Remove Coextensions from the explanation of node fields
	and its uses in nodes.
	Update the field usage of N_Allocator.
	(Coextensions): Removed along with its pragma Inline.
	(Set_Coextensions): Removed along with its pragma Inline.
	* snames.ads-tmpl: Remove names

	  Name_uClean
	  Name_uController
	  Name_uFinal_List
	  Name_uLocal_Final_List
	  Name_Finalization_Root
	  Name_Next
	  Name_Prev

	Add names

	  Name_uFinalizer
	  Name_Finalize_Address
	* s-pooglo.adb (Allocate): Add overriding indicator.
	(Deallocate): Add overriding indicator.
	(Storage_Size): Add overriding indicator.
	* s-soflin.adb (Adafinal_NT): Invoke Finalize_Library_Objects rather
	than Finalize_Global_List.
	(Null_Finalize_Global_List): Removed.
	(Save_Library_Occurrence): New routine.
	* s-soflin.ads: Remove variable Finalize_Global_List along with its
	initialization. Add variable Finalize_Library_Objects along with its
	pragma Export. Add variables Library_Exception and
	Library_Exception_Set along with their pragma Export.
	(Null_Finalize_Global_List): Removed.
	(Save_Library_Occurrence): New routine.
	* s-tassta.adb (Finalize_Global_Tasks): Call Finalize_Library_Objects
	rather than Finalize_Global_List.
	* tbuild.adb (Unchecked_Convert_To): Capture and set the parent field
	of the constructed node.

2011-08-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* link.c: Include "auto-host.h" before system headers.

2011-08-03  Vincent Celier  <celier@adacore.com>

	* make.adb (Gnatmake): Add to table Library_Projs only library projects
	that are not extended. Do not check if a library project that is
	extended should be regenerated. Do not add to table Library_Paths the
	libraries that are in extended projects. Link only with libraries that
	are in libray projects that are not extended.
	* prj-nmsc.adb (Check_Library_Attributes): Do not reset flag Library
	for a library project that is extended.

2011-08-03  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch6.adb (Find_Corresponding_Spec): When in an instance, skip
	conforming subprogram renamings that appear to be completions if they
	are not fully conformant.
	Such renamings are homographs but not completions.
	* sem_type.adb (Disambiguate): Handle disambiguation of overloaded
	names in a subprogram renaming that appears in an instance.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* exp_util.adb (Expand_Subtype_From_Expr): if the type is limited but
	not immutably limited, build actual subtype from expression to provide
	proper bounds to caller.

2011-08-03  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch8.adb: Minor comment correction.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

	* exp_strm.adb (Build_Array_Input_Function): In Ada 2005 mode, when
	returning a limited array, use an extended return statement.

2011-08-03  Vincent Celier  <celier@adacore.com>

	* make.adb (Initialize): If --subdirs= is used, but no project file is
	specified, attempt to create the specify subdir if it does not already
	exist and use it as the object directory as if -D had been specified.

2011-08-03  Arnaud Charlet  <charlet@adacore.com>

	* s-tpopsp-vms.adb: New file.
	* s-taprop-vms.adb: Put back ATCB_Key, since needed by this file on VMS.
	* gcc-interfaces/Makefile.in: Use s-taprop-vms.adb on VMS.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* make.adb, makeutl.adb, makeutl.ads, clean.adb (Makeutl.Queue): new
	package.

2011-08-03  Yannick Moy  <moy@adacore.com>

	* cstand.adb (Create_Standard): select Universal_Integer as an ALFA type
	* sem_ch3.adb (Array_Type_Declaration): detect array types in ALFA
	* sem_util.adb, sem_util.ads (Has_Static_Array_Bounds): new function to
	detect that an array has static bounds.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

	* exp_dist.adb: Minor reformatting.

2011-08-03  Arnaud Charlet  <charlet@adacore.com>

	* s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-vms.adb
	(ATCB_Key): Removed, not always used.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* gnatcmd.adb, make.adb, prj.adb, prj.ads, makeutl.adb, makeutl.ads,
	clean.adb, prj-conf.adb, prj-env.adb, prj-env.ads (Makeutl): remove
	most remaining global variables.

2011-08-03  Robert Dewar  <dewar@adacore.com>

	* gnatcmd.adb, prj-proc.adb, mlib-prj.adb, prj.adb, makeutl.ads,
	prj-util.adb, prj-util.ads, prj-conf.adb, prj-env.adb: Minor
	reformatting.

2011-08-03  Javier Miranda  <miranda@adacore.com>

	* exp_util.adb (Is_VM_By_Copy_Actual): Include N_Slide nodes as actuals
	that must be passed by copy in VM targets.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* prj.ads, prj-nmsc.adb (Files_Htable): removed this htable, which
	duplicates a similar htable now in the project tree.

2011-08-03  Claire Dross  <dross@adacore.com>

	* a-cfdlli.adb, a-cfhama.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb,
	a-cofove.adb ("=", Length, Is_Empty, Clear, Assign, Copy, Element,
	Replace_Element, Query_Element, Update_Element, Move, Insert, Prepend,
	Append, Delete, Delete_First, Delete_Last, Reverse_Element, Swap,
	Splice, First, First_Element, Last, Last_Element, Next, Previous, Find,
	Reverse_Find, Contains, Has_Element, Iterate, Reverse_Iterate, Capacity,
	Reserve_Length, Length, Strict_Equal, Left, Right): Data-structure
	update.

2011-08-03  Arnaud Charlet  <charlet@adacore.com>

	* s-taprop-posix.adb, s-taprop-linux.adb, s-taprop-tru64.adb
	(ATCB_Key): Removed, not always used.
	* s-tpopsp-posix.adb, s-tpopsp-posix-foreign.adb (ATCB_Key): Moved from
	s-taprop-posix.adb.
	* s-tpopsp-tls.adb: New file.
	* gcc-interface/Makefile.in: Use TLS implementation of s-tpopsp.adb on
	x86/x64/ia64/powerpc/sparc Linux.

2011-08-03  Arnaud Charlet  <charlet@adacore.com>

	* system-aix.ads, system-aix64.ads: Set ZCX_By_Default to True.
	* gcc-interface/Makefile.in: Switch to ZCX by default on AIX ports.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

	* rtsfind.ads, exp_dist.adb, exp_dist.ads
	(Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call):
	Fix type selection for mapping integer types to PolyORB types.

2011-08-03  Bob Duff  <duff@adacore.com>

	* sem_ch7.adb: Minor comment clarification.

2011-08-03  Bob Duff  <duff@adacore.com>

	* sem_ch13.adb (Analyze_Enumeration_Representation_Clause): If we get
	an error analyzing a choice, skip further processing. Further
	processing could cause a crash or cascade errors.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, mlib-prj.adb,
	prj.adb, prj.ads, makeutl.adb, makeutl.ads, clean.adb, prj-nmsc.adb,
	prj-util.adb, prj-util.ads, prj-conf.adb, prj-conf.ads, prj-env.adb,
	prj-env.ads (Shared_Project_Tree_Data): new type
	An aggregate project and its aggregated trees need to share the common
	data structures used for lists of strings, packages,... This makes the
	code simpler since otherwise we have to pass the root tree (also used
	for the configuration file data) in addition to the current project
	tree. This also avoids ambiguities as to which tree should be used.
	And finally this saves a bit of memory.
	(For_Every_Project_Imported): new parameter Tree.
	Since aggregated projects are using a different tree, we need to let
	the caller know which tree to use to manipulate the returned project.

2011-08-03  Robert Dewar  <dewar@adacore.com>

	* prj-proc.adb, exp_util.ads, exp_ch9.adb, make.adb, prj-ext.adb,
	prj-ext.ads, alfa.ads, sem_ch4.adb, makeutl.adb, makeutl.ads,
	lib-xref-alfa.adb, sem_cat.adb, exp_dist.adb, get_alfa.adb,
	prj-env.adb, prj-env.ads, prj-tree.adb, alfa.ads: Minor reformatting.

2011-08-03  Javier Miranda  <miranda@adacore.com>

	* exp_util.adb, sem_aux.adb, exp_util.ads, sem_aux.ads:
	Move routine Is_VM_By_Copy_Actual from sem_aux to exp_util.

2011-08-03  Bob Duff  <duff@adacore.com>

	* sem_ch8.adb (Is_Primitive_Operator_In_Use): Always check In_Use on
	the Base_Type.

2011-08-03  Joel Brobecker  <brobecker@adacore.com brobecker>

	* g-sha256.ads, g-sha512.ads, g-sha1.ads, g-sha224.ads, g-sha384.ads,
	g-sehash.ads: Fix typo. Update header.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

	* exp_ch6.adb (Expand_Actuals): Remove Ada_2005 guard on build-in-place
	expansion.

2011-08-03  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch4.adb (Analyze_Overloaded_Selected_Component): Consider
	prefixes of private types along with records, since the selector may be
	a discriminant.
	* sem_res.adb (Resolve_Selected_Component): Consider prefixes of
	private types along with records, since the selector may be a
	discriminant.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* prj-pp.adb (Pretty_Print): remove trailing blank line in the file

2011-08-03  Javier Miranda  <miranda@adacore.com>

	* sem_aux.adb (Is_VM_By_Copy_Actual): Fix wrong use of
	Tagged_Type_Expansion.

2011-08-03  Yannick Moy  <moy@adacore.com>

	* sem_res.adb
	(Resolve_Op_Concat_Arg): do not issue a SPARK violation when argument of
	concatenation is the name of a constant

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, prj-ext.adb, prj-ext.ads, prj-env.adb, prj-env.ads,
	prj-tree.adb, prj-tree.ads (Initialize_And_Copy, Copy): new subprograms
	(Process_Declarative_Items): new parameter Child_Env.

2011-08-03  Yannick Moy  <moy@adacore.com>

	* alfa.ads Update format of ALFA section in ALI file in order to add a
	mapping from bodies to specs when both are present
	(ALFA_Scope_Record): add components for spec file/scope
	* get_alfa.adb (Get_ALFA): read the new file/scope for spec when present
	* lib-xref-alfa.adb
	(Collect_ALFA): after all scopes have been collected, fill in the spec
	 information when relevant
	* put_alfa.adb (Put_ALFA): write the new file/scope for spec when
	present.

2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>

	* inline.adb (Add_Inlined_Subprogram): Do not consider the enclosing
	code unit to decide whether to add internally generated subprograms.

2011-08-03  Javier Miranda  <miranda@adacore.com>

	* sem_aux.ads, sem_aux.adb (Is_VM_By_Copy_Actual): New subprogram.
	* exp_ch9.adb
	(Build_Simple_Entry_Call): Handle actuals that must be handled by copy
	in VM targets.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* make.adb, makeutl.adb, makeutl.ads (Make.Switches_Of): now shares
	code with Makeutl.Get_Switches.
	* prj-tree.adb: Update comment.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

	* sem_cat.adb (Validate_RCI_Subprogram_Declaration): Reject a remote
	subprogram with a limited formal that does not support external
	streaming.

2011-08-03  Yannick Moy  <moy@adacore.com>

	* get_alfa.adb (Get_ALFA): add missing Skip_Spaces at start of
	continuation line
	* lib-xref-alfa.adb (Add_ALFA_File): split removal of scopes that are
	not from current unit in two phases, because it is not possible to
	change the table while iterating over its content.
	* put_alfa.adb (Put_ALFA): reset current file/scope at each new entity

2011-08-03  Sergey Rybin  <rybin@adacore.com>

	* vms_data.ads: Add qualifier for gnatmetric --no-static-loop option
	* gnat_ugn.texi: Update description of complexity metrics (gnatmetric)

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Op_Concat_Arg): if the argument is an aggregate
	and the component type is composite, this is ambiguous for predefined
	concatenation, but if the node is not overloaded and the entity is a use
	-defined function its profile can be used to resolve that aggregate.

2011-08-03  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb: Minor code cleanup.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

	* exp_dist.adb: Do not generate distribution stubs if serious errors
	have been diagnosed.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Try_Primitive_Operation): when checking the validity of
	the first formal of a primitive operation, go to the base type to
	handle properly an access to a derived type with constrained
	discriminants.
	* sem_type.adb (Disambiguate): an immediately visible operator hides a
	user-defined function that is only use-visible.

2011-08-03  Robert Dewar  <dewar@adacore.com>

	* sem_aggr.adb, sem_ch3.adb, lib.ads, gnatcmd.adb, prj-proc.adb,
	make.adb, lib-writ.adb, prj-part.adb, prj-part.ads, prj-ext.adb,
	fname-uf.adb, prj-ext.ads, prj.adb, prj.ads, sem_attr.adb, alfa.adb,
	prj-makr.adb, errout.adb, makeutl.adb, makeutl.ads, restrict.ads,
	sem_ch6.adb, g-pehage.adb, clean.adb, put_alfa.adb, lib-xref-alfa.adb,
	prj-nmsc.adb, prj-nmsc.ads, sem_ch8.adb, prj-pars.ads, exp_aggr.adb,
	prj-attr.ads, sem_ch13.adb, get_alfa.adb, prj-env.adb, prj-env.ads,
	alfa_test.adb, prj-tree.adb, prj-tree.ads, einfo.ads: Minor reformatting

2011-08-03  Robert Dewar  <dewar@adacore.com>

	* repinfo.adb (List_Mechanism): Add handling of
	Convention_Ada_Pass_By_XXX.
	* sem_mech.adb (Set_Mechanism): Ditto.
	* sem_prag.adb (Process_Convention): Add entries for
	Convention_Ada_Pass_By_XXX.
	* snames.adb-tmpl, snames.ads-tmpl: Ditto.

2011-08-03  Pascal Obry  <obry@adacore.com>

	* makeutl.adb: Minor reformatting.

2011-08-03  Vincent Celier  <celier@adacore.com>

	* fname-uf.adb
	(Get_File_Name) If the file cannot be found when there are no config
	pragmas file and May_Fail is True, return No_File instead of the file
	name, to be consistent.

2011-08-03  Pascal Obry  <obry@adacore.com>

	* adaint.c (__gnat_is_executable_file_attr): Avoid access
	to null pointer.

2011-08-03  Javier Miranda  <miranda@adacore.com>

	* sem_ch13.adb
	(Same_Representation): In VM targets the representation of arrays with
	aliased components differs from arrays with non-aliased components.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, prj-attr.adb, prj-attr.ads (Get_Attribute_Index): do
	not systematically lower case attribute indexes that contain no "."
	Fix definition of several Naming attributes, which take
	a unit name as index and therefore should be case insensitive.
	Minor refactoring (reduce length of variable names).

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* makeutl.adb, makeutl.ads (Get_Switches): new subprogram.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, prj-part.adb,
	prj-part.ads, switch-m.adb, switch-m.ads, prj-makr.adb, clean.adb,
	prj-pars.adb, prj-pars.ads, prj-conf.adb, prj-conf.ads, prj-tree.adb,
	prj-tree.ads (Prj.Tree.Environment): new type.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, prj.ads, makeutl.adb, makeutl.ads, prj-conf.adb,
	prj-tree.adb, prj-tree.ads (Environment): new type.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* prj-tree.ads: Remove unused variable.

2011-08-03  Yannick Moy  <moy@adacore.com>

	* restrict.adb (Restriction_Msg): set "SPARK" all in upper case for
	issuing messages related to SPARK restriction violation.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb: guard against error nodes in return statements.

2011-08-03  Arnaud Charlet  <charlet@adacore.com>

	* errout.adb (Error_Msg_Internal): the main unit has not been read yet,
	a warning can only appear on a configuration file, so emit warning
	without further checks.

2011-08-03  Arnaud Charlet  <charlet@adacore.com>

	* s-interr.ads: add overriding keyword.

2011-08-03  Geert Bosch  <bosch@adacore.com>

	* exp_attr.adb: Fix minor typo.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* par-ch4.adb: improve error recovery.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* prj-part.adb, prj-part.ads, prj-makr.adb, prj-pars.adb, prj-conf.adb,
	prj-env.adb (Prj.Part.Parse): change parameter Always_Errout_Finalize
	to Errout_Handling.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* prj-dect.adb (Parse_Attribute_Declaration): make sure we can use
	"external" as an attribute name in aggregate projects.

2011-08-03  Jose Ruiz  <ruiz@adacore.com>

	* s-taprop-vxworks.adb: (Create_Task, Initialize): Ada 2012 pragma CPU
	uses CPU numbers starting 1, while VxWorks uses CPU numbers starting
	from 0, so we need to adjust.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, prj-ext.adb, prj-ext.ads, makeutl.adb, prj-tree.adb,
	prj-tree.ads, gnatcmd.adb, clean.adb (External_References): new type.

2011-08-03  Yannick Moy  <moy@adacore.com>

	* sem_ch6.adb (New_Overloaded_Entity): only issue error for SPARK
	restriction on overloaded entity if the entity is not an operator.

2011-08-03  Yannick Moy  <moy@adacore.com>

	* sem_ch7.adb, sem_res.adb, sem_attr.adb, restrict.adb,
	restrict.ads: Rename remaining Check_Formal_Restriction* into
	Check_SPARK_Restriction*.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb,
	prj-nmsc.ads, prj-err.adb (Project_Data): now discriminated on its
	qualifier.
	(Project_Empty): removed
	(Empty_Project): new parameter Qualifier
	This is used to have fields specific to aggregate projects, cleaner
	New field to store the list of aggregated projects.
	(Check_Aggregate_Project): removed
	(Process_Aggregated_Projects, Free): new subprograms.

2011-08-03  Olivier Hainque  <hainque@adacore.com>

	* tracebak.c (STOP_FRAME ppc AIX): Stop at null return address as well.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Analyze_Object_Renaming): if the renamed object is an
	explicit dereference of an unconstrained type, create a constrained
	subtype for it, as is done for function calls that return an
	unconstrained type.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

	* g-pehage.adb (Finalize): Avoid possible double-free.

2011-08-03  Steve Baird  <baird@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Don't expand
	Elab_Spec/Body attrs in CodePeer_Mode.

2011-08-03  Javier Miranda  <miranda@adacore.com>

	* exp_aggr.adb (Flatten): Convert to positional form aggregates whose
	low bound is not known at compile time but they have no others choice.
	Done because in this case the bounds can be obtained directly from the
	aggregate.

2011-08-03  Ed Falis  <falis@adacore.com>

	* s-tasinf-vxworks.ads: Update comment to reflect 0 indexing of CPUs
	on VxWorks SMP. Remove unusable constant ANY_CPU.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* gnatcmd.adb, make.adb, prj-part.adb, prj-part.ads, prj-makr.adb,
	clean.adb, prj-nmsc.adb, prj-pars.adb, prj-conf.adb, prj-env.adb,
	prj-env.ads (Prj.Env.Initialize_Default_Project_Path,
	Prj.Env.Initialize_Empty): new subprograms
	(Get_Env, Find_Project): remove parameter Target_Name.

2011-08-03  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch3.adb (Build_Derived_Record_Type): Test the Derive_Subps formal
	as a condition for the delayed call to Derived_Subprograms done for the
	case of the rewriting of a derived type that constrains the
	discriminants of its parent type.
	Avoids redundant subprogram derivations for private subtype derivations.

2011-08-03  Javier Miranda  <miranda@adacore.com>

	* exp_aggr.adb (Init_Hidden_Discriminants): New subprogram of
	Build_Record_Aggr_Code.
	(Build_Record_Aggr_Code): Add missing support to initialize hidden
	discriminants in extension aggregates.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* prj-pp.adb (Print): also output project qualifiers, since in
	particular "aggregate" is mandatory in an aggregate project.

2011-08-03  Emmanuel Briot  <briot@adacore.com>

	* prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-env.adb:
	(Debug_Output): new function.

2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat_ugn.texi: Document -Wstack-usage.
	* gcc-interface/misc.c (enumerate_modes): Add guard for ghost FP modes.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

	* sem_prag.adb Issue an error (not a warning) when a C++ type does not
	have keyword LIMITED.

2011-08-03  Yannick Moy  <moy@adacore.com>

	* alfa.adb, alfa.ads, alfa_test.adb: New files.
	* ali.adb (Known_ALI_Lines): add 'C' lines (SCO) and 'F' lines (ALFA)
	(Scan_ALI): do not issue a fatal error if parsing known lines after Xref
	section (does not happen in compiler, only if code directly calls
	Scan_ALI).
	* get_alfa.adb, get_alfa.ads: New files.
	* lib-writ.adb, lib-writ.ads (Write_ALI): output ALFA information if
	needed.
	* lib-xref-alfa.adb: New file.
	* lib-xref.adb, lib-xref.ads
	(Xref_Entry): redefine information needed in cross-references for ALFA.
	Push ALFA treatments in separated local package.
	(Enclosing_Subpragram_Or_Package): treat specially subprogram
	identifiers. Return entity of package body instead of spec. Return
	Empty for a scope with no location.
	(Generate_Reference): adapt to new components for ALFA information.
	Remove the need for D references on definitions.
	(Is_Local_Reference): moved to ALFA local package
	(Output_References): extract subfunction as Extract_Source_Name
	(Output_Local_References): remove procedure, replaced by filtering of
	cross-references in package ALFA and printing in Put_ALFA.
	(Write_Entity_Name): remove procedure
	* lib.adb, lib.ads (Extract_Source_Name): extract here function to
	print exact name of entity as it appears in source file
	(Unit_Ref_Table): make type public for use in Lib.Xref.ALFA
	* put_alfa.adb, put_alfa.ads: New files.
	* xref_lib.adb (Search_Xref): protect read of cross-references against
	reading other sections of the ALI file, in gnatxref
	(Search): protect read of cross-references against reading other
	sections of the ALI file, in gnatfind.
	* gcc-interface/Make-lang.in: Update dependencies.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

	* sem_ch3.adb: Minor reformatting.

2011-08-03  Jose Ruiz  <ruiz@adacore.com>

	* s-inmaop-vxworks.adb (Setup_Interrupt_Mask): Do nothing instead of
	raising an exception.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Set_String_Literal_Subtype): if index type is an integer
	type, always use 1 as the lower bound or string, even if lower bound of
	context is not static, to handle properly null strings in a non-static
	context.

2011-08-03  Bob Duff  <duff@adacore.com>

	* sem_prag.adb (Resolve_Aggregate): An array aggregate with 'others' is
	always legal on the right-hand side of an assignment statement; there
	is always an applicable index constraint in this case. Therefore, the
	check for Pkind = N_Assignment_Statement is now unconditional -- it
	doesn't depend on whether Is_Constrained (Typ).

2011-08-03  Robert Dewar  <dewar@adacore.com>

	* exp_ch5.adb, sem_prag.adb, exp_ch4.adb: Minor reformatting.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Build_Itype_Reference): do not create an itype reference
	for an itype created within a generic unit.

2011-08-03  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat_ugn.texi (Switches for gcc): Make it clearer that -fno-inline
	suppresses all inlining.

2011-08-03  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sem_res.adb, exp_ch13.adb, exp_disp.adb,
	exp_aggr.adb: Minor reformatting.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

	* exp_ch5.adb (Expand_N_Assignment_Statement): Do not force inlining of
	tagged assignment when discriminant checks are suppressed. This is
	useless and extremely costly in terms of static stack usage.

2011-08-03  Bob Duff  <duff@adacore.com>

	* sem_prag.adb (Get_Base_Subprogram): Do not follow Alias for instances
	of generics, because this leads to the wrong entity in the wrong scope,
	causing (e.g.) pragma Export_Procedure to get an error if the entity is
	an instance.
	(Process_Interface_Name): Follow Alias for instances of generics, to
	correct for the above change.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.adb (Expand_N_Selected_Component): If the discriminant value
	is an integer literal it is always safe to replace the reference. In
	addition, if the reference appears in the generated code for an object
	declaration it is necessary to copy because otherwise the reference
	might be to the uninitilized value of the discriminant of the object
	itself.

2011-08-03  Pascal Obry  <obry@adacore.com>

	* adaint.c (__gnat_is_executable_file_attr): Fix Win32 circuitry when no
	ACL used, in this case we want to check for ending .exe, not .exe
	anywhere in the path.

2011-08-03  Sergey Rybin  <rybin@adacore.com>

	* tree_io.ads (ASIS_Version_Number): Update because of the changes in
	the tree structure (semantic decoration of references to record
	discriminants).

2011-08-03  Gary Dismukes  <dismukes@adacore.com>

	* sem_aggr.adb (Analyze_Array_Aggregate): When checking the discrete
	choices of a named array aggregate, bail out when any choices are
	marked as Errors_Posted.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch13.adb (Expand_N_Freeze_Entity): cleanup determination of scope
	in which entity is frozen, to handle properly loop variables in
	iterators.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Set_String_Literal_Subtype): if the lower bound of the
	subtype is not static, compute the upper bound using attributes, to
	handle properly index types that are not integer types.

2011-08-03  Bob Duff  <duff@adacore.com>

	* gnat_rm.texi, gnat_ugn.texi: Fix some dangling URLs.
	Update copyright notice.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Build_Discriminant_Constraints): Only use
	Original_Discriminant if within an instance.
	* sem_ch4.adb (Analyze_Selected_Component): Ditto.

2011-08-03  Thomas Quinot  <quinot@adacore.com>

	* einfo.ads: Minor reformatting.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* exp_disp.adb (Check_Premature_Freezing): diagnose the presence of a
	composite type with an unfrozen subcomponent, in the profile of a
	primitive operation.

2011-08-03  Robert Dewar  <dewar@adacore.com>

	* sem_util.ads, exp_aggr.adb, exp_ch3.adb: Minor reformatting.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): if a constant object of an
	unconstrained type with discriminants is initialized with an aggregate,
	use the constrained subtype of the aggregate as the type of the object,
	because it is immutable, and this allows the back-end to generate no
	code for the object declaration.

2011-08-03  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Optimize_Length_Check): Fix bad handling of case where
	comparison operand is variable, and turns out to be zero or negative.

2011-08-03  Javier Miranda  <miranda@adacore.com>

	* exp_intr.adb
	(Expand_Dispatching_Constructor_Call): Disable expansion of
	code required for native targets. Done to avoid generating
	references to unavailable runtime entities in VM targets.
	* exp_ch3.adb
	(Expand_N_Object_Declaration): Add missing support to handle
	the explicit initialization of class-wide interface objects.
	Fix documentation.

2011-08-03  Matthew Heaney  <heaney@adacore.com>

	* a-cobove.adb (Merge): Move source onto target, instead of using Assign

2011-08-03  Matthew Heaney  <heaney@adacore.com>

	* a-cbdlli.adb (Splice): move source items from first to last

2011-08-03  Yannick Moy  <moy@adacore.com>

	* sem_util.ads: comment added.

2011-08-03  Javier Miranda  <miranda@adacore.com>

	* exp_aggr.adb
	(Expand_Record_Aggregate): In VM targets disable the expansion into
	assignments of aggregates whose type is not known at compile time.

2011-08-03  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch9.adb (Build_Renamed_Formal_Declaration): common procedure for
	protected entries and task entries, to build the proper renaming
	declaration for entry formals, used in debugging.
	* exp_ch2.adb (Expand_Entry_Parameter): handle task and entry
	parameters in the same way.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* a-direct.adb, sinfo.ads, exp_ch9.adb, scng.adb, sem_util.adb,
	sem_util.ads, restrict.ads, par-prag.adb: Minor reformatting and/or
	code reorganization.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* debug.adb: Debug flag d.P to suppress length comparison optimization
	* exp_ch4.adb (Optimize_Length_Comparison): New routine to optimize
	comparison of Length by comparing First/Last instead.

2011-08-02  Matthew Heaney  <heaney@adacore.com>

	* a-cobove.ads: Code clean up.

2011-08-02  Vincent Celier  <celier@adacore.com>

	* adaint.c (file_names_case_sensitive_cache): New static int.
	(__gnat_get_file_names_case_sensitive): Cache the return value in
	file_names_case_sensitive_cache at the first invocation, to avoid
	multiple calls to getenv.

2011-08-02  Bob Duff  <duff@adacore.com>

	* sem_ch12.adb (Validate_Derived_Type_Instance): Implement AI05-0218-1.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem.ads,
	sem_util.adb, sem_util.ads, sem_res.adb, sem_ch2.adb, sem_ch4.adb,
	sem_ch6.adb, sem_ch11.adb: Add semantic flag In_Pre_Post_Expression to
	indicate that we are in a precondition or postcondition. This is used in
	Mark_Non_ALFA_Subprogram (renaming of Mark_Non_ALFA_Subprogram_Body) to
	decide whether to flag the spec or body of the current subprogram as
	not in ALFA.

2011-08-02  Fabien Chouteau  <chouteau@adacore.com>

	* impunit.adb: Add Ada.Execution_Time.Interrupts in the Ada2012 package
	list.
	* a-extiin.ads: New file.

2011-08-02  Bob Duff  <duff@adacore.com>

	* a-direct.adb (Rename): Implement AI05-0231-1. In particular, Rename
	now raises Name_Error instead of Use_Error in certain cases. The other
	parts of this AI were already implemented properly.

2011-08-02  Vincent Celier  <celier@adacore.com>

	* link.c: Only import "auto-host.h" when building the gnattools.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_util.adb: Inter-unit inlining does not work for a subprogram
	which calls a local subprogram, so extract subprogram
	from Mark_Non_ALFA_Subprogram_Body.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_ch9.adb
	(Extract_Dispatching_Call): If the type of the dispatching object is an
	access type then return an explicit dereference in the Object out-mode
	parameter.

2011-08-02  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch3.adb (Analyze_Subtype_Declaration): Generate range
	compatibility checks for all indexes of an array subtype, not just the
	first. Reset Has_Dynamic_Range_Check on the subtype before each
	potential check to ensure that Insert_Range_Checks will not elide any
	of the dynamic checks.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* par-prag.ad (Process_Restrictions_Or_Restriction_Warnings): recognize
	SPARK restriction at parsing time.
	* scng.adb (Scan): Generate a token Tok_SPARK_Hide for a SPARK HIDE
	directive only if the SPARK restriction is set for this unit.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb, sem_util.ads,
	sem_res.adb, sem_ch2.adb, sem_ch4.adb, sem_ch6.adb,
	sem_ch11.adb: Protect call to Current_Subprogram which might be costly
	when repeated. Rename Current_Subprogram_Is_Not_In_ALFA into
	Mark_Non_ALFA_Subprogram_Body.
	Split body of Mark_Non_ALFA_Subprogram_Body to get body small and
	inlined.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_res.adb: Protect calls to Matching_Static_Array_Bounds which
	might be costly.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* exp_ch9.adb, exp_sel.adb, restrict.ads, exp_disp.adb, erroutc.ads,
	exp_ch3.adb: Minor reformatting.

2011-08-02  Emmanuel Briot  <briot@adacore.com>

	* adaint.c (__gnat_locate_exec_on_path): only returns executable
	files, not any regular file.
	(__gnat_locate_file_with_predicate): new subprogram.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sinfo.adb, sinfo.ads: Restrict the use of flags
	Has_Dynamic_Length_Check and Has_Dynamic_Range_Check to expression
	nodes, plus N_Subtype_Declaration for the 2nd one.

2011-08-02  Sergey Rybin  <rybin@adacore.com>

	* gnat_rm.texi: Ramification of pragma Eliminate documentation
	 - fix bugs in the description of Source_Trace;
	 - get rid of UNIT_NAME;

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_ch9.adb
	(Build_Dispatching_Requeue): Adding support for VM targets
	since we cannot directly reference the Tag entity.
	* exp_sel.adb (Build_K): Adding support for VM targets.
	(Build_S_Assignment): Adding support for VM targets.
	* exp_disp.adb
	(Default_Prim_Op_Position): In VM targets do not restrict availability
	of predefined interface primitives to compiling in Ada 2005 mode.
	(Is_Predefined_Interface_Primitive): In VM targets this service is not
	restricted to compiling in Ada 2005 mode.
	(Make_VM_TSD): Generate code that declares and initializes the OSD
	record. Needed to support dispatching calls through synchronized
	interfaces.
	* exp_ch3.adb
	(Make_Predefined_Primitive_Specs): Enable generation of predefined
	primitives associated with synchronized interfaces.
	(Make_Predefined_Primitive_Bodies): Enable generation of predefined
	primitives associated with synchronized interfaces.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
	statements hidden in SPARK if preceded by the HIDE directive
	(Parse_Exception_Handlers): mark each exception handler in a sequence of
	exception handlers as hidden in SPARK if preceded by the HIDE directive
	* par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
	if starting with the HIDE directive
	* par-ch7.adb (P_Package): mark a package body hidden in SPARK if
	starting with the HIDE directive; mark the declarations in a private
	part as hidden in SPARK if the private part starts with the HIDE
	directive
	* restrict.adb, restrict.ads
	(Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
	(Is_In_Hidden_Part_In_SPARK): new function which returns whether its
	argument node belongs to a part which is hidden in SPARK
	(Check_SPARK_Restriction): do not issue violations on nodes in hidden
	parts in SPARK; protect the possibly costly call to
	Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
	* scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
	* scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
	Accumulate_Token_Checksum_GNAT_5_03): add case for new token
	Tok_SPARK_Hide.
	(Scan): recognize special comment starting with '#' and followed by
	SPARK keyword "hide" as a HIDE directive.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* types.ads, erroutc.ads: Minor reformatting.

2011-08-02  Vincent Celier  <celier@adacore.com>

	* link.c: Add response file support for cross platforms.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
	in an association, set parent field of copy before partial analysis.
	* sem_res.adb (Resolve_Slice): create reference to itype only when
	expansion is enabled.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
	for new flag denoting which subprogram bodies are in ALFA
	* restrict.adb, sem_ch7.adb: Update comment
	* sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
	sem_ch9.adb, sem_res.adb: Add calls to
	Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
	* sem_ch6.adb (Analyze_Function_Return): add calls to
	Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
	middle of the body, and extended return.
	(Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
	False when missing return.
	(Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
	to True for subprograms whose spec is in ALFA. Remove later on the flag
	on the entity used for a subprogram body when there exists a separate
	declaration.
	* sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
	if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
	False, otherwise do nothing.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_ch4.ads: minor formatting.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
	debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
	errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
	restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
	opt.ads: cleanup of SPARK mode

2011-08-02  Yannick Moy  <moy@adacore.com>

	* cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
	types.
	* einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
	(Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
	* sem_ch3.adb
	(Analyze_Object_Declaration): set Is_In_ALFA flag for objects
	(Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
	(Constrain_Integer): set Is_In_ALFA flag for integer subtypes
	(Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
	types.
	(Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
	non-static range.
	* sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
	functions whose return type is not in ALFA.
	(Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
	specifications.
	(Process_Formals): unset Is_In_ALFA flag for subprograms if a
	parameter's type is not in ALFA.
	* stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
	types are in ALFA.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6 (Analyze_Expression_Function): treat the function as
	Inline_Always, and introduce a subprogram declaration for it when it is
	not a completion.
	* inline.adb (Add_Inlined_Body): recognize bodies that come from
	expression functions, so that the back-end can determine whether they
	can in fact be inlined.
	* sem_util.adb (Is_Expression_Function): predicate to determine whether
	a function body comes from an expression function.

2011-08-02  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
	null exclusions to test Can_Never_Be_Null on the anonymous access types
	of the formals rather than testing the formals themselves. Exclude this
	check in cases where the Old_Formal is marked as a controlling formal,
	to avoid issuing spurious errors for bodies completing dispatching
	operations (due to the flag not getting set on controlling access
	formals in body specs).
	(Find_Corresponding_Spec): When checking full and subtype conformance of
	subprogram bodies in instances, pass Designated and E in that order, for
	consistency with the expected order of the formals (New_Id followed by
	Old_Id).

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch8.adb: Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
	Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
	primitive operations of class-wide actuals.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_atag.ads, exp_atag.adb
	(Build_Common_Dispatching_Select_Statements): Remove argument Loc
	since its value is implicitly passed in argument Typ.
	* exp_disp.adb (Make_Disp_Conditional_Select_Body,
	Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
	Build_Common_Dispatching_Select_Statements.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
	exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
	Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_res.adb: Minor reformatting.
	* sem_prag.adb: Minor reformatting.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_atag.adb, exp_atags.ads
	(Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
	by the tagged type Entity. Required to use this routine in the VM
	targets since we do not have available the Tag entity in the VM
	platforms.
	* exp_ch6.adb
	(Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
	Ada.Tags has not been previously loaded.
	* exp_ch7.adb
	(Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
	Build_VM_TSDs if package Ada.Tags has not been previously loaded.
	* sem_aux.adb
	(Enclosing_Dynamic_Scope): Add missing support to handle the full
	view of enclosing scopes. Required to handle enclosing scopes that
	are synchronized types whose full view is a task type.
	* exp_disp.adb
	(Build_VM_TSDs): Minor code improvement to avoid generating and
	analyzing lists with empty nodes.
	(Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
	(Make_Disp_Conditional_Select_Body): Add support for VM targets.
	(Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
	(Make_Disp_Timed_Select_Body): Add support for VM targets.
	(Make_Select_Specific_Data_Table): Add support for VM targets.
	(Make_VM_TSD): Generate code to initialize the SSD structure of
	the TSD.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* lib-writ.adb (Write_ALI): when ALFA mode is set, write local
	cross-references section in ALI.
	* lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
	(enclosing subprogram), Slc (location of Sub) and Sun (unit number of
	Sub).
	(Enclosing_Subprogram_Or_Package): new function to return the enclosing
	subprogram or package entity of a node
	(Is_Local_Reference_Type): new function returns True for references
	selected in local cross-references.
	(Lt): function extracted from Lt in Output_References
	(Write_Entity_Name): function extracted from Output_References
	(Generate_Definition): generate reference with type 'D' for definition
	of objects (object declaration and parameter specification), with
	appropriate locations and units, for use in local cross-references.
	(Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
	references of type 'I' for initialization in object definition.
	(Output_References): move part of function Lt and procedure
	Write_Entity_Name outside of the body. Ignore references of types 'D'
	and 'I' introduced for local cross-references.
	(Output_Local_References): new procedure to output the local
	cross-references sections.
	(Lref_Entity_Status): new array defining whether an entity is a local
	* sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
	with 'I' type when initialization expression is present.
	* get_scos.adb, get_scos.ads: Correct comments and typos

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
	the JVM target.
	* exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
	the JVM target.
	* exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
	TSD support.

2011-08-02  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
	(No_Space_Img): New function
	(Find_Excluded_Sources): When reading from a file, record the file name
	and the line number for each excluded source.
	(Mark_Excluded_Sources): When reporting an error, if the excluded
	sources were read from a file, include file name and line number in
	the error message.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
	generation of TSDs to the DOTNET compiler.
	* exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
	generation of TSDs to the DOTNET compiler.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
	record of all the tagged types declared inside library level package
	declarations, library level package bodies or library level subprograms.
	* exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
	associated with a given tagged type.
	(Build_VM_TSDs): New subprogram.
	* exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
	compilation units that are subprograms.
	* exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
	compilation units that are package bodies.
	(Expand_N_Package_Declaration): Generate TSDs of the main compilation
	units that are a package declaration or a package instantiation.
	* exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
	reorganization to improve the error generated by the frontend when the
	function Ada.Tags.Secondary_Tag is not available.
	* rtsfind.ads (RE_Register_TSD): New runtime entity.
	* exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* s-imenne.ads: Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* a-stunau.ads: Add pragma Suppress_Initialization for Big_String
	* freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
	* s-stalib.ads: Add pragma Suppress_Initialization for Big_String

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* einfo.ads (Materialize_Entity): Document this is only for renamings
	* exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
	required debug information in the case where we transform the object
	declaration into a renaming declaration.
	* exp_ch4.adb (Expand_Concatenate): Generate debug info for result
	object
	* exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
	Materialize_Entity.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* einfo.ads, einfo.adb (Suppress_Initialization): Replaces
	Suppress_Init_Procs.
	* exp_ch3.adb, exp_disp.adb, freeze.adb: Use
	Suppress_Initialization/Initialization_Suppressed.
	* gnat_rm.texi: New documentation for pragma Suppress_Initialization
	* sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
	* sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
	* sem_prag.adb: New processing for pragma Suppress_Initialization.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
	Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
	only have inheritable classwide pre/postconditions.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
	* rtsfind.ads (RE_Check_TSD): New runtime entity.
	* exp_disp.adb (Make_DT): Generate call to the new runtime routine that
	checks if the external tag of a type is the same as the external tag
	of some other declaration.

2011-08-02  Thomas Quinot  <quinot@adacore.com>

	* s-taskin.ads: Minor reformatting.

2011-08-02  Emmanuel Briot  <briot@adacore.com>

	* g-comlin.adb (Display_Help): swap the order in which it prints the
	short help and the general usage.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
	the aspect declarations and attach them to the generic copy for
	subsequent analysis.
	(Analyze_Subprogram_Instantiation): copy explicitly the aspect
	declarations of the generic tree to the new subprogram declarations.
	* sem_attr.adb (Check_Precondition_Postcondition): recognize
	conditions that apply to a subprogram instance.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
	private type with a tagged full view is not derived in the immediate
	scope of the partial view, (RM 7.3 (7)) use the scope of the base type.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb: Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Loop_Statement):  If the iteration scheme is an
	Ada2012 iterator, the loop will be rewritten during expansion into a
	while loop with a cursor and an element declaration. Do not analyze the
	body in this case, because if the container is for indefinite types the
	actual subtype of the elements will only be determined when the cursor
	declaration is analyzed.

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
	size/alignment related attributes in CodePeer_Mode.

2011-08-02  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
	Prepend_Element, since this can result in the operation getting the
	wrong slot in the full type's dispatch table if the full type has
	inherited operations. The incomplete type's operation will get added
	to the proper position in the full type's primitives
	list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
	(Process_Incomplete_Dependents): Add Is_Primitive test when checking for
	dispatching operations, since there are cases where nonprimitive
	subprograms can get added to the list of incomplete dependents (such
	as subprograms in nested packages).
	* sem_ch6.adb (Process_Formals): First, remove test for being in a
	private part when determining whether to add a primitive with a
	parameter of a tagged incomplete type to the Private_Dependents list.
	Such primitives can also occur in the visible part, and should not have
	been excluded from being private dependents.
	* sem_ch7.adb (Uninstall_Declarations): When checking the rule of
	RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
	list of a Taft-amendment incomplete type is a primitive before issuing
	an error that the full type must appear in the same unit. There are
	cases where nonprimitives can be in the list (such as subprograms in
	nested packages).
	* sem_disp.adb (Derives_From): Use correct condition for checking that
	a formal's type is derived from the type of the corresponding formal in
	the parent subprogram (the condition was completely wrong). Add
	checking that was missing for controlling result types being derived
	from the result type of the parent operation.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* errout.adb (First_Node): minor renaming
	* restrict.adb (Check_Formal_Restriction): put restriction warning on
	first node.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
	before accessing operands.
	* sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
	decide whether an initialization expression respects SPARK rules, as
	the plain node is the expanded one. This allows for more valid warnings
	to be issued.
	* gnat_rm.texi: Minor update.

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
	previous change.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sem_ch4.adb: Minor reformatting.

2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
	loop statements and the element renaming declaration with a block when
	the element type is controlled.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sinfo.ads: Minor formatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Add_Association): if the association has a box and no
	expression, use the Sloc of the aggregate itself for the new
	association.
	* errout.adb (First_Node): Exclude nodes with no Sloc, and always use
	the Original_Node.

2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
	When a container is provided via a function call, generate a renaming
	of the function result. This avoids the creation of a transient scope
	and the premature finalization of the container.
	* exp_ch7.adb (Is_Container_Cursor): Removed.
	(Wrap_Transient_Declaration): Remove the supression of the finalization
	of the list controller when the declaration denotes a container cursor,
	it is not needed.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* restrict.adb (Check_Formal_Restriction): only issue a warning if the
	node is from source, instead of the original node being from source.
	* sem_aggr.adb
	(Resolve_Array_Aggregate): refine the check for a static expression, to
	recognize also static ranges
	* sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
	Array_Type_Declaration): postpone the test for the type being a subtype
	mark after the type has been resolved, so that component-selection and
	expanded-name are discriminated.
	(Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
	to distinguish the case of an iteration scheme, so that an error is
	issed on a non-static range in SPARK except in an iteration scheme.
	* sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
	In_Iter_Schm = True.
	* sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
	user-defined operators so that they are allowed in renaming
	* sem_ch8.adb
	(Find_Selected_Component): refine the check for prefixing of operators
	so that they are allowed in renaming. Move the checks for restrictions
	on selector name after analysis discriminated between
	component-selection and expanded-name.
	* sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
	concatenation argument of string type if it is static.
	* sem_util.adb, sem_util.ads
	(Check_Later_Vs_Basic_Declarations): add a new function
	Is_Later_Declarative_Item to decice which declarations are allowed as
	later items, in the two different modes Ada 83 and SPARK. In the SPARK
	mode, add that renamings are considered as later items.
	(Enclosing_Package): new function to return the enclosing package
	(Enter_Name): correct the rule for homonyms in SPARK
	(Is_SPARK_Initialization_Expr): default to returning True on nodes not
	from source (result of expansion) to avoid issuing wrong warnings.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* errout.adb: On anything but an expression First_Node returns its
	argument.

2011-08-02  Pascal Obry  <obry@adacore.com>

	* prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.

2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
	Set the associated loop as the related expression of internally
	generated cursors.
	* exp_ch7.adb (Is_Container_Cursor): New routine.
	(Wrap_Transient_Declaration): Supress the finalization of the list
	controller when the declaration denotes a container cursor.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
	command line now.
	* par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
	expression is a simple expression. This check cannot be performed in
	the semantics, so just drop it.
	(P_Index_Or_Discriminant_Constraint): move check that the index or
	discriminant is a subtype mark to Analyze_Subtype_Declaration in the
	semantics. Other cases were previously checked in the semantics.
	* par-ch4.adb (P_Name): move checks that a selector name is not
	character literal or an operator symbol to Find_Selected_Component in
	the semantics
	* par-ch5.adb (Parse_Decls_Begin_End): move check that basic
	declarations are not placed after later declarations in a separate
	procedure in Sem_Util (possibly not the best choice?), to be used both
	during parsing, for Ada 83 mode, and during semantic analysis, for
	SPARK mode.
	* par-endh.adb (Check_End): move check that end label is not missing
	to Process_End_Label in the semantics
	* par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
	the special case for SPARK restriction
	* par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
	* restrict.adb, restrict.ads (Check_Formal_Restriction): add a
	parameter Force to issue the error message even on internal node (used
	for generated end label). Call Check_Restriction to check when an error
	must be issued. In SPARK mode, issue an error message even if the
	restriction is not set.
	(Check_Restriction): new procedure with an additional out parameter to
	inform the caller that a message has been issued
	* sem_aggr.adb: Minor modification of message
	* sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
	instead of issuing an error message directly
	* sem_ch3.adb (Analyze_Declarations): move here the check that basic
	declarations are not placed after later declarations, by calling
	Check_Later_Vs_Basic_Declarations
	(Analyze_Subtype_Declaration): move here the check that an index or
	discriminant constraint must be a subtype mark. Change the check that
	a subtype of String must start at one so that it works on subtype marks.
	* sem_ch4.adb (Analyze_Call): move here the check that a named
	association cannot follow a positional one in a call
	* sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
	instead of issuing an error message directly
	* sem_ch8.adb (Find_Selected_Component): move here the check that a
	selector name is not a character literal or an operator symbol. Move
	here the check that the prefix of an expanded name cannot be a
	subprogram or a loop statement.
	* sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
	procedure called from parsing and semantics to check that basic
	declarations are not placed after later declarations
	(Process_End_Label): move here the check that end label is not missing

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
	representation clause in codepeer mode, since it confuses CodePeer and
	does not bring useful info.

2011-08-02  Ed Falis  <falis@adacore.com>

	* init.c: initialize fp hw on MILS.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* errout.adb (First_Node): for bodies, return the node itself (small
	optimization). For other nodes, do not check source_unit if the node
	comes from Standard.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* exp_ch3.adb: Minor comment additions.
	* sem_ch13.adb: Minor reformatting.

2011-08-02  Pascal Obry  <obry@adacore.com>

	* make.adb, makeutl.adb: Removes some superfluous directory separator.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_attr.adb: Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
	(Has_Default_Component_Value): Removed
	* einfo.ads Comment updates
	(Has_Default_Aspect): Replaces Has_Default_Value
	(Has_Default_Component_Value): Removed
	* exp_ch13.adb
	(Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
	* exp_ch3.adb
	(Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
	(Get_Simple_Init_Val): Handle Default_Value aspect
	(Needs_Simple_Initialization): Handle Default_Value aspect
	* exp_ch3.ads: Needs_Simple_Initialization
	* freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
	* par-prag.adb (Pragma_Default[_Component]Value) Removed
	* sem_ch13.adb
	(Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
	* sem_prag.adb (Pragma_Default[_Component]Value) Removed
	* snames.ads-tmpl (Pragma_Default[_Component]Value) Removed

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
	package containing iteration primitives.
	exp_ch5.adb (Expand_Iterator_Loop): ditto.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
	"of", pre-analyze expression in case it is a function call with
	finalization actions that must be placed ahead of the loop.
	* exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
	on an Ada2012 iterator, insert them ahead of the rewritten loop.

2011-08-02  Geert Bosch  <bosch@adacore.com>

	* cstand.adb (Create_Float_Types): Only consider C's long double for
	Long_Long_Float, in addition to double.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
	sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
	prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
	Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb: handle properly 'Result when it is a prefix of an
	indexed component.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* einfo.ads, einfo.adb
	(Original_Access_Type): Move this attribute to Node26 since there was
	an undocumented use of Node21 in E_Access_Subprogram_Type entities
	which causes conflicts and breaks the generation of the .NET compiler.
	(Interface_Name): Add missing documentation on JGNAT only uses of
	this attribute.

2011-08-02  Geert Bosch  <bosch@adacore.com>

	* cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
	(Find_Back_End_Float_Type): Likewise
	(Create_Back_End_Float_Types): Likewise
	(Create_Float_Types): Likewise
	(Register_Float_Type): Likewise
	* sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
	Nlist and split out type selection in new local Find_Base_Type function.
	* sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
	Nlist
	* stand.ads (Predefined_Float_Types): Use Elist instead of Nlist

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
	alpha order).
	* opt.ads: Minor comment change.
	* sem_ch12.adb: Minor code reorganization.

2011-08-02  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch3.adb (Complete_Private_Subtype): Don't append the private
	subtype's list of rep items to the list on the full subtype in the case
	where the lists are the same.

2011-08-02  Geert Bosch  <bosch@adacore.com>

	* switch-c.adb (Free): New deallocation procedure to avoid implicitly
	using the one from System.Strings, which also deallocates all strings.

2011-08-02  Geert Bosch  <bosch@adacore.com>

	* gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
	function.
	* gcc-interface/Make-lang.in: Update dependencies.

2011-08-02  Olivier Hainque  <hainque@adacore.com>

	* gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
	end_locus.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
	associated with anonymous access to subprograms.

2011-08-02  Geert Bosch  <bosch@adacore.com>

	* opt.ads
	(Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
	(Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
	* prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
	(Add_Symbol_Definition): Move to switch-c.adb
	(Process_Command_Line_Symbol_Definitions): Adjust references to above.
	* prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
	(Add_Symbol_Definition): Move to switch-c.adb.
	* sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
	* sem_warn.adb
	(Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
	Move to warnsw.adb.
	* sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
	Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
	Move to warnsw.adb.
	* switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
	(Add_Symbol_Definition): Moved from Prepcomp.
	* switch-c.ads: Update copyright notice. Use String_List instead of
	Argument_List, removing dependency on System.OS_Lib.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
	mode on initialization expression which does not respect SPARK
	restrictions.
	* sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
	if the tree referenced by its argument represents an initialization
	expression in SPARK, suitable for initializing an object in an object
	declaration.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
	internally generated access to subprogram with its associated protected
	subprogram type.
	* einfo.ads, einfo.adb (Original_Access_Type): New attribute.

2011-08-02  Geert Bosch  <bosch@adacore.com>

	* cstand.adb (Register_Float_Type): Print information about type to
	register, if the Debug_Flag_Dot_B is set.
	* debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
	* rtsfind.ads (RE_Max_Base_Digits): New run time entity.
	* sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
	with a requested precision of more than Max_Digits digits and no more
	than Max_Base_Digits digits, if a range specification is present and the
	Predefined_Float_Types list has a suitable type to derive from.
	* sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
	case of type completion with pragma Import
	* sem_prag.adb
	(Process_Import_Predefined_Type): Processing to complete a type
	with pragma Import. Currently supports floating point types only.
	(Set_Convention_From_Pragma): Do nothing without underlying type.
	(Process_Convention): Guard against absence of underlying type,
	which may happen when importing incomplete types.
	(Process_Import_Or_Interface): Handle case of importing predefined
	types. Tweak error message.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

	* inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
	functions to previous change.  Reorganize code slightly.

2011-08-02  Geert Bosch  <bosch@adacore.com>

	* back_end.ads (Register_Type_Proc): New call back procedure type for
	allowing the back end to provide information about available types.
	(Register_Back_End_Types): New procedure to register back end types.
	* back_end.adb (Register_Back_End_Types): Call the back end to enumerate
	available types.
	* cstand.adb (Back_End_Float_Types): New list for floating point types
	supported by the back end.
	(Build_Float_Type): Add extra parameter for Float_Rep_Kind.
	(Copy_Float_Type): New procedure to make new copies of predefined types.
	(Register_Float_Type): New call back procedure to populate the BEFT list
	(Find_Back_End_Float_Type): New procedure to find a BEFT by name
	(Create_Back_End_Float_Types): New procedure to populate the BEFT list.
	(Create_Float_Types): New procedure to create entities for floating
	point types predefined in Standard, and put these and any remaining
	BEFTs on the Predefined_Float_Types list.
	* stand.ads (Predefined_Float_Types): New list for predefined floating
	point types that do not have declarations in package Standard.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

	* inline.adb (Get_Code_Unit_Entity): New local function.  Returns the
	entity node for the unit containing the parameter.
	(Add_Inlined_Body): Use it to find the unit containing the subprogram.
	(Add_Inlined_Subprogram): Likewise.
	* gcc-interface/Make-lang.in: Update dependencies.

2011-08-02  Thomas Quinot  <quinot@adacore.com>

	* s-stusta.adb (Print): Make sure Pos is always initialized to a
	suitable value.

2011-08-02  Geert Bosch  <bosch@adacore.com>

	* a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_type.adb (Covers): Move trivial case to the top and reuse the
	computed value of Base_Type.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* restrict.adb (Check_Restriction): issue an error for any use of
	class-wide, even if the No_Dispatch restriction is not set.
	* sem_aggr.adb: Correct typos in comments and messages in formal mode
	* sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
	when completing a private extension, the type named in the private part
	is not the same as that named in the visible part.
	* sem_res.adb (Resolve_Call): issue an error in formal mode on the use
	of an inherited primitive operations of a tagged type or type extension
	that returns the tagged type.
	* sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
	function which returns True for an implicit operation inherited by the
	derived type declaration for the argument type.
	(Is_SPARK_Object_Reference): move to appropriate place in alphabetic
	order.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
	Process_Bounds, to perform analysis with expansion of a range or an
	expression that is the iteration scheme for a loop.
	(Analyze_Iterator_Specification): If domain of iteration is given by a
	function call with a controlled result, as is the case if call returns
	a predefined container, ensure that finalization actions are properly
	generated.
	* par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
	* gcc-interface/Make-lang.in: Update dependencies.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
	determine if the analysis is performed using N or Original_Node (N).
	* exp_util.adb (Side_Effect_Free): Code cleanup since the new
	functionality of routine Is_Variable avoids code duplication.
	* checks.adb (Determine_Range): Handle temporaries generated by
	Remove_Side_Effects.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
	expansion of the condition. Required since the previous analysis was
	done with expansion disabled (see Resolve_Quantified_Expression) and
	hence checks were not inserted and record comparisons have not been
	expanded.

2011-08-02  Ed Falis  <falis@adacore.com>

	* s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
	Update header.

2011-08-02  Bob Duff  <duff@adacore.com>

	* opt.ads: Minor comment fix.

2011-08-02  Bob Duff  <duff@adacore.com>

	* sem_ch12.adb (Analyze_Package_Instantiation,
	Analyze_Subprogram_Instantiation): Turn off style checking while
	analyzing an instance. Whatever style checks that apply to the generic
	unit should apply, so it makes no sense to apply them in an instance.
	This was causing trouble when compiling an instance of a runtime
	unit that violates the -gnatyO switch.
	* stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
	one of the two case statements, causing spurious errors.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* uname.adb: Minor reformatting.
	* gnatcmd.adb: Minor reformatting.
	* exp_attr.adb: Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
	No_Dispatching_Calls, do not look for the Assign primitive, because
	predefined primitives are not created in this case.

2011-08-02  Bob Duff  <duff@adacore.com>

	* stylesw.ads: Minor comment fixes.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* freeze.adb (Add_To_Result): New procedure.

2011-08-02  Jose Ruiz  <ruiz@adacore.com>

	* exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
	time, if the specific run-time routines for handling streams of strings
	are not available, use the default mechanism.

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

	* s-regpat.ads: Fix typo.

2011-08-02  Vincent Celier  <celier@adacore.com>

	* prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
	not null, call it to create the in memory config project file without
	parsing an existing default config project file.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

	* atree.adb (Allocate_Initialize_Node): Remove useless temporaries.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_elim.adb: an abstract subprogram does not need an eliminate
	pragma for its descendant to be eliminable.

2011-08-02  Ed Falis  <falis@adacore.com>

	* init.c: revert to handling before previous checkin for VxWorks
	* s-intman-vxworks.adb: delete unnecessary declarations related to
	using Ada interrupt facilities for handling signals.
	Delete Initialize_Interrupts. Use __gnat_install_handler instead.
	* s-intman-vxworks.ads: Import __gnat_install_handler as
	Initialize_Interrupts.
	* s-taprop-vxworks.adb: Delete Signal_Mask.
	(Abort_Handler): change construction of mask to unblock exception
	signals.

2011-08-02  Jerome Guitton  <guitton@adacore.com>

	* a-except-2005.adb (Raise_From_Signal_Handler): Call
	Debug_Raise_Exception before propagation starts.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch6.adb (Expand_Call): Guard restriction checks with a call
	to Restriction_Check_Required.
	* sem_ch3.adb (Analyze_Object_Declaration): Likewise.
	* sem_res.adb (Resolve_Call): Likewise.
	* sem_attr.adb (Check_Stream_Attribute): Likewise.

2011-08-02  Bob Duff  <duff@adacore.com>

	* stylesw.ads: Update comment.
	* style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
	* errout.ads: Remove obsolete comment.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
	(Set_Is_Safe_To_Reevaluate): new procedure.
	* sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
	assignment is allowed on safe-to-reevaluate variables.
	(Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
	temporary created to remove side effects in expressions that use
	the secondary stack as safe-to-reevaluate.
	* exp_util.adb (Side_Effect_Free): Add missing code to handle well
	variables that are not true constants.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
	sem_res.adb, sem_ch6.adb: Minor reformatting.

2011-08-02  Jerome Guitton  <guitton@adacore.com>

	* a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
	not set Overridden_Operation if subprogram is an initialization
	procedure.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* par-ch6.adb: Correct obsolete name in comments
	* restrict.adb, restrict.ads (Check_Formal_Restriction): new function
	which takes two message arguments (existing function takes one), with
	second message used for continuation.
	* sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
	block statements that originate from a source block statement, not
	generated block statements
	* sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
	symmetry with procedure case
	* sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
	function to issue an error in formal mode if a package specification
	contains more than one tagged type or type extension.
	* sem_res.adb (Resolve_Actuals): in formal mode, check that actual
	parameters matching formals of tagged types are objects (or ancestor
	type conversions of objects), not general expressions. Issue an error
	on view conversions that are not involving ancestor conversion of an
	extended type.
	(Resolve_Type_Conversion): in formal mode, issue an error on the
	operand of an ancestor type conversion which is not an object
	* sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
	procedure so that it works also for actuals of function calls
	(Is_Actual_Tagged_Parameter): new function which determines if its
	argument is an actual parameter of a formal of tagged type in a
	subprogram call
	(Is_SPARK_Object_Reference): new function which determines if the tree
	referenced by its argument represents an object in SPARK

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb: Minor reformatting
	Minor comment addition
	Minor error msg text change

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
	function. Used to be more precise when we generate a variable plus one
	assignment to remove side effects in the evaluation of the Bound
	expressions.
	(Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
	of the bound expression to force its re-analysis and thus expand the
	associated transient scope (if required). Code cleanup replacing the
	previous code that declared the constant entity by an invocation to
	routine Force_Evaluation which centralizes this work in the frontend.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
	(Base_Type): Now uses improved Is_Base_Type function
	* einfo.ads (Base_Type): Inline this function

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
	(Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in: Update dependencies.
	* gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
	targets.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
	non-simple expression used in delta constraint
	(P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
	index constraint which is not a subtype mark
	* par.adb: With and use Restrict
	* sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
	mode on component type which is not a subtype mark and default
	expression on component
	(Analyze_Subtype_Declaration): issue an error in formal mode on subtype
	of string which does not have a lower index bound equal to 1
	(Array_Type_Declaration): issue an error in formal mode on index or
	component type which is not a subtype mark, and on aliased keyword on
	component
	(Derived_Type_Declaration): issue an error in formal mode on interface,
	limited or abstract type
	(Record_Type_Declaration): issue an error in formal mode on interface
	(Record_Type_Definition): issue an error in formal mode on tagged types
	and type extensions not declared in the specification of a library unit
	package; on null non-tagged record; on variant part

2011-08-02  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
	not declared for qualified library project when Library_Name is not
	declared, but Library_Dir is.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
	pragmas (affects aspects [Component_]Default_Value
	(Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
	component type for the resolution

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.adb (Base_Type): Tune implementation for speed.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* freeze.adb: Minor reformatting.

2011-08-02  Thomas Quinot  <quinot@adacore.com>

	* scos.ads: Update comments.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
	base type, because the parent may be a subtype of a private type whose
	convention is established in a private part.

2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
	statement in a block when the expansion of the return expression has
	created a finalization chain.
	* freeze.adb (Freeze_Expression): Alphabetize all choices associated
	with the parent node.
	Add N_Extended_Return_Statement to handle the case where a transient
	object declaration appears in the Return_Object_Declarations list of
	an extended return statement.

2011-08-02  Matthew Gingell  <gingell@adacore.com>

	* adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
	unused parameter 'name'.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_elim.adb (Set_Eliminated): If the overridden operation is an
	inherited operation, check whether its alias, which is the source
	operastion that it renames, has been marked eliminated.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
	in-mode parameter whose type is an access type since it can be used to
	modify its designated object. Enforce code that handles as safe an
	access type that is not access-to-constant but it is the result of a
	previous removal of side-effects.
	(Remove_Side_Effects): Minor code reorganization of cases which require
	no action. Done to incorporate documentation on new cases uncovered
	working in this ticket: no action needed if this routine was invoked
	too early and the nodes are not yet decorated.
	* sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
	to routine Remove_Side_Effects by calls to Force_Evaluation since they
	were issued with actuals that are implicitly provided by
	Force_Evaluation.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sem_res.adb: Minor reformatting.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
	to issue an error in formal mode on attribute not supported in this mode
	(Analyze_Attribute): issue errors on standard attributes not supported
	in formal mode.
	* sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
	comment, and issue error in formal mode on modulus which is not a power
	of 2.
	(Process_Range_Expr_In_Decl): issue error in formal mode on non-static
	range.
	* sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
	subtype mark.
	* sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
	operator on modular type (except 'not').

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Minor reformatting.

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

	* s-osinte-linux.ads: Minor comment update and reformatting.
	* i-cexten.ads: Make this unit pure, as for its parent.
	Will allow its usage in more contexts if needed.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* s-utf_32.ads: Minor comment fix.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
	operation of a tagged synchronized type, handle the case where the
	controlling argument is overloaded.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
	Replace pragma SPARK_95 with pragma Restrictions (SPARK)
	* par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
	SPARK mode and formal verification mode on processing SPARK restriction
	* s-rident.ads (Restriction_Id): add SPARK restriction in those not
	requiring consistency checking.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_res.adb: Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
	a-cforse.ads: Remove unneeded with of Ada.Containers
	Remove commented out pragma Inline's
	Move specifications of new subprograms to the actual specs

2011-08-02  Yannick Moy  <moy@adacore.com>

	* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
	a-cforse.ads: Update comments.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb: add attribute name when 'Result has the wrong prefix.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
	a-cforse.ads, a-cofove.ads: Minor reformatting.

2011-08-02  Claire Dross  <dross@adacore.com>

	* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
	a-cofove.ads: Add comments.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* gnat_rm.texi: Document formal containers.

2011-08-02  Emmanuel Briot  <briot@adacore.com>

	* g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
	are empty sections.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
	reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* aspects.adb: New aspects Default_Value and Default_Component_Value
	New format of Aspect_Names table checks for omitted entries
	* aspects.ads: Remove mention of Aspect_Cancel and add documentation on
	handling of boolean aspects for derived types.
	New aspects Default_Value and Default_Component_Value
	New format of Aspect_Names table checks for omitted entries
	* einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
	(Has_Default_Value): New flag
	(Has_Default_Component_Value): New flag
	(Has_Default_Value): New flag
	* par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
	table.
	* par-prag.adb: New pragmas Default_Value and Default_Component_Value
	* sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
	Default_Value and Default_Component_Value
	* sem_prag.adb: New pragmas Default_Value and Default_Component_Value
	New aspects Default_Value and Default_Component_Value
	* snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
	* sprint.adb: Print N_Aspect_Specification node when called from gdb

2011-08-02  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
	inherit library kind.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
	Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* i-cstrin.ads: Updates to make Interfaces.C.Strings match RM

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_aggr.adb (Resolve_Aggregate): Fix thinko.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* impunit.adb: Add comment.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
	qualification of aggregates in formal mode
	(Is_Top_Level_Aggregate): returns True for an aggregate not contained in
	another aggregate
	(Resolve_Aggregate): complete the test that an aggregate is adequately
	qualified in formal mode

2011-08-02  Pascal Obry  <obry@adacore.com>

	* make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
	* mlib-prj.adb: Supress warning when compiling binder generated file.
	(Build_Library): Supress all warnings when compiling the binder
	generated file.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* errout.adb, errout.ads (Check_Formal_Restriction): move procedure
	from here...
	* restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
	* sem_aggr.adb, sem_ch5.adb, sem_util.adb:
	Add with/use clauses to make Check_Formal_Restriction visible

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Check_Generic_Actuals): handle properly actual
	in-parameters when type of the generic formal is private in the generic
	spec and non-private in the body.

2011-08-02  Claire Dross  <dross@adacore.com>

	* a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
	a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
	a-cofove.adb, a-cofove.ads: New files implementing formal containers.
	* impunit.adb, Makefile.rtl: Take new files into account.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
	sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
	formal mode
	* sem_util.adb (Matching_Static_Array_Bounds): proper detection of
	matching static array bounds, taking into account the special case of
	string literals
	* sem_ch3.adb: Typo in comment.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* errout.adb, errout.ads (Check_Formal_Restriction): new procedure
	which issues an error in formal mode if its argument node is originally
	from source
	* sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
	has a discriminant specification so that it does not include the case
	of derived types
	(Derived_Type_Declaration): move here the test that a derived type has a
	discriminant specification
	* sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
	first element of a component association before accessing its choices
	(presence of component association is not enough)
	* exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
	declaration is a library item before accessing the next element in a
	list, as library items are not member of lists
	* sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
	sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
	Check_Formal_Restriction whenever possible.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
	reference when needed.

2011-08-02  Bob Duff  <duff@adacore.com>

	* gnat_ugn.texi: Fix typo.

2011-08-02  Vincent Celier  <celier@adacore.com>

	* make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
	archive file name. Do not use the full path name of archives for Open
	VMS.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch12.adb, sem_ch11.adb: New calling sequence for
	Analyze_Aspect_Specifications
	* sem_ch13.adb
	(Analyze_Aspect_Specifications): New handling for boolean aspects
	* sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
	* sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
	sequence for Analyze_Aspect_Specifications
	* sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
	* sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* freeze.adb (Freeze_Entity): Remove handling of delayed boolean
	aspects, since these no longer exist.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* par-ch13.adb (Aspect_Specifications_Present): Always return false on
	semicolon, do not try to see if there are aspects following it.
	* par-ch3.adb (P_Declarative_Items): Better message for unexpected
	aspect spec.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch8.adb, aspects.ads: Minor reformatting.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
	* sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
	extracted from...
	(Analyze_Aspect_Specifications): ...here.  Call above procedure.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
	mode on subprogram declaration outside of package specification, unless
	it is followed by a pragma Import
	* sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
	Access_Type_Declaration): issue error in formal mode on access type
	(Analyze_Incomplete_Type_Decl): issue error in formal mode on
	incomplete type
	(Analyze_Object_Declaration): issue error in formal mode on object
	declaration which does not respect SPARK restrictions
	(Analyze_Subtype_Declaration): issue error in formal mode on subtype
	declaration which does not respect SPARK restrictions
	(Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
	error in formal mode on digits or delta constraint
	(Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
	decimal fixed point type
	(Derived_Type_Declaration): issue error in formal mode on derived type
	other than type extensions of tagged record types
	* sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
	with check on access definition
	* sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
	mode on protected definition.
	(Analyze_Task_Definition): issue error in formal mode on task definition

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* sem_ch6.adb (Can_Override_Operator): New function.
	(Verify_Overriding_Indicator): Add missing code to check overriding
	indicator in operators. Fixes regression.
	(Check_Overriding_Indicator): Minor reformating after replacing the
	code that evaluates if the subprogram can override an operator by
	invocations to the above new function.
	* einfo.adb
	(Write_Field26_Name): Add missing code to ensure that, following
	the documentation in einfo.ads, this field is not shown as attribute
	"Static_Initialization" on non-dispatching functions.

2011-08-02  Jose Ruiz  <ruiz@adacore.com>

	* sem_res.adb (Resolve_Call): A call to
	Ada.Real_Time.Timing_Events.Set_Handler violates restriction
	No_Relative_Delay (AI-0211) only when it sets a relative timing event,
	i.e., when the second parameter is of type Time_Span.

2011-08-02  Vincent Celier  <celier@adacore.com>

	* make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
	with an archive instead of -L<library dir> -l<library name>.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
	mark the base types In_Use in addition to making the operations
	use_visible.

2011-08-02  Ed Falis  <falis@adacore.com>

	* init.c: add and setup __gnat_signal_mask for the exception signals
	* s-inmaop-vxworks.adb: new file.
	* s-intman-vxworks.adb: remove unnecessary initializations and
	simplify remaining
	* s-intman-vxworks.ads: remove unnecessary variable
	* s-taprop-vxworks.adb: simplify signal initialization

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch8.adb: Minor code reorganization, comment updates.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
	* sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
	here from Sem_Res.
	(Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
	(Matching_Static_Array_Bounds): Moved here from Sem_Res

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
	* par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
	* sinfo.ads, sinfo.adb (Used_Operations): new attribute of
	use_type_clauses, to handle more efficiently use_type and use_all_type
	constructs.
	* sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
	Ada2012 Use_All_Type clause.
	(Use_Class_Wide_Operations): new procedure.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
	sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
	expression to expression function.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb: transform simple Ada2012 membership into equality only
	if types are compatible.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_res.adb (Matching_Static_Array_Bounds): new function which
	returns True if its argument array types have same dimension and same
	static bounds at each index.
	(Resolve_Actuals): issue an error in formal mode on actuals passed as
	OUT or IN OUT paramaters which are not view conversions in SPARK.
	(Resolve_Arithmetic_Op): issue an error in formal mode on
	multiplication or division with operands of fixed point types which are
	not qualified or explicitly converted.
	(Resolve_Comparison_Op): issue an error in formal mode on comparisons of
	Boolean or array type (except String) operands.
	(Resolve_Equality_Op): issue an error in formal mode on equality
	operators for array types other than String with non-matching static
	bounds.
	(Resolve_Logical_Op): issue an error in formal mode on logical operators
	for array types with non-matching static bounds. Factorize the code in
	Matching_Static_Array_Bounds.
	(Resolve_Qualified_Expression): issue an error in formal mode on
	qualified expressions for array types with non-matching static bounds.
	(Resolve_Type_Conversion): issue an error in formal mode on type
	conversion for array types with non-matching static bounds

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* par-ch10.adb: Minor code reorganization (use Nkind_In).

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* par-ch9.adb: save location of entry for proper error message.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
	(Use_Full_View) which permits this routine to climb through the
	ancestors using the full-view of private parents.
	* sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
	Use_Full_View to true in calls to Is_Ancestor.
	* sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
	true in call to Is_Ancestor.
	* exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
	Use_Full_View to true in call to Is_Ancestor.
	* exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
	call to Is_Ancestor.
	* exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
	Use_Full_View to true in calls to Is_Ancestor.
	* exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
	Make_Select_Specific_Data_Table, Register_Primitive,
	Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
	* exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
	to true in call to Is_Ancestor.
	* exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
	Use_Full_View to true in calls to Is_Ancestor.
	* exp_cg.adb
	(Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
	(Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Minor reformatting.
	* sem_prag.adb: Minor reformatting.

2011-08-02  Tristan Gingold  <gingold@adacore.com>

	* vms_data.ads: Add VMS qualifier for -gnateP.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
	* par-ch7.adb (P_Package): Proper placement of aspects for package
	decl/instantiation.
	* par-endh.adb (Check_End): Ad Is_Sloc parameter
	(End_Statements): Add Is_Sloc parameterr
	* par.adb (P_Aspect_Specification): New meaning of Decl = Empty
	(Check_End): Ad Is_Sloc parameter
	(End_Statements): Add Is_Sloc parameterr

2011-08-02  Vincent Celier  <celier@adacore.com>

	* ug_words: Add VMS qualifier equivalent to -gnateP:
	/SYMBOL_PREPROCESSING.

2011-08-02  Jose Ruiz  <ruiz@adacore.com>

	* gnat-style.texi: For hexadecimal numeric literals the typical
	grouping of digits is 4 to represent 2 bytes.
	A procedure spec which is split into several lines is indented two
	characters.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
	* sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
	(Resolve_Aggregate): issue errors in formal modes when aggregate is not
	properly qualified
	(Resolve_Array_Aggregate): issue errors in formal modes on non-static
	choice in array aggregate
	(Resolve_Extension_Aggregate): issue errors in formal modes on subtype
	mark as ancestor
	(Resolve_Record_Aggregate): issue errors in formal modes on mixed
	positional and named aggregate for record, or others in record
	aggregate, or multiple choice in record aggregate
	* sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
	array operands to logical operations AND, OR and XOR do not have the
	same static lower and higher bounds
	* sem_ch5.adb, sinfo.ads: Correct typos in comments

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
	Replaces Last_Source_Node_In_Sequence.
	* err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
	* errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
	parens and blank in string (this was inconsistently implemented).
	* errout.ads
	(Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
	blank in string (this was inconsistently implemented).
	* gnat1drv.adb
	(Set_Global_Switches): Set formal mode switches appropriately
	* opt.ads, opt.adb: Formal mode is now global switches, more consistent
	* par-prag.adb
	(Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
	call Set_Error_Msg_Lang to set "spark" as language name.
	* par.adb: Remove unnecessary call to set formal language for errout
	* sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
	appropriately and call Set_Error_Msg_Lang to set "spark" as language
	name.
	* sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
	calls to it, moved after resolution so that types are known
	* sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
	result of concatenation is not of type String
	(Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
	concatenation is not properly restricted
	* gnat_rm.texi: Add doc on pragma Spark_95.
	* gcc-interface/Makefile.in: Remove obsolete target pairs for
	Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
	* gcc-interface/Make-lang.in: Update dependencies.

2011-08-01  Javier Miranda  <miranda@adacore.com>

	* sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
	condition that detects if the overridden operation must replace an
	existing entity.

2011-08-01  Javier Miranda  <miranda@adacore.com>

	* exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
	code declarations inserted by Insert_Actions in each alternative of the
	N_Case_Expression node.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_ch6.adb: Minor code reorganization.
	* sem_util.adb: Minor reformatting.

2011-08-01  Pascal Obry  <obry@adacore.com>

	* prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
	* gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.

2011-08-01  Yannick Moy  <moy@adacore.com>

	* par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
	literal or operator symbol which is prefixed
	* sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
	mode on access attributes.
	* sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
	that concatenation operands are properly restricted in formal mode
	(Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
	Analyze_Concatenation_Operand. Issue an error in formal mode if the
	result of the concatenation has a type different from String.
	(Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
	Analyze_Quantified_Expression, Analyze_Slice,
	Analyze_Null): issue an error in formal mode on unsupported constructs
	* sem_ch5.adb
	(Analyze_Block_Statement): only issue error on source block statement
	* sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
	function which returns the last node in a list of nodes for which
	Comes_From_Source returns True, if any
	* sem_ch6.adb (Check_Missing_Return): minor refactoring to use
	Last_Source_Node_In_Sequence
	* sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
	Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
	mode on unsupported constructs
	* sem_ch9.adb Do not return after issuing error in formal mode, as the
	rest of the actions may be needed later on since the error is marked as
	not serious.
	* sinfo.ads: Typos in comments.

2011-08-01  Pascal Obry  <obry@adacore.com>

	* projects.texi: Minor editing.

2011-08-01  Yannick Moy  <moy@adacore.com>

	* err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
	insertion character ~~
	* errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
	(Set_Error_Msg_Lang): new procedure which fixes the language for use
	with insertion character ~~
	(Set_Msg_Text): treat insertion character ~~
	* par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
	sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
	Formal_Error_Msg_... procedures by equivalent Error_Msg_...
	procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
	errors related to the formal language restriction not serious
	(insertion character |).
	* par.adb (Par): set formal language for error messages if needed
	* sem_ch6.adb (Check_Missing_Return): take into account possible
	generated statements at the end of the function
	* snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
	enumeration value to define a new pragma SPARK_95
	* opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
	SPARK_Version): new type and variables to store the SPARK version
	(none by default).
	(SPARK_Mode): return True when SPARK_Version is set
	* par-prag.adb: Correct indentation
	(Prag): take Pragma_SPARK_95 into account
	* sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
	into account.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
	sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
	sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting

2011-08-01  Pascal Obry  <obry@adacore.com>

	* prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
	Target_Name to Get_Path call.
	(Parse_Single_Project): Likewise.
	(Post_Parse_Context_Clause): Likewise.
	* prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
	Call Initialise_Project_Path with the proper Target_Name.
	(Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
	search path.
	(Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
	with the proper Target_Name.
	* prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
	Part.Parse routine.
	(Parse_Project_And_Apply_Config): Likewise.
	* prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
	This is fine as this part of the code is supporting only native
	compilation.
	* prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
	is fine as this part of the code is supporting only native compilation.

2011-08-01  Yannick Moy  <moy@adacore.com>

	* sem_util.adb (Enter_Name): issue error in formal mode on declaration
	of homonym, unless the homonym is one of the cases allowed in SPARK
	* par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
	package declaration occurring after a body.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* checks.adb, exp_ch4.adb: Minor reformatting.

2011-08-01  Javier Miranda  <miranda@adacore.com>

	* einfo.ads (Access_Disp_Table): Fix documentation.
	(Dispatch_Table_Wrappers): Fix documentation.

2011-08-01  Pascal Obry  <obry@adacore.com>

	* prj-env.adb, prj-env.ads: Minor reformatting.

2011-08-01  Yannick Moy  <moy@adacore.com>

	* sem_util.ads, sem_util.adb, par.adb, par_util.adb
	(Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
	procedures out of these packages.
	* errout.ads, errout.adb
	(Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
	procedures in of this package
	(Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
	* par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
	on misplaced later vs initial declarations, like in Ada 83
	* sem_attr.adb (Processing for Analyze_Attribute): issue error in
	formal mode on attribute of private type whose full type declaration
	is not visible
	* sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
	package declaration inside a package specification
	(Analyze_Full_Type_Declaration): issue error in formal mode on
	controlled type or discriminant type
	* sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
	user-defined operator means that it should come from the source
	(New_Overloaded_Entity): issue error in formal mode on overloaded
	entity.
	* sem_ch6.ads, sem_ch13.ads: typos in comments.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* atree.adb: Minor reformatting.
	* checks.adb: Minor reformatting.

2011-08-01  Vincent Celier  <celier@adacore.com>

	* s-parame-vms-ia64.ads: Fix typo in comment
	Minor reformatting
	* s-parame-vms-restrict.ads: Removed, unused.

2011-08-01  Javier Miranda  <miranda@adacore.com>

	* exp_ch3.adb
	(Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
	* sem_ch3.adb
	(Constrain_Index): Remove side effects in the evaluation of the bounds.
	* sem_ch3.ads, sem_ch3.adb
	(Is_Constant_Bound): New extended version of the subprogram that was
	previously located inside function Exp_Ch3.Is_Variable_Size_Array.
	Moved here since it is shared by routines of sem_ch3 and exp_ch3.
	* sem_aux.ads (Constant_Value): Fix typo in comment.
	* checks.adb (Generate_Index_Checks): New implementation which, for
	array objects with constant bounds, generates the runtime check
	referencing the bounds of the array type. For other cases this routine
	provides its previous behavior obtaining such values from the array
	object.
	* sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
	parent type.
	* atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
	we cannot have semantic interpretations of the new node.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
	expressions.

2011-08-01  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch8.adb: Minor code editing.
	* s-vxwext.adb: Remove trailing space.
	* freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
	consistency with other files.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* par-ch10.adb: reject parameterized expressions as compilation unit.
	* sem_ch4.adb: handle properly conditional expression with overloaded
	then_clause and no else_clause.

2011-08-01  Tristan Gingold  <gingold@adacore.com>

	* s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
	like done by System.Aux_DEC.
	* env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.

2011-08-01  Yannick Moy  <moy@adacore.com>

	* par-endh.adb (Check_End): issue a syntax error in SPARK mode for
	missing label at end of declaration (subprogram or package)
	* par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
	of positional and named parameter association
	* par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
	Error_Msg_SP which adds a prefix to the error message giving the name
	of the formal language analyzed
	* sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
	access result type in subprogram, unconstrained array as result type,.
	(Analyze_Subprogram_Declaration): issue an error in formal mode for null
	procedure
	* sem_ch8.adb: Code clean up.

2011-08-01  Javier Miranda  <miranda@adacore.com>

	* sem_ch7.adb (Uninstall_Declarations): Remove useless code.
	* einfo.ads (Access_Disp_Table): Fix documentation.
	(Dispatch_Table_Wrappers): Fix documentation.
	* einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
	Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
	to enforce the documentation of this attribute.
	(Set_Is_Interface): Cleanup the assertion.
	* exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
	the Underlying_Type entity before reading attribute Access_Disp_Table.
	* exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
	Locate the Underlying_Type before reading attribute Access_Disp_Table.
	* exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
	the Underlying_Type entity before reading attribute Access_Disp_Table.
	* exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
	Locate the Underlying_Type entity before reading attribute
	Access_Disp_Table.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* s-poosiz.ads: Additional overriding indicators.

2011-08-01  Yannick Moy  <moy@adacore.com>

	* sem_ch5.adb (Analyze_Exit_Statement): add return after error in
	formal mode.
	(Analyze_Iteration_Scheme): issue error in formal mode when loop
	parameter specification does not include a subtype mark.
	* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
	formal mode on abstract subprogram.
	(Analyze_Subprogram_Specification): issue error in formal mode on
	user-defined operator.
	(Process_Formals): issue error in formal mode on access parameter and
	default expression.
	* sem_ch9.adb (Analyze_Abort_Statement,
	Analyze_Accept_Statement, Analyze_Asynchronous_Select,
	Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
	Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
	Analyze_Requeue, Analyze_Selective_Accept,
	Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
	* sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
	issue error in formal mode on user-defined raise statement.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
	declaration being hidden when overriding an implicit inherited
	subprogram.
	* par-ch10.adb (P_Compilation_Unit): In syntax check only mode
	(-gnats), do not complain about a source file that contains only a
	pragma No_Body.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
	variable if already set.

2011-08-01  Arnaud Charlet  <charlet@adacore.com>

	* g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
	g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
	s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
	g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
	g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
	g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
	g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
	g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
	g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
	g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
	g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
	s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
	g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
	s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
	g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
	g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
	g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
	g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
	g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
	g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
	s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
	s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
	a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
	s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
	s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
	g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
	g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
	g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
	g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
	g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
	g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
	s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
	s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
	g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
	g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
	s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
	s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
	g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
	g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
	g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
	s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
	g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
	g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
	g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
	s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
	g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
	g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
	g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
	s-osinte-mingw.ads: Update to GPLv3 run-time license.
	Use GNAT instead of GNARL.

2011-08-01  Bob Duff  <duff@adacore.com>

	* a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
	a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
	a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
	reformatting.

2011-08-01  Yannick Moy  <moy@adacore.com>

	* debug.adb (d.D) reverve flag for the SPARK mode
	(d.E) reverve flag for SPARK generation mode
	(d.F) reverve flag for Why generation mode
	* opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
	ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode):  New
	functions which return True when the corresponding modes are set
	(Formal_Language): return "spark" or "alfa" when in formal verification
	mode.
	* sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
	Error_Msg to prefix the error message with a tag giving the formal
	language
	(Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
	message with a tag giving the formal language
	* sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
	block statement
	(Analyze_Case_Statement): issue error in formal mode on case statement
	with a single "others" case alternative
	(Analyze_Exit_Statement): issue errors in formal mode on exit
	statements which do not respect SPARK restrictions
	(Analyze_Goto_Statement): issue error in formal mode on goto statement
	(Check_Unreachable_Code): always issue an error (not a warning) in
	formal mode on unreachable code (concerns both code after an infinite
	loop and after an unconditional jump, both not allowed in SPARK)
	* sem_ch6.adb (Analyze_Return_Statement): add call to
	Set_Return_Present for a procedure containing a return statement
	(already done for functions in Analyze_Function_Return)
	(Analyze_Function_Return): issue error in formal mode on extended
	return or if return is not last statement in function
	(Check_Missing_Return): issue error in formal mode if function does
	not end with return or if procedure contains a return
	* sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
	function to detect if there is an inner scope of its parameter S which
	is a loop.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* sem_ch6.ads: Minor reformatting.

2011-08-01  Javier Miranda  <miranda@adacore.com>

	* sem_util.adb (Abstract_Interface_List): Complete condition when
	processing private type declarations to avoid reading unavailable
	attribute.
	(Is_Synchronized_Tagged_Type): Complete condition when processing
	private extension declaration nodes to avoid reading unavailable
	attribute.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* sem_ch3.adb: Minor reformatting.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
	i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
	s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
	s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
	for VMS, instead parametrize the common implementation with
	System.Parameters declarations.

2011-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.

2011-08-01  Tristan Gingold  <gingold@adacore.com>

	* seh_init.c: Fix SEH handler installation on win64.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
	double analysis of an anonymous access to subprogram, because it can
	lead to improper sharing of profiles and a back-end crash.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* make.adb, sem_ch4.adb: Minor reformatting.
	* gcc-interface/Make-lang.in: Update dependencies.
	* sem_util.adb, exp_ch5.adb: Minor reformatting.

2011-08-01  Arnaud Charlet  <charlet@adacore.com>

	* gnat_rm.texi: Fix definition of Long_Integer.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb: check limit size of static aggregate unconditionally,
	to prevent storage exhaustion.
	* exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
	finalized is a function body, insert the cleanup code before the final
	return statement, to prevent spurious warnings.
	* s-pooglo.ads: add overriding indicator.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Operator_Check): improve error message when both a
	with_clause and a use_clause are needed to make operator usage legal.
	* sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
	determine whether a compilation unit is visible within an other,
	either through a with_clause in the current unit, or a with_clause in
	its library unit or one one of its parents.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
	over an arbitrary expression of an array or container type.
	* lib-xref.adb: clarify comment.

2011-08-01  Bob Duff  <duff@adacore.com>

	* einfo.ads: Minor reformatting.
	* debug.adb: Minor comment improvement.

2011-08-01  Javier Miranda  <miranda@adacore.com>

	* sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
	consider hidden subprograms as valid candidates.

2011-08-01  Arnaud Charlet  <charlet@adacore.com>

	* make.adb (Compile): Strip -mxxx switches in CodePeer mode.

2011-08-01  Vasiliy Fofanov  <fofanov@adacore.com>

	* gnat_ugn.texi: Fix typo.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
	lib-xref.adb: Minor reformatting

2011-08-01  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
	when to generate a call to Move_Final_List.
	(Has_Controlled_Parts): Remove this function.

2011-08-01  Geert Bosch  <bosch@adacore.com>

	* par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
	"," in choice list.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
	explicit raise of a predefined exception as Comes_From_Source if the
	original N_Raise_Statement comes from source.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* sinfo.ads: Add comment.
	* sem_ch6.adb: Minor reformatting.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* freeze.adb (Freeze_Entity): Refine check for bad component size
	clause to avoid rejecting confirming clause when atomic/aliased present.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
	better determine whether an entity reference is a write.
	* sem_util.adb (Is_LHS): refine predicate to handle assignment to a
	subcomponent.
	* lib-xref.adb (Output_References): Do no suppress a read reference at
	the same location as an immediately preceeding modify-reference, to
	handle properly in-out actuals.

2011-08-01  Tristan Gingold  <gingold@adacore.com>

	* env.c (__gnat_setenv) [VMS]: Refine previous change.

2011-08-01  Quentin Ochem  <ochem@adacore.com>

	* i-cstrin.adb (New_String): Changed implementation, now uses only the
	heap to compute the result.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* atree.ads: Minor reformatting.

2011-08-01  Emmanuel Briot  <briot@adacore.com>

	* g-expect.adb (Get_Command_Output): Fix memory leak.

2011-08-01  Geert Bosch  <bosch@adacore.com>

	* cstand.adb (P_Float_Type): New procedure to print the definition of
	predefined fpt types.
	(P_Mixed_Name): New procedure to print a name using mixed case
	(Print_Standard): Use P_Float_Type for printing floating point types
	* einfo.adb (Machine_Emax_Value): Add preliminary support for quad
	precision IEEE float.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* sem_ch3.adb: Minor reformatting.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
	the completion of a generic function, insert the new body rather than
	rewriting the original.

2011-08-01  Yannick Moy  <moy@adacore.com>

	* sinfo.ads, errout.ads: Typos in comments.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* par-endh.adb: Minor reformatting.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* aspects.ads, aspects.adb: Add aspects for library unit pragmas
	(Pre_Post_Aspects): New subtype.
	* par-ch12.adb (P_Generic): New syntax for aspects in packages
	* par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
	* par-ch7.adb (P_Package): Remove Decl parameter
	(P_Package): Handle new syntax for aspects (before IS)
	* par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
	new aspect syntax
	(P_Task_Definition): Remove Decl parameter, handle new aspect syntax
	* par.adb (P_Aspect_Specifications): Add Semicolon parameter
	(P_Package): Remove Decl parameter
	* sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
	aspects
	* sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
	specs
	* sem_util.ads, sem_util.adb (Static_Boolean): New function
	* sinfo.ads: Document new syntax for aspects in packages etc.
	* sprint.adb: Handle new syntax of aspects before IS in package

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* atree.ads: Minor reformatting.
	* sem_prag.adb: Minor reformatting.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* exp_util.adb (Insert_Actions): Fix error in handling Actions for
	case expr alternative.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb: Fix typo.

2011-08-01  Geert Bosch  <bosch@adacore.com>

	* sem_prag.adb (Check_No_Link_Name): New procedure.
	(Process_Import_Or_Interface): Use Check_No_Link_Name.
	* cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
	instead of Standard_Long_Long_Float_Size global. Preparation for
	eventual removal of per type constants.
	* exp_util.ads (Get_Stream_Size): New function returning the stream
	size value of subtype E.
	* exp_util.adb (Get_Stream_Size): Implement new function.
	* exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
	function.
	* exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
	* einfo.adb:
	(Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats

2011-08-01  Geert Bosch  <bosch@adacore.com>

	* cstand.adb: Fix comments.
	* sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
	count of arguments.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb, sem_cat.adb: Minor reformatting.

2011-08-01  Geert Bosch  <bosch@adacore.com>

	* atree.ads: Fix comment.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
	* par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
	* par.adb: Add with for Namet.Sp.
	* par-tchk.adb: Minor reformatting.

2011-08-01  Vincent Celier  <celier@adacore.com>

	* mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
	(Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
	of the init procedure of a SAL.
	* mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
	New procedure.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
	reformatting.

2011-08-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* adaint.c (__gnat_file_time_name_attr): Get rid of warning.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
	conformant with its spec (return True only for types that have
	an overriding Initialize primitive operation that prevents them from
	having preelaborable initialization).
	* sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
	initialization for controlled types in Ada 2005 or later mode.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
	Postcondition.
	(Same_Aspect): New function.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
	Type_Invariant, Precondition, Postcondition.
	* snames.ads-tmpl: Add Name_Type_Invariant.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
	here.
	(Freeze_All_Ent): Fix error in handling inherited aspects.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
	already analyzed, but don't skip entire processing of a declaration,
	that's wrong in some cases of declarations being rewritten.
	(Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
	Don't delay for integer, string literals
	Treat predicates in usual manner for delay, remove special case code,
	not needed.
	(Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
	(Build_Predicate_Function): Update saved expression in aspect
	(Build_Invariant_Procedure): Update saved expression in aspect
	* exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
	of replacement of discriminant references if the reference is simple.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
	* sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
	Static_Predicate and Dynamic_Predicate.
	(Build_Predicate_Function): Add processing for Static_Predicate
	and Dynamic_Predicate.
	* sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
	(From_Static_Predicate): New flag
	* snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* usage.adb: Documentation cleanup for Ada version modes in usage.
	* expander.adb: Minor reformatting.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* atree.ads: Minor comment fix.
	* a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
	a-witeio.ads, sem_prag.adb: Minor reformatting.

2011-08-01  Doug Rupp  <rupp@adacore.com>

	* env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
	pointers. Use descrip.h header file for convenience. Add some
	comments.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
	(Freeze_All): Call Check_Aspect_At_End_Of_Declarations
	* sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
	New procedure.
	(Check_Aspect_At_End_Of_Declarations): New procedure
	(Analye_Aspect_Specification): Minor changes for above procedures
	* sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
	specification node as well.

2011-08-01  Pascal Obry  <obry@adacore.com>

	* adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
	Windows files. Use GetFilesAttributes() in this case to check for file
	existence instead of returning with an error code.

2011-08-01  Vincent Celier  <celier@adacore.com>

	* a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
	High is above Source length.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* aspects.ads (Boolean_Aspects): New subtype.
	* exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
	for derived types in cases where the parent type and derived type have
	aspects.
	* freeze.adb (Freeze_Entity): Fix problems in handling derived type
	with aspects when parent type also has aspects.
	(Freeze_Entity): Deal with delay of boolean aspects (must evaluate
	boolean expression at this point).
	* sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
	accordance with final decision on the Ada 2012 feature.
	* sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.

2011-08-01  Matthew Heaney  <heaney@adacore.com>

	* a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.

2011-08-01  Pascal Obry  <obry@adacore.com>

	* a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
	Fix Replace_Slice when High is above current string size.
	(Replace_Slice): Fix DL computation when High is above current
	string length.

2011-08-01  Gary Dismukes  <dismukes@adacore.com>

	* gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.

2011-08-01  Matthew Heaney  <heaney@adacore.com>

	* a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
	of node.

2011-08-01  Pascal Obry  <obry@adacore.com>

	* a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
	reformatting.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
	access to protected subprograms in generic bodies.
	* sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
	protected type, indicate that the convention of the subprogram is
	Convention_Protected, because it may be used in subsequent declarations
	within the protected declaration.

2011-08-01  Vincent Celier  <celier@adacore.com>

	* mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
	and "final" procedures when the name of the library is "ada", to avoid
	duplicate symbols "adainit" and "adafinal" in executables.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
	quantified expression that appears within a postcondition and uses the
	Ada2012 'Result attribute.

2011-07-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* init.c (__gnat_error_handler): Cast reason to int.
	(__gnat_install_handler): Explain sa_sigaction use.

2011-07-24  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
	subprogram has copy-in copy-out parameters, try to promote the mode of
	the return type if it is passed in registers.

2011-07-24  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
	left operand as addressable.

2011-07-24  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (build_function_stub): Remove.
	(build_return_expr): Likewise.
	(convert_vms_descriptor): Declare.
	* gcc-interface/utils.c (convert_vms_descriptor): Make global.
	(build_function_stub): Move to...
	* gcc-interface/utils2.c (build_return_expr): Move to...
	* gcc-interface/trans.c (build_function_stub): ...here.
	(build_return_expr): ...here.
	(Subprogram_Body_to_gnu): Add local variable for language_function.
	Disconnect the parameter attributes cache, if any, once done with it.
	Call end_subprog_body only after setting the end_locus.
	Build the stub associated with the function, if any, at the very end.
	(gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
	variables and streamline control flow.

2011-07-23  Arnaud Charlet  <charlet@adacore.com>

	PR ada/49819
	* gcc-interface/Makefile.in (powerpc-linux): Remove reference to
	g-trasym-dwarf.adb.

2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR bootstrap/49794
	* init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
	Assign to act.sa_sigaction.
	* tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
	current->return_address to char * before arithmetic.

2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
	Correct argument types.
	Extract code from reason.
	(__gnat_install_handler): Assign to act.sa_sigaction.

2011-07-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
	(GNAT1_OBJS): ...here.

2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/48711
	* g-socthi-mingw.adb (Fill): Fix formatting.

	* gcc-interface/gigi.h: Move around comment.

2011-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR ada/46350
	* s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.

2011-07-14  Florian Weimer  <fw@deneb.enyo.de>

	PR ada/48711
	* g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.

2011-07-13  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
	range comparison if Pmode is SImode.

2011-07-12  Laurent GUERBY  <laurent@guerby.net>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* adadecode.c: Wrap up in extern "C" block.
	* adadecode.h: Likewise.
	* adaint.c: Likewise.  Remove 'const' keyword.
	* adaint.h: Likewise.
	* argv.c: Likewise.
	* atree.h: Likewise.
	* cio.c: Likewise.
	* cstreams.c: Likewise.
	* env.c: Likewise.
	* exit.c: Likewise.
	* fe.h: Likewise.
	* final.c: Likewise.
	* init.c: Likewise.
	* initialize.c: Likewise.
	* link.c: Likewise.
	* namet.h: Likewise.
	* nlists.h: Likewise.
	* raise.c: Likewise.
	* raise.h: Likewise.
	* repinfo.h: Likewise.
	* seh_init.c: Likewise.
	* targext.c: Likewise.
	* tracebak.c: Likewise.
	* uintp.h: Likewise.
	* urealp.h: Likewise.
	* xeinfo.adb: Wrap up generated C code in extern "C" block.
	* xsinfo.adb: Likewise.
	* xsnamest.adb: Likewise.
	* gcc-interface/gadaint.h: Wrap up in extern "C" block.
	* gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
	* gcc-interface/misc.c: Likewise.
	* gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
	(GNAT1_C_OBJS): Remove ada/b_gnat1.o.  List ada/seh_init.o and
	ada/targext.o here...
	(GNAT_ADA_OBJS): ...and not here.
	(GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
	(GNATBIND_OBJS): Reorder.

2011-07-07  Richard Henderson  <rth@redhat.com>

	* gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
	dwarf2out_frame_init.

2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/misc.c (gnat_init): Tweak previous change.

2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/39150
	* gcc-interface/Makefile.in: Handle x86_64-solaris2.

2011-07-06  Richard Guenther  <rguenther@suse.de>

	* gcc-interface/misc.c (gnat_init): Merge calls to
	build_common_tree_nodes and build_common_tree_nodes_2.
	Re-initialize boolean_false_node.

2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
	    Olivier Hainque  <hainque@adacore.com>
	    Nicolas Setton  <setton@adacore.com>

	* gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
	the type according to the ARTIFICIAL_P parameter.
	(create_type_decl): Likewise.
	(create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.

2011-07-01  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
	(gnatbind): Likewise.

2011-06-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).

2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
	local variable throughout.  Remove useless call to Base_Type.
	(gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
	Take it also into account for the volatileness of the field.  Set the
	TREE_SIDE_EFFECTS flag as well in this case.  Reorder some warnings.

2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
	on a dereference built for a by-ref object if it has an address clause.

2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Address_Taken): Document use for the second argument of
	Asm_Input and Asm_Output attributes.
	* sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
	argument is an entity name, then set Address_Taken on it.
	<Attribute_Asm_Output>: Likewise.
	* gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
	Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
	(gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
	memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.

2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR middle-end/46500
	* gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.

2011-06-14  Joseph Myers  <joseph@codesourcery.com>

	* gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
	(ada/utils.o): Update dependencies.
	* gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
	../../../libcpp/libcpp.a.
	* gcc-interface/utils.c: Include common/common-target.h.
	(process_attributes): Use targetm_common.have_named_sections.

2011-06-07  Richard Guenther  <rguenther@suse.de>

	* gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
	set_sizetype.

2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
	TREE_THIS_NOTRAP flag.

2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
	Fix thinko.

2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
	constants whose full view has discriminants specially.

2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c: Include diagnostic.h.
	(gnat_write_global_declarations): Output debug information for all
	global type declarations before finalizing the compilation unit.
	* gcc-interface/Make-lang.in (ada/utils.o): Add dependency.

2011-05-25  Jakub Jelinek  <jakub@redhat.com>

	* gcc-interface/utils.c (def_fn_type): Remove extra va_end.

2011-05-25  Kai Tietz  <ktietz@redhat.com>

	* adaint.c (__gnat_to_canonical_file_list_next): Use array
	initialization instead of const/none-const pointer assignment.

2011-05-24  Joseph Myers  <joseph@codesourcery.com>

	* gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
	$(EXTRA_GNAT1_OBJS).
	(GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
	(EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
	(gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
	* gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
	libcommon-target.a instead of prefix.o.

2011-05-21  Joseph Myers  <joseph@codesourcery.com>

	PR ada/49097
	* gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).

2011-05-20  Joseph Myers  <joseph@codesourcery.com>

	* gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
	* gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
	instead of version.o.

2011-05-18  Kai Tietz <ktietz@redhat.com>

	* gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
	boolean_false_node instead of integer_zero_node.
	(convert_with_check): Likewise.
	* gcc-interface/decl.c (choices_to_gnu): Likewise.

2011-05-12  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
	type of the parameter is an unconstrained array, convert the actual to
	the type of the formal in the In Out and Out cases as well.

2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>

	* gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
	call build_function_type_array or build_varargs_function_type_array
	instead.
	(create_subprog_type): Don't call build_function_type; call
	build_function_type_vec instead.

2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>

	* gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
	(TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
	(TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.

2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.

	* gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
	* gcc-interface/utils.c (global_bindings_p): Return bool and simplify.

2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>

	* gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.

2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>

	* gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
	instead of accessing TYPE_ARG_TYPES directly.
	* gcc-interface/utils.c (handle_nonnull_attribute): Likewise.

2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/48844
	* gcc-interface/gigi.h (get_variant_part): Declare.
	* gcc-interface/decl.c (get_variant_part): Make global.
	* gcc-interface/utils2.c (find_common_type): Do not return T1 if the
	types have the same constant size, are record types and T1 has a
	variant part while T2 doesn't.

2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (begin_subprog_body): Do not call
	get_pending_sizes.
	(end_subprog_body): Likewise.

2011-05-04  Richard Guenther  <rguenther@suse.de>

	* gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
	int_const_binop.
	(pos_to_constructor): Likewise.

2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gigi): Call build_function_type_list instead
	of build_function_type.  Adjust calls to...
	(build_raise_check): ...this.  Do not take a void_tree parameter.
	Call build_function_type_list instead of build_function_type.
	Fix head comment and swap couple of conditional blocks.

2011-04-30  Eric Botcazou  <ebotcazou@adacore.com>

	* gnatvsn.ads (Library_Version): Bump to 4.7.
	(Current_Year): Bump to 2011.

2011-04-29  Michael Matz  <matz@suse.de>

	* gcc-interface/misc.c (gnat_handle_option): Set
	warn_maybe_uninitialized.

2011-04-23  Gerald Pfeifer  <gerald@pfeifer.com>

	* gnat_ugn.texi (Complexity Metrics Control): Update link to
	the Watson/McCabe paper.

2011-04-23  Jim Meyering  <meyering@redhat.com>

	* gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/

2011-04-22  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
	onto the new type.

2011-04-22  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
	parameter.
	* gcc-interface/utils.c (create_subprog_decl): Likewise.  Set
	DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
	ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
	<all>: Do not set flags on the reused DECL node coming from an alias.
	Set DECL_IGNORED_P on the DECL node built for subprograms if they
	don't need debug info here...
	* gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
	(gigi): Adjust calls to create_subprog_decl.
	(build_raise_check): Likewise.
	(establish_gnat_vms_condition_handler): Likewise.
	(Compilation_Unit_to_gnu): Likewise.
	(gnat_to_gnu): Likewise.

2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
	(NO_REORDER_ADAFLAGS): New variable.
	(EXTRA_GNATTOOLS): Always define.
	(../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
	Clean up and adjust list of files compiled with special options.
	* gcc-interface/Make-lang.in: Likewise.
	(ada/decl.o): Cosmetical change.
	(ada/misc.o): Remove dependency on $(PLUGIN_H).

2011-04-20  Jim Meyering  <meyering@redhat.com>

	* initialize.c (__gnat_initialize): Remove useless if-before-free.

2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
	$(CFLAGS) on the link line.

2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
	padded type built for the return type if it is unconstrained.

2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>

	* gcc-interface/utils.c (gnat_poplevel): Use block_chainon.

2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>

	* gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
	before calling TREE_CHAIN.
	* gcc-interface/misc.c (gnat_init_ts): New function.
	(LANG_HOOKS_INIT_TS): Define.

2011-04-12  Martin Jambor  <mjambor@suse.cz>

	* gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
	instead of cgraph_node.

2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
	alignment on fields of the RETURN type built for the Copy-In Copy-Out
	mechanism.

2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
	of aggregate types that contain a placeholder.

2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>

	* gcc-interface/utils.c (handle_sentinel_attribute): Don't use
	TYPE_ARG_TYPES.
	(handle_type_generic_attribute): Likewise.

2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/47163
	* s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.

2011-04-04  Kai Tietz  <ktietz@redhat.com>

	PR ada/47163
	* s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
	to flag value.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.c (build_allocator): In the unconstrained array
	type case, do not strip a padding type around the array type.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (update_pointer_to): Finalize named pointer
	types.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
	* gcc-interface/misc.c (gnat_handle_option): Remove special handling
	code for -feliminate-unused-debug-types.
	(gnat_post_options): Likewise.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
	declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
	distinct copy.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
	DECL_ARTIFICIAL flag on enumeration types.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
	fat pointer types artificial unconditionally.
	<E_Array_Subtype>: Attach the base array type as a parallel type if it
	isn't artificial.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (get_dummy_type): Declare.
	(build_dummy_unc_pointer_types): Likewise.
	(finish_fat_pointer_type): Likewise.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
	fat pointer type has been built, complete it in place.
	<E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
	and thin pointers.  Remove useless variable.
	(finish_fat_pointer_type): Make global and move to...
	* gcc-interface/utils.c (finish_fat_pointer_type): ...here.
	(get_dummy_type): New function.
	(build_dummy_unc_pointer_types): Likewise.
	(gnat_pushdecl): Propage the name to the anonymous variants only.
	(update_pointer_to): Only adjust the pointer types in the unconstrained
	array case.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
	if this is a Taft amendment type and the full declaration is available.
	* gcc-interface/trans.c (process_type): Likewise.
	If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
	(process_freeze_entity): Likewise.
	* gcc-interface/utils.c (dummy_global): New static variable.
	(gnat_write_global_declarations): If there are types declared as used
	at the global level, insert them in the global hash table.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
	* gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
	declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
	copy.
	(record_builtin_type): Add ARTIFICIAL_P parameter.  Set DECL_ARTIFICIAL
	flag of the type accordingly.
	* gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
	finalizing types when updating the pointers to the designated type.
	<all>: Finalize the deferred types even if we didn't defer processing
	of incomplete types in this invocation.

2011-04-01  Olivier Hainque  <hainque@adacore.com>
	    Nicolas Setton  <setton@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/misc.c (gnat_descriptive_type): New function.
	(LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.

2011-03-28  Kai Tietz  <ktietz@redhat.com>

	* gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
	Windows targets.
	(EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
	* system-mingw.ads (System): Change ZCX_By_Default default to True.

	* raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.

2011-03-28  Tristan Gingold  <gingold@adacore.com>

	PR ada/44431
	* gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
	Use ada output of gnatbind.
	(ada/b_gnatb.adb): Ditto.
	(ada/b_gnat1.o, ada/b_gnatb.o): New rules.
	(ada.mostlyclean, ada.stage1)
	(ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
	(ada.stagefeedback): Adjust.
	* gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
	Use ada output of gnatbind.
	(b_gnatm.adb): Ditto.
	(b_gnatl.o, b_gnatm.o): New rules.

2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
	for the padded type built to support a specified size or alignment.

2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
	unconditionally to the end of the unit when the designated type is
	limited_with'ed.
	<all>: Rename local variable.  Attempt to un-defer types only and do it
	for limited_with'ed types as well.
	(finalize_from_with_types): Adjust comment.  Rename variable and tidy.
	* gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
	consistently and remove redundant call to finalize_from_with_types.

2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>

	* inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
	subprograms without a previous spec declared in the same unit.
	* gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
	subprograms at the end of the unit instead of at the beginning.
	* gcc-interface/utils.c (create_subprog_decl): Check that the entity
	isn't public for the special handling of non-inline functions nested
	inside inline external functions.

2011-03-25  Jeff Law  <law@redhat.com>

	* gcc-interface/utils.c (def_fn_type): Add missing va_end.

2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Size_Depends_On_Discriminant): Adjust description.
	* layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
	to compute Set_Size_Depends_On_Discriminant.
	(Layout_Type): Call it on array types in back-end layout mode.
	* sem_util.adb (Requires_Transient_Scope): Return true for array
	types only if the size depends on the value of discriminants.
	* gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
	type if the RHS is a call to a function that returns an unconstrained
	type with default discriminant.

2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
	non-conversion to the nominal result type at the end.

2011-03-23  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (create_temporary): New function taken from...
	(create_init_temporary): ...here.  Call it.
	(call_to_gnu): Create the temporary for the return value early, if any.
	Create it for a function with copy-in/copy-out parameters if there is
	no target; in other cases of copy-in/copy-out, use another temporary.
	Push the new binding level lazily.  Add and rename local variables.

2011-03-23  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (validate_size): Improve comments and tweak
	error message.
	(set_rm_size): Likewise.

2011-03-23  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
	for the padded type built in order to support a specified alignment.
	Fix incorrect formatting.

2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>

	PR bootstrap/48216
	* gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.

2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (components_to_record): Add REORDER parameter,
	rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
	to the end of the list.  Adjust recursive call.  Rename local variable.
	If REORDER is true, reorder components of the record type.
	(gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
	components_to_record and adjust the parameter list.

2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (elaborate_expression_1): When optimization is
	disabled, use the variable for bounds of loop iteration scheme.

2011-03-21  Kai Tietz  <ktietz@redhat.com>

	PR target/12171
	* gcc-interface/utils.c (gnat_internal_attribute_table): Add column.

2011-03-17  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (elaborate_expression_1): Try harder to find
	out whether the expression is read-only.  Short-circuit placeholder
	case and rename a couple of local variables.

2011-03-17  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (smaller_form_type_p): Declare.
	* gcc-interface/trans.c (smaller_form_type_p): Make global and move...
	* gcc-interface/utils.c (smaller_form_type_p): ...to here.
	(convert): Deal with conversions from a smaller form type specially.

2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
	its argument, except for the special -I- switch.

2011-02-12  Gerald Pfeifer  <gerald@pfeifer.com>

	* gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
	"Ada Issues".

2011-02-08  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.

2011-02-03  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
	GNAT_FORMAL.
	* gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
	* gcc-interface/utils.c (fill_vms_descriptor): ...here.  Take GNU_TYPE
	instead of GNAT_FORMAL.  Protect the expression against multiple uses.
	Do not generate the check directly, instead instantiate the template
	check present in the descriptor.
	(make_descriptor_field): Move around.
	(build_vms_descriptor32): Build a template check in the POINTER field.
	(build_vms_descriptor): Remove useless suffixes.
	* gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.

2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>

	PR bootstrap/47467
	* targext.c: Include target files if IN_RTS is defined.

2011-01-26  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/47467
	* targext.c: Include config.h.
	* gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
	dependency.

2011-01-04  Pascal Obry  <obry@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.

2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
	end-of-case on the end label and its associated gotos, if any.

2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
	expressions of the parameter cache within the statement group of
	the CICO mechanism.

2011-01-04  Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
	(set_end_locus_from_node): New function.
	(Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
	make and the function end_locus.
	(Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
	for the elaboration subprogram.
	(set_gnu_expr_location_from_node) <default case>: Use it to attempt to
	set the end_locus of the expression as well.

2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/47131
	* gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
	variables that are referenced in exception handlers volatile.



Copyright (C) 2011 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.

	* gnat_rm.texi: Ramification of pragma Eliminate documentation
	 - fix bugs in the description of Source_Trace;
	 - get rid of UNIT_NAME;

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_ch9.adb
	(Build_Dispatching_Requeue): Adding support for VM targets
	since we cannot directly reference the Tag entity.
	* exp_sel.adb (Build_K): Adding support for VM targets.
	(Build_S_Assignment): Adding support for VM targets.
	* exp_disp.adb
	(Default_Prim_Op_Position): In VM targets do not restrict availability
	of predefined interface primitives to compiling in Ada 2005 mode.
	(Is_Predefined_Interface_Primitive): In VM targets this service is not
	restricted to compiling in Ada 2005 mode.
	(Make_VM_TSD): Generate code that declares and initializes the OSD
	record. Needed to support dispatching calls through synchronized
	interfaces.
	* exp_ch3.adb
	(Make_Predefined_Primitive_Specs): Enable generation of predefined
	primitives associated with synchronized interfaces.
	(Make_Predefined_Primitive_Bodies): Enable generation of predefined
	primitives associated with synchronized interfaces.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
	statements hidden in SPARK if preceded by the HIDE directive
	(Parse_Exception_Handlers): mark each exception handler in a sequence of
	exception handlers as hidden in SPARK if preceded by the HIDE directive
	* par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
	if starting with the HIDE directive
	* par-ch7.adb (P_Package): mark a package body hidden in SPARK if
	starting with the HIDE directive; mark the declarations in a private
	part as hidden in SPARK if the private part starts with the HIDE
	directive
	* restrict.adb, restrict.ads
	(Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
	(Is_In_Hidden_Part_In_SPARK): new function which returns whether its
	argument node belongs to a part which is hidden in SPARK
	(Check_SPARK_Restriction): do not issue violations on nodes in hidden
	parts in SPARK; protect the possibly costly call to
	Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
	* scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
	* scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
	Accumulate_Token_Checksum_GNAT_5_03): add case for new token
	Tok_SPARK_Hide.
	(Scan): recognize special comment starting with '#' and followed by
	SPARK keyword "hide" as a HIDE directive.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* types.ads, erroutc.ads: Minor reformatting.

2011-08-02  Vincent Celier  <celier@adacore.com>

	* link.c: Add response file support for cross platforms.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
	in an association, set parent field of copy before partial analysis.
	* sem_res.adb (Resolve_Slice): create reference to itype only when
	expansion is enabled.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
	for new flag denoting which subprogram bodies are in ALFA
	* restrict.adb, sem_ch7.adb: Update comment
	* sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
	sem_ch9.adb, sem_res.adb: Add calls to
	Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
	* sem_ch6.adb (Analyze_Function_Return): add calls to
	Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
	middle of the body, and extended return.
	(Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
	False when missing return.
	(Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
	to True for subprograms whose spec is in ALFA. Remove later on the flag
	on the entity used for a subprogram body when there exists a separate
	declaration.
	* sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
	if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
	False, otherwise do nothing.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_ch4.ads: minor formatting.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
	debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
	errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
	restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
	opt.ads: cleanup of SPARK mode

2011-08-02  Yannick Moy  <moy@adacore.com>

	* cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
	types.
	* einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
	(Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
	* sem_ch3.adb
	(Analyze_Object_Declaration): set Is_In_ALFA flag for objects
	(Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
	(Constrain_Integer): set Is_In_ALFA flag for integer subtypes
	(Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
	types.
	(Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
	non-static range.
	* sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
	functions whose return type is not in ALFA.
	(Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
	specifications.
	(Process_Formals): unset Is_In_ALFA flag for subprograms if a
	parameter's type is not in ALFA.
	* stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
	types are in ALFA.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6 (Analyze_Expression_Function): treat the function as
	Inline_Always, and introduce a subprogram declaration for it when it is
	not a completion.
	* inline.adb (Add_Inlined_Body): recognize bodies that come from
	expression functions, so that the back-end can determine whether they
	can in fact be inlined.
	* sem_util.adb (Is_Expression_Function): predicate to determine whether
	a function body comes from an expression function.

2011-08-02  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
	null exclusions to test Can_Never_Be_Null on the anonymous access types
	of the formals rather than testing the formals themselves. Exclude this
	check in cases where the Old_Formal is marked as a controlling formal,
	to avoid issuing spurious errors for bodies completing dispatching
	operations (due to the flag not getting set on controlling access
	formals in body specs).
	(Find_Corresponding_Spec): When checking full and subtype conformance of
	subprogram bodies in instances, pass Designated and E in that order, for
	consistency with the expected order of the formals (New_Id followed by
	Old_Id).

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch8.adb: Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
	Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
	primitive operations of class-wide actuals.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_atag.ads, exp_atag.adb
	(Build_Common_Dispatching_Select_Statements): Remove argument Loc
	since its value is implicitly passed in argument Typ.
	* exp_disp.adb (Make_Disp_Conditional_Select_Body,
	Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
	Build_Common_Dispatching_Select_Statements.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
	exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
	Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_res.adb: Minor reformatting.
	* sem_prag.adb: Minor reformatting.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_atag.adb, exp_atags.ads
	(Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
	by the tagged type Entity. Required to use this routine in the VM
	targets since we do not have available the Tag entity in the VM
	platforms.
	* exp_ch6.adb
	(Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
	Ada.Tags has not been previously loaded.
	* exp_ch7.adb
	(Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
	Build_VM_TSDs if package Ada.Tags has not been previously loaded.
	* sem_aux.adb
	(Enclosing_Dynamic_Scope): Add missing support to handle the full
	view of enclosing scopes. Required to handle enclosing scopes that
	are synchronized types whose full view is a task type.
	* exp_disp.adb
	(Build_VM_TSDs): Minor code improvement to avoid generating and
	analyzing lists with empty nodes.
	(Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
	(Make_Disp_Conditional_Select_Body): Add support for VM targets.
	(Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
	(Make_Disp_Timed_Select_Body): Add support for VM targets.
	(Make_Select_Specific_Data_Table): Add support for VM targets.
	(Make_VM_TSD): Generate code to initialize the SSD structure of
	the TSD.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* lib-writ.adb (Write_ALI): when ALFA mode is set, write local
	cross-references section in ALI.
	* lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
	(enclosing subprogram), Slc (location of Sub) and Sun (unit number of
	Sub).
	(Enclosing_Subprogram_Or_Package): new function to return the enclosing
	subprogram or package entity of a node
	(Is_Local_Reference_Type): new function returns True for references
	selected in local cross-references.
	(Lt): function extracted from Lt in Output_References
	(Write_Entity_Name): function extracted from Output_References
	(Generate_Definition): generate reference with type 'D' for definition
	of objects (object declaration and parameter specification), with
	appropriate locations and units, for use in local cross-references.
	(Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
	references of type 'I' for initialization in object definition.
	(Output_References): move part of function Lt and procedure
	Write_Entity_Name outside of the body. Ignore references of types 'D'
	and 'I' introduced for local cross-references.
	(Output_Local_References): new procedure to output the local
	cross-references sections.
	(Lref_Entity_Status): new array defining whether an entity is a local
	* sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
	with 'I' type when initialization expression is present.
	* get_scos.adb, get_scos.ads: Correct comments and typos

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
	the JVM target.
	* exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
	the JVM target.
	* exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
	TSD support.

2011-08-02  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
	(No_Space_Img): New function
	(Find_Excluded_Sources): When reading from a file, record the file name
	and the line number for each excluded source.
	(Mark_Excluded_Sources): When reporting an error, if the excluded
	sources were read from a file, include file name and line number in
	the error message.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
	generation of TSDs to the DOTNET compiler.
	* exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
	generation of TSDs to the DOTNET compiler.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
	record of all the tagged types declared inside library level package
	declarations, library level package bodies or library level subprograms.
	* exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
	associated with a given tagged type.
	(Build_VM_TSDs): New subprogram.
	* exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
	compilation units that are subprograms.
	* exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
	compilation units that are package bodies.
	(Expand_N_Package_Declaration): Generate TSDs of the main compilation
	units that are a package declaration or a package instantiation.
	* exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
	reorganization to improve the error generated by the frontend when the
	function Ada.Tags.Secondary_Tag is not available.
	* rtsfind.ads (RE_Register_TSD): New runtime entity.
	* exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* s-imenne.ads: Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* a-stunau.ads: Add pragma Suppress_Initialization for Big_String
	* freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
	* s-stalib.ads: Add pragma Suppress_Initialization for Big_String

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* einfo.ads (Materialize_Entity): Document this is only for renamings
	* exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
	required debug information in the case where we transform the object
	declaration into a renaming declaration.
	* exp_ch4.adb (Expand_Concatenate): Generate debug info for result
	object
	* exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
	Materialize_Entity.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* einfo.ads, einfo.adb (Suppress_Initialization): Replaces
	Suppress_Init_Procs.
	* exp_ch3.adb, exp_disp.adb, freeze.adb: Use
	Suppress_Initialization/Initialization_Suppressed.
	* gnat_rm.texi: New documentation for pragma Suppress_Initialization
	* sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
	* sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
	* sem_prag.adb: New processing for pragma Suppress_Initialization.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
	Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
	only have inheritable classwide pre/postconditions.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
	* rtsfind.ads (RE_Check_TSD): New runtime entity.
	* exp_disp.adb (Make_DT): Generate call to the new runtime routine that
	checks if the external tag of a type is the same as the external tag
	of some other declaration.

2011-08-02  Thomas Quinot  <quinot@adacore.com>

	* s-taskin.ads: Minor reformatting.

2011-08-02  Emmanuel Briot  <briot@adacore.com>

	* g-comlin.adb (Display_Help): swap the order in which it prints the
	short help and the general usage.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
	the aspect declarations and attach them to the generic copy for
	subsequent analysis.
	(Analyze_Subprogram_Instantiation): copy explicitly the aspect
	declarations of the generic tree to the new subprogram declarations.
	* sem_attr.adb (Check_Precondition_Postcondition): recognize
	conditions that apply to a subprogram instance.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
	private type with a tagged full view is not derived in the immediate
	scope of the partial view, (RM 7.3 (7)) use the scope of the base type.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb: Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Loop_Statement):  If the iteration scheme is an
	Ada2012 iterator, the loop will be rewritten during expansion into a
	while loop with a cursor and an element declaration. Do not analyze the
	body in this case, because if the container is for indefinite types the
	actual subtype of the elements will only be determined when the cursor
	declaration is analyzed.

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
	size/alignment related attributes in CodePeer_Mode.

2011-08-02  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
	Prepend_Element, since this can result in the operation getting the
	wrong slot in the full type's dispatch table if the full type has
	inherited operations. The incomplete type's operation will get added
	to the proper position in the full type's primitives
	list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
	(Process_Incomplete_Dependents): Add Is_Primitive test when checking for
	dispatching operations, since there are cases where nonprimitive
	subprograms can get added to the list of incomplete dependents (such
	as subprograms in nested packages).
	* sem_ch6.adb (Process_Formals): First, remove test for being in a
	private part when determining whether to add a primitive with a
	parameter of a tagged incomplete type to the Private_Dependents list.
	Such primitives can also occur in the visible part, and should not have
	been excluded from being private dependents.
	* sem_ch7.adb (Uninstall_Declarations): When checking the rule of
	RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
	list of a Taft-amendment incomplete type is a primitive before issuing
	an error that the full type must appear in the same unit. There are
	cases where nonprimitives can be in the list (such as subprograms in
	nested packages).
	* sem_disp.adb (Derives_From): Use correct condition for checking that
	a formal's type is derived from the type of the corresponding formal in
	the parent subprogram (the condition was completely wrong). Add
	checking that was missing for controlling result types being derived
	from the result type of the parent operation.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* errout.adb (First_Node): minor renaming
	* restrict.adb (Check_Formal_Restriction): put restriction warning on
	first node.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
	before accessing operands.
	* sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
	decide whether an initialization expression respects SPARK rules, as
	the plain node is the expanded one. This allows for more valid warnings
	to be issued.
	* gnat_rm.texi: Minor update.

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
	previous change.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sem_ch4.adb: Minor reformatting.

2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
	loop statements and the element renaming declaration with a block when
	the element type is controlled.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sinfo.ads: Minor formatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb (Add_Association): if the association has a box and no
	expression, use the Sloc of the aggregate itself for the new
	association.
	* errout.adb (First_Node): Exclude nodes with no Sloc, and always use
	the Original_Node.

2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
	When a container is provided via a function call, generate a renaming
	of the function result. This avoids the creation of a transient scope
	and the premature finalization of the container.
	* exp_ch7.adb (Is_Container_Cursor): Removed.
	(Wrap_Transient_Declaration): Remove the supression of the finalization
	of the list controller when the declaration denotes a container cursor,
	it is not needed.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* restrict.adb (Check_Formal_Restriction): only issue a warning if the
	node is from source, instead of the original node being from source.
	* sem_aggr.adb
	(Resolve_Array_Aggregate): refine the check for a static expression, to
	recognize also static ranges
	* sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
	Array_Type_Declaration): postpone the test for the type being a subtype
	mark after the type has been resolved, so that component-selection and
	expanded-name are discriminated.
	(Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
	to distinguish the case of an iteration scheme, so that an error is
	issed on a non-static range in SPARK except in an iteration scheme.
	* sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
	In_Iter_Schm = True.
	* sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
	user-defined operators so that they are allowed in renaming
	* sem_ch8.adb
	(Find_Selected_Component): refine the check for prefixing of operators
	so that they are allowed in renaming. Move the checks for restrictions
	on selector name after analysis discriminated between
	component-selection and expanded-name.
	* sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
	concatenation argument of string type if it is static.
	* sem_util.adb, sem_util.ads
	(Check_Later_Vs_Basic_Declarations): add a new function
	Is_Later_Declarative_Item to decice which declarations are allowed as
	later items, in the two different modes Ada 83 and SPARK. In the SPARK
	mode, add that renamings are considered as later items.
	(Enclosing_Package): new function to return the enclosing package
	(Enter_Name): correct the rule for homonyms in SPARK
	(Is_SPARK_Initialization_Expr): default to returning True on nodes not
	from source (result of expansion) to avoid issuing wrong warnings.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* errout.adb: On anything but an expression First_Node returns its
	argument.

2011-08-02  Pascal Obry  <obry@adacore.com>

	* prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.

2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
	Set the associated loop as the related expression of internally
	generated cursors.
	* exp_ch7.adb (Is_Container_Cursor): New routine.
	(Wrap_Transient_Declaration): Supress the finalization of the list
	controller when the declaration denotes a container cursor.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
	command line now.
	* par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
	expression is a simple expression. This check cannot be performed in
	the semantics, so just drop it.
	(P_Index_Or_Discriminant_Constraint): move check that the index or
	discriminant is a subtype mark to Analyze_Subtype_Declaration in the
	semantics. Other cases were previously checked in the semantics.
	* par-ch4.adb (P_Name): move checks that a selector name is not
	character literal or an operator symbol to Find_Selected_Component in
	the semantics
	* par-ch5.adb (Parse_Decls_Begin_End): move check that basic
	declarations are not placed after later declarations in a separate
	procedure in Sem_Util (possibly not the best choice?), to be used both
	during parsing, for Ada 83 mode, and during semantic analysis, for
	SPARK mode.
	* par-endh.adb (Check_End): move check that end label is not missing
	to Process_End_Label in the semantics
	* par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
	the special case for SPARK restriction
	* par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
	* restrict.adb, restrict.ads (Check_Formal_Restriction): add a
	parameter Force to issue the error message even on internal node (used
	for generated end label). Call Check_Restriction to check when an error
	must be issued. In SPARK mode, issue an error message even if the
	restriction is not set.
	(Check_Restriction): new procedure with an additional out parameter to
	inform the caller that a message has been issued
	* sem_aggr.adb: Minor modification of message
	* sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
	instead of issuing an error message directly
	* sem_ch3.adb (Analyze_Declarations): move here the check that basic
	declarations are not placed after later declarations, by calling
	Check_Later_Vs_Basic_Declarations
	(Analyze_Subtype_Declaration): move here the check that an index or
	discriminant constraint must be a subtype mark. Change the check that
	a subtype of String must start at one so that it works on subtype marks.
	* sem_ch4.adb (Analyze_Call): move here the check that a named
	association cannot follow a positional one in a call
	* sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
	instead of issuing an error message directly
	* sem_ch8.adb (Find_Selected_Component): move here the check that a
	selector name is not a character literal or an operator symbol. Move
	here the check that the prefix of an expanded name cannot be a
	subprogram or a loop statement.
	* sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
	procedure called from parsing and semantics to check that basic
	declarations are not placed after later declarations
	(Process_End_Label): move here the check that end label is not missing

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
	representation clause in codepeer mode, since it confuses CodePeer and
	does not bring useful info.

2011-08-02  Ed Falis  <falis@adacore.com>

	* init.c: initialize fp hw on MILS.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* errout.adb (First_Node): for bodies, return the node itself (small
	optimization). For other nodes, do not check source_unit if the node
	comes from Standard.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* exp_ch3.adb: Minor comment additions.
	* sem_ch13.adb: Minor reformatting.

2011-08-02  Pascal Obry  <obry@adacore.com>

	* make.adb, makeutl.adb: Removes some superfluous directory separator.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_attr.adb: Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
	(Has_Default_Component_Value): Removed
	* einfo.ads Comment updates
	(Has_Default_Aspect): Replaces Has_Default_Value
	(Has_Default_Component_Value): Removed
	* exp_ch13.adb
	(Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
	* exp_ch3.adb
	(Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
	(Get_Simple_Init_Val): Handle Default_Value aspect
	(Needs_Simple_Initialization): Handle Default_Value aspect
	* exp_ch3.ads: Needs_Simple_Initialization
	* freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
	* par-prag.adb (Pragma_Default[_Component]Value) Removed
	* sem_ch13.adb
	(Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
	* sem_prag.adb (Pragma_Default[_Component]Value) Removed
	* snames.ads-tmpl (Pragma_Default[_Component]Value) Removed

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
	package containing iteration primitives.
	exp_ch5.adb (Expand_Iterator_Loop): ditto.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
	"of", pre-analyze expression in case it is a function call with
	finalization actions that must be placed ahead of the loop.
	* exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
	on an Ada2012 iterator, insert them ahead of the rewritten loop.

2011-08-02  Geert Bosch  <bosch@adacore.com>

	* cstand.adb (Create_Float_Types): Only consider C's long double for
	Long_Long_Float, in addition to double.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
	sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
	prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
	Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb: handle properly 'Result when it is a prefix of an
	indexed component.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* einfo.ads, einfo.adb
	(Original_Access_Type): Move this attribute to Node26 since there was
	an undocumented use of Node21 in E_Access_Subprogram_Type entities
	which causes conflicts and breaks the generation of the .NET compiler.
	(Interface_Name): Add missing documentation on JGNAT only uses of
	this attribute.

2011-08-02  Geert Bosch  <bosch@adacore.com>

	* cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
	(Find_Back_End_Float_Type): Likewise
	(Create_Back_End_Float_Types): Likewise
	(Create_Float_Types): Likewise
	(Register_Float_Type): Likewise
	* sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
	Nlist and split out type selection in new local Find_Base_Type function.
	* sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
	Nlist
	* stand.ads (Predefined_Float_Types): Use Elist instead of Nlist

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
	alpha order).
	* opt.ads: Minor comment change.
	* sem_ch12.adb: Minor code reorganization.

2011-08-02  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch3.adb (Complete_Private_Subtype): Don't append the private
	subtype's list of rep items to the list on the full subtype in the case
	where the lists are the same.

2011-08-02  Geert Bosch  <bosch@adacore.com>

	* switch-c.adb (Free): New deallocation procedure to avoid implicitly
	using the one from System.Strings, which also deallocates all strings.

2011-08-02  Geert Bosch  <bosch@adacore.com>

	* gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
	function.
	* gcc-interface/Make-lang.in: Update dependencies.

2011-08-02  Olivier Hainque  <hainque@adacore.com>

	* gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
	end_locus.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
	associated with anonymous access to subprograms.

2011-08-02  Geert Bosch  <bosch@adacore.com>

	* opt.ads
	(Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
	(Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
	* prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
	(Add_Symbol_Definition): Move to switch-c.adb
	(Process_Command_Line_Symbol_Definitions): Adjust references to above.
	* prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
	(Add_Symbol_Definition): Move to switch-c.adb.
	* sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
	* sem_warn.adb
	(Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
	Move to warnsw.adb.
	* sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
	Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
	Move to warnsw.adb.
	* switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
	(Add_Symbol_Definition): Moved from Prepcomp.
	* switch-c.ads: Update copyright notice. Use String_List instead of
	Argument_List, removing dependency on System.OS_Lib.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
	mode on initialization expression which does not respect SPARK
	restrictions.
	* sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
	if the tree referenced by its argument represents an initialization
	expression in SPARK, suitable for initializing an object in an object
	declaration.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
	internally generated access to subprogram with its associated protected
	subprogram type.
	* einfo.ads, einfo.adb (Original_Access_Type): New attribute.

2011-08-02  Geert Bosch  <bosch@adacore.com>

	* cstand.adb (Register_Float_Type): Print information about type to
	register, if the Debug_Flag_Dot_B is set.
	* debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
	* rtsfind.ads (RE_Max_Base_Digits): New run time entity.
	* sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
	with a requested precision of more than Max_Digits digits and no more
	than Max_Base_Digits digits, if a range specification is present and the
	Predefined_Float_Types list has a suitable type to derive from.
	* sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
	case of type completion with pragma Import
	* sem_prag.adb
	(Process_Import_Predefined_Type): Processing to complete a type
	with pragma Import. Currently supports floating point types only.
	(Set_Convention_From_Pragma): Do nothing without underlying type.
	(Process_Convention): Guard against absence of underlying type,
	which may happen when importing incomplete types.
	(Process_Import_Or_Interface): Handle case of importing predefined
	types. Tweak error message.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

	* inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
	functions to previous change.  Reorganize code slightly.

2011-08-02  Geert Bosch  <bosch@adacore.com>

	* back_end.ads (Register_Type_Proc): New call back procedure type for
	allowing the back end to provide information about available types.
	(Register_Back_End_Types): New procedure to register back end types.
	* back_end.adb (Register_Back_End_Types): Call the back end to enumerate
	available types.
	* cstand.adb (Back_End_Float_Types): New list for floating point types
	supported by the back end.
	(Build_Float_Type): Add extra parameter for Float_Rep_Kind.
	(Copy_Float_Type): New procedure to make new copies of predefined types.
	(Register_Float_Type): New call back procedure to populate the BEFT list
	(Find_Back_End_Float_Type): New procedure to find a BEFT by name
	(Create_Back_End_Float_Types): New procedure to populate the BEFT list.
	(Create_Float_Types): New procedure to create entities for floating
	point types predefined in Standard, and put these and any remaining
	BEFTs on the Predefined_Float_Types list.
	* stand.ads (Predefined_Float_Types): New list for predefined floating
	point types that do not have declarations in package Standard.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

	* inline.adb (Get_Code_Unit_Entity): New local function.  Returns the
	entity node for the unit containing the parameter.
	(Add_Inlined_Body): Use it to find the unit containing the subprogram.
	(Add_Inlined_Subprogram): Likewise.
	* gcc-interface/Make-lang.in: Update dependencies.

2011-08-02  Thomas Quinot  <quinot@adacore.com>

	* s-stusta.adb (Print): Make sure Pos is always initialized to a
	suitable value.

2011-08-02  Geert Bosch  <bosch@adacore.com>

	* a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_type.adb (Covers): Move trivial case to the top and reuse the
	computed value of Base_Type.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* restrict.adb (Check_Restriction): issue an error for any use of
	class-wide, even if the No_Dispatch restriction is not set.
	* sem_aggr.adb: Correct typos in comments and messages in formal mode
	* sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
	when completing a private extension, the type named in the private part
	is not the same as that named in the visible part.
	* sem_res.adb (Resolve_Call): issue an error in formal mode on the use
	of an inherited primitive operations of a tagged type or type extension
	that returns the tagged type.
	* sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
	function which returns True for an implicit operation inherited by the
	derived type declaration for the argument type.
	(Is_SPARK_Object_Reference): move to appropriate place in alphabetic
	order.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
	Process_Bounds, to perform analysis with expansion of a range or an
	expression that is the iteration scheme for a loop.
	(Analyze_Iterator_Specification): If domain of iteration is given by a
	function call with a controlled result, as is the case if call returns
	a predefined container, ensure that finalization actions are properly
	generated.
	* par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
	* gcc-interface/Make-lang.in: Update dependencies.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
	determine if the analysis is performed using N or Original_Node (N).
	* exp_util.adb (Side_Effect_Free): Code cleanup since the new
	functionality of routine Is_Variable avoids code duplication.
	* checks.adb (Determine_Range): Handle temporaries generated by
	Remove_Side_Effects.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
	expansion of the condition. Required since the previous analysis was
	done with expansion disabled (see Resolve_Quantified_Expression) and
	hence checks were not inserted and record comparisons have not been
	expanded.

2011-08-02  Ed Falis  <falis@adacore.com>

	* s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
	Update header.

2011-08-02  Bob Duff  <duff@adacore.com>

	* opt.ads: Minor comment fix.

2011-08-02  Bob Duff  <duff@adacore.com>

	* sem_ch12.adb (Analyze_Package_Instantiation,
	Analyze_Subprogram_Instantiation): Turn off style checking while
	analyzing an instance. Whatever style checks that apply to the generic
	unit should apply, so it makes no sense to apply them in an instance.
	This was causing trouble when compiling an instance of a runtime
	unit that violates the -gnatyO switch.
	* stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
	one of the two case statements, causing spurious errors.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* uname.adb: Minor reformatting.
	* gnatcmd.adb: Minor reformatting.
	* exp_attr.adb: Minor reformatting.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
	No_Dispatching_Calls, do not look for the Assign primitive, because
	predefined primitives are not created in this case.

2011-08-02  Bob Duff  <duff@adacore.com>

	* stylesw.ads: Minor comment fixes.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* freeze.adb (Add_To_Result): New procedure.

2011-08-02  Jose Ruiz  <ruiz@adacore.com>

	* exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
	time, if the specific run-time routines for handling streams of strings
	are not available, use the default mechanism.

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

	* s-regpat.ads: Fix typo.

2011-08-02  Vincent Celier  <celier@adacore.com>

	* prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
	not null, call it to create the in memory config project file without
	parsing an existing default config project file.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

	* atree.adb (Allocate_Initialize_Node): Remove useless temporaries.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_elim.adb: an abstract subprogram does not need an eliminate
	pragma for its descendant to be eliminable.

2011-08-02  Ed Falis  <falis@adacore.com>

	* init.c: revert to handling before previous checkin for VxWorks
	* s-intman-vxworks.adb: delete unnecessary declarations related to
	using Ada interrupt facilities for handling signals.
	Delete Initialize_Interrupts. Use __gnat_install_handler instead.
	* s-intman-vxworks.ads: Import __gnat_install_handler as
	Initialize_Interrupts.
	* s-taprop-vxworks.adb: Delete Signal_Mask.
	(Abort_Handler): change construction of mask to unblock exception
	signals.

2011-08-02  Jerome Guitton  <guitton@adacore.com>

	* a-except-2005.adb (Raise_From_Signal_Handler): Call
	Debug_Raise_Exception before propagation starts.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch6.adb (Expand_Call): Guard restriction checks with a call
	to Restriction_Check_Required.
	* sem_ch3.adb (Analyze_Object_Declaration): Likewise.
	* sem_res.adb (Resolve_Call): Likewise.
	* sem_attr.adb (Check_Stream_Attribute): Likewise.

2011-08-02  Bob Duff  <duff@adacore.com>

	* stylesw.ads: Update comment.
	* style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
	* errout.ads: Remove obsolete comment.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
	(Set_Is_Safe_To_Reevaluate): new procedure.
	* sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
	assignment is allowed on safe-to-reevaluate variables.
	(Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
	temporary created to remove side effects in expressions that use
	the secondary stack as safe-to-reevaluate.
	* exp_util.adb (Side_Effect_Free): Add missing code to handle well
	variables that are not true constants.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
	sem_res.adb, sem_ch6.adb: Minor reformatting.

2011-08-02  Jerome Guitton  <guitton@adacore.com>

	* a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
	not set Overridden_Operation if subprogram is an initialization
	procedure.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* par-ch6.adb: Correct obsolete name in comments
	* restrict.adb, restrict.ads (Check_Formal_Restriction): new function
	which takes two message arguments (existing function takes one), with
	second message used for continuation.
	* sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
	block statements that originate from a source block statement, not
	generated block statements
	* sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
	symmetry with procedure case
	* sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
	function to issue an error in formal mode if a package specification
	contains more than one tagged type or type extension.
	* sem_res.adb (Resolve_Actuals): in formal mode, check that actual
	parameters matching formals of tagged types are objects (or ancestor
	type conversions of objects), not general expressions. Issue an error
	on view conversions that are not involving ancestor conversion of an
	extended type.
	(Resolve_Type_Conversion): in formal mode, issue an error on the
	operand of an ancestor type conversion which is not an object
	* sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
	procedure so that it works also for actuals of function calls
	(Is_Actual_Tagged_Parameter): new function which determines if its
	argument is an actual parameter of a formal of tagged type in a
	subprogram call
	(Is_SPARK_Object_Reference): new function which determines if the tree
	referenced by its argument represents an object in SPARK

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb: Minor reformatting
	Minor comment addition
	Minor error msg text change

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
	function. Used to be more precise when we generate a variable plus one
	assignment to remove side effects in the evaluation of the Bound
	expressions.
	(Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
	of the bound expression to force its re-analysis and thus expand the
	associated transient scope (if required). Code cleanup replacing the
	previous code that declared the constant entity by an invocation to
	routine Force_Evaluation which centralizes this work in the frontend.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
	(Base_Type): Now uses improved Is_Base_Type function
	* einfo.ads (Base_Type): Inline this function

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
	(Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface/Make-lang.in: Update dependencies.
	* gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
	targets.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
	non-simple expression used in delta constraint
	(P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
	index constraint which is not a subtype mark
	* par.adb: With and use Restrict
	* sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
	mode on component type which is not a subtype mark and default
	expression on component
	(Analyze_Subtype_Declaration): issue an error in formal mode on subtype
	of string which does not have a lower index bound equal to 1
	(Array_Type_Declaration): issue an error in formal mode on index or
	component type which is not a subtype mark, and on aliased keyword on
	component
	(Derived_Type_Declaration): issue an error in formal mode on interface,
	limited or abstract type
	(Record_Type_Declaration): issue an error in formal mode on interface
	(Record_Type_Definition): issue an error in formal mode on tagged types
	and type extensions not declared in the specification of a library unit
	package; on null non-tagged record; on variant part

2011-08-02  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
	not declared for qualified library project when Library_Name is not
	declared, but Library_Dir is.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
	pragmas (affects aspects [Component_]Default_Value
	(Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
	component type for the resolution

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.adb (Base_Type): Tune implementation for speed.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* freeze.adb: Minor reformatting.

2011-08-02  Thomas Quinot  <quinot@adacore.com>

	* scos.ads: Update comments.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
	base type, because the parent may be a subtype of a private type whose
	convention is established in a private part.

2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
	statement in a block when the expansion of the return expression has
	created a finalization chain.
	* freeze.adb (Freeze_Expression): Alphabetize all choices associated
	with the parent node.
	Add N_Extended_Return_Statement to handle the case where a transient
	object declaration appears in the Return_Object_Declarations list of
	an extended return statement.

2011-08-02  Matthew Gingell  <gingell@adacore.com>

	* adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
	unused parameter 'name'.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_elim.adb (Set_Eliminated): If the overridden operation is an
	inherited operation, check whether its alias, which is the source
	operastion that it renames, has been marked eliminated.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
	in-mode parameter whose type is an access type since it can be used to
	modify its designated object. Enforce code that handles as safe an
	access type that is not access-to-constant but it is the result of a
	previous removal of side-effects.
	(Remove_Side_Effects): Minor code reorganization of cases which require
	no action. Done to incorporate documentation on new cases uncovered
	working in this ticket: no action needed if this routine was invoked
	too early and the nodes are not yet decorated.
	* sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
	to routine Remove_Side_Effects by calls to Force_Evaluation since they
	were issued with actuals that are implicitly provided by
	Force_Evaluation.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sem_res.adb: Minor reformatting.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
	to issue an error in formal mode on attribute not supported in this mode
	(Analyze_Attribute): issue errors on standard attributes not supported
	in formal mode.
	* sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
	comment, and issue error in formal mode on modulus which is not a power
	of 2.
	(Process_Range_Expr_In_Decl): issue error in formal mode on non-static
	range.
	* sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
	subtype mark.
	* sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
	operator on modular type (except 'not').

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Minor reformatting.

2011-08-02  Arnaud Charlet  <charlet@adacore.com>

	* s-osinte-linux.ads: Minor comment update and reformatting.
	* i-cexten.ads: Make this unit pure, as for its parent.
	Will allow its usage in more contexts if needed.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* s-utf_32.ads: Minor comment fix.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
	operation of a tagged synchronized type, handle the case where the
	controlling argument is overloaded.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
	Replace pragma SPARK_95 with pragma Restrictions (SPARK)
	* par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
	SPARK mode and formal verification mode on processing SPARK restriction
	* s-rident.ads (Restriction_Id): add SPARK restriction in those not
	requiring consistency checking.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_res.adb: Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
	a-cforse.ads: Remove unneeded with of Ada.Containers
	Remove commented out pragma Inline's
	Move specifications of new subprograms to the actual specs

2011-08-02  Yannick Moy  <moy@adacore.com>

	* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
	a-cforse.ads: Update comments.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb: add attribute name when 'Result has the wrong prefix.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
	a-cforse.ads, a-cofove.ads: Minor reformatting.

2011-08-02  Claire Dross  <dross@adacore.com>

	* a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
	a-cofove.ads: Add comments.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* gnat_rm.texi: Document formal containers.

2011-08-02  Emmanuel Briot  <briot@adacore.com>

	* g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
	are empty sections.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
	reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* aspects.adb: New aspects Default_Value and Default_Component_Value
	New format of Aspect_Names table checks for omitted entries
	* aspects.ads: Remove mention of Aspect_Cancel and add documentation on
	handling of boolean aspects for derived types.
	New aspects Default_Value and Default_Component_Value
	New format of Aspect_Names table checks for omitted entries
	* einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
	(Has_Default_Value): New flag
	(Has_Default_Component_Value): New flag
	(Has_Default_Value): New flag
	* par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
	table.
	* par-prag.adb: New pragmas Default_Value and Default_Component_Value
	* sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
	Default_Value and Default_Component_Value
	* sem_prag.adb: New pragmas Default_Value and Default_Component_Value
	New aspects Default_Value and Default_Component_Value
	* snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
	* sprint.adb: Print N_Aspect_Specification node when called from gdb

2011-08-02  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
	inherit library kind.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
	Minor reformatting.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* i-cstrin.ads: Updates to make Interfaces.C.Strings match RM

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_aggr.adb (Resolve_Aggregate): Fix thinko.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* impunit.adb: Add comment.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
	qualification of aggregates in formal mode
	(Is_Top_Level_Aggregate): returns True for an aggregate not contained in
	another aggregate
	(Resolve_Aggregate): complete the test that an aggregate is adequately
	qualified in formal mode

2011-08-02  Pascal Obry  <obry@adacore.com>

	* make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
	* mlib-prj.adb: Supress warning when compiling binder generated file.
	(Build_Library): Supress all warnings when compiling the binder
	generated file.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* errout.adb, errout.ads (Check_Formal_Restriction): move procedure
	from here...
	* restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
	* sem_aggr.adb, sem_ch5.adb, sem_util.adb:
	Add with/use clauses to make Check_Formal_Restriction visible

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Check_Generic_Actuals): handle properly actual
	in-parameters when type of the generic formal is private in the generic
	spec and non-private in the body.

2011-08-02  Claire Dross  <dross@adacore.com>

	* a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
	a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
	a-cofove.adb, a-cofove.ads: New files implementing formal containers.
	* impunit.adb, Makefile.rtl: Take new files into account.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
	sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
	formal mode
	* sem_util.adb (Matching_Static_Array_Bounds): proper detection of
	matching static array bounds, taking into account the special case of
	string literals
	* sem_ch3.adb: Typo in comment.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* errout.adb, errout.ads (Check_Formal_Restriction): new procedure
	which issues an error in formal mode if its argument node is originally
	from source
	* sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
	has a discriminant specification so that it does not include the case
	of derived types
	(Derived_Type_Declaration): move here the test that a derived type has a
	discriminant specification
	* sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
	first element of a component association before accessing its choices
	(presence of component association is not enough)
	* exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
	declaration is a library item before accessing the next element in a
	list, as library items are not member of lists
	* sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
	sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
	Check_Formal_Restriction whenever possible.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
	reference when needed.

2011-08-02  Bob Duff  <duff@adacore.com>

	* gnat_ugn.texi: Fix typo.

2011-08-02  Vincent Celier  <celier@adacore.com>

	* make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
	archive file name. Do not use the full path name of archives for Open
	VMS.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch12.adb, sem_ch11.adb: New calling sequence for
	Analyze_Aspect_Specifications
	* sem_ch13.adb
	(Analyze_Aspect_Specifications): New handling for boolean aspects
	* sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
	* sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
	sequence for Analyze_Aspect_Specifications
	* sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
	* sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* freeze.adb (Freeze_Entity): Remove handling of delayed boolean
	aspects, since these no longer exist.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* par-ch13.adb (Aspect_Specifications_Present): Always return false on
	semicolon, do not try to see if there are aspects following it.
	* par-ch3.adb (P_Declarative_Items): Better message for unexpected
	aspect spec.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch8.adb, aspects.ads: Minor reformatting.

2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
	* sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
	extracted from...
	(Analyze_Aspect_Specifications): ...here.  Call above procedure.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
	mode on subprogram declaration outside of package specification, unless
	it is followed by a pragma Import
	* sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
	Access_Type_Declaration): issue error in formal mode on access type
	(Analyze_Incomplete_Type_Decl): issue error in formal mode on
	incomplete type
	(Analyze_Object_Declaration): issue error in formal mode on object
	declaration which does not respect SPARK restrictions
	(Analyze_Subtype_Declaration): issue error in formal mode on subtype
	declaration which does not respect SPARK restrictions
	(Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
	error in formal mode on digits or delta constraint
	(Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
	decimal fixed point type
	(Derived_Type_Declaration): issue error in formal mode on derived type
	other than type extensions of tagged record types
	* sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
	with check on access definition
	* sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
	mode on protected definition.
	(Analyze_Task_Definition): issue error in formal mode on task definition

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* sem_ch6.adb (Can_Override_Operator): New function.
	(Verify_Overriding_Indicator): Add missing code to check overriding
	indicator in operators. Fixes regression.
	(Check_Overriding_Indicator): Minor reformating after replacing the
	code that evaluates if the subprogram can override an operator by
	invocations to the above new function.
	* einfo.adb
	(Write_Field26_Name): Add missing code to ensure that, following
	the documentation in einfo.ads, this field is not shown as attribute
	"Static_Initialization" on non-dispatching functions.

2011-08-02  Jose Ruiz  <ruiz@adacore.com>

	* sem_res.adb (Resolve_Call): A call to
	Ada.Real_Time.Timing_Events.Set_Handler violates restriction
	No_Relative_Delay (AI-0211) only when it sets a relative timing event,
	i.e., when the second parameter is of type Time_Span.

2011-08-02  Vincent Celier  <celier@adacore.com>

	* make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
	with an archive instead of -L<library dir> -l<library name>.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
	mark the base types In_Use in addition to making the operations
	use_visible.

2011-08-02  Ed Falis  <falis@adacore.com>

	* init.c: add and setup __gnat_signal_mask for the exception signals
	* s-inmaop-vxworks.adb: new file.
	* s-intman-vxworks.adb: remove unnecessary initializations and
	simplify remaining
	* s-intman-vxworks.ads: remove unnecessary variable
	* s-taprop-vxworks.adb: simplify signal initialization

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_ch8.adb: Minor code reorganization, comment updates.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
	* sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
	here from Sem_Res.
	(Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
	(Matching_Static_Array_Bounds): Moved here from Sem_Res

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
	* par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
	* sinfo.ads, sinfo.adb (Used_Operations): new attribute of
	use_type_clauses, to handle more efficiently use_type and use_all_type
	constructs.
	* sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
	Ada2012 Use_All_Type clause.
	(Use_Class_Wide_Operations): new procedure.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
	sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
	expression to expression function.

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb: transform simple Ada2012 membership into equality only
	if types are compatible.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* sem_res.adb (Matching_Static_Array_Bounds): new function which
	returns True if its argument array types have same dimension and same
	static bounds at each index.
	(Resolve_Actuals): issue an error in formal mode on actuals passed as
	OUT or IN OUT paramaters which are not view conversions in SPARK.
	(Resolve_Arithmetic_Op): issue an error in formal mode on
	multiplication or division with operands of fixed point types which are
	not qualified or explicitly converted.
	(Resolve_Comparison_Op): issue an error in formal mode on comparisons of
	Boolean or array type (except String) operands.
	(Resolve_Equality_Op): issue an error in formal mode on equality
	operators for array types other than String with non-matching static
	bounds.
	(Resolve_Logical_Op): issue an error in formal mode on logical operators
	for array types with non-matching static bounds. Factorize the code in
	Matching_Static_Array_Bounds.
	(Resolve_Qualified_Expression): issue an error in formal mode on
	qualified expressions for array types with non-matching static bounds.
	(Resolve_Type_Conversion): issue an error in formal mode on type
	conversion for array types with non-matching static bounds

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* par-ch10.adb: Minor code reorganization (use Nkind_In).

2011-08-02  Ed Schonberg  <schonberg@adacore.com>

	* par-ch9.adb: save location of entry for proper error message.

2011-08-02  Javier Miranda  <miranda@adacore.com>

	* sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
	(Use_Full_View) which permits this routine to climb through the
	ancestors using the full-view of private parents.
	* sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
	Use_Full_View to true in calls to Is_Ancestor.
	* sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
	true in call to Is_Ancestor.
	* exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
	Use_Full_View to true in call to Is_Ancestor.
	* exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
	call to Is_Ancestor.
	* exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
	Use_Full_View to true in calls to Is_Ancestor.
	* exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
	Make_Select_Specific_Data_Table, Register_Primitive,
	Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
	* exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
	to true in call to Is_Ancestor.
	* exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
	Use_Full_View to true in calls to Is_Ancestor.
	* exp_cg.adb
	(Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
	(Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Minor reformatting.
	* sem_prag.adb: Minor reformatting.

2011-08-02  Tristan Gingold  <gingold@adacore.com>

	* vms_data.ads: Add VMS qualifier for -gnateP.

2011-08-02  Robert Dewar  <dewar@adacore.com>

	* par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
	* par-ch7.adb (P_Package): Proper placement of aspects for package
	decl/instantiation.
	* par-endh.adb (Check_End): Ad Is_Sloc parameter
	(End_Statements): Add Is_Sloc parameterr
	* par.adb (P_Aspect_Specification): New meaning of Decl = Empty
	(Check_End): Ad Is_Sloc parameter
	(End_Statements): Add Is_Sloc parameterr

2011-08-02  Vincent Celier  <celier@adacore.com>

	* ug_words: Add VMS qualifier equivalent to -gnateP:
	/SYMBOL_PREPROCESSING.

2011-08-02  Jose Ruiz  <ruiz@adacore.com>

	* gnat-style.texi: For hexadecimal numeric literals the typical
	grouping of digits is 4 to represent 2 bytes.
	A procedure spec which is split into several lines is indented two
	characters.

2011-08-02  Yannick Moy  <moy@adacore.com>

	* exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
	* sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
	(Resolve_Aggregate): issue errors in formal modes when aggregate is not
	properly qualified
	(Resolve_Array_Aggregate): issue errors in formal modes on non-static
	choice in array aggregate
	(Resolve_Extension_Aggregate): issue errors in formal modes on subtype
	mark as ancestor
	(Resolve_Record_Aggregate): issue errors in formal modes on mixed
	positional and named aggregate for record, or others in record
	aggregate, or multiple choice in record aggregate
	* sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
	array operands to logical operations AND, OR and XOR do not have the
	same static lower and higher bounds
	* sem_ch5.adb, sinfo.ads: Correct typos in comments

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
	Replaces Last_Source_Node_In_Sequence.
	* err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
	* errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
	parens and blank in string (this was inconsistently implemented).
	* errout.ads
	(Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
	blank in string (this was inconsistently implemented).
	* gnat1drv.adb
	(Set_Global_Switches): Set formal mode switches appropriately
	* opt.ads, opt.adb: Formal mode is now global switches, more consistent
	* par-prag.adb
	(Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
	call Set_Error_Msg_Lang to set "spark" as language name.
	* par.adb: Remove unnecessary call to set formal language for errout
	* sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
	appropriately and call Set_Error_Msg_Lang to set "spark" as language
	name.
	* sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
	calls to it, moved after resolution so that types are known
	* sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
	result of concatenation is not of type String
	(Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
	concatenation is not properly restricted
	* gnat_rm.texi: Add doc on pragma Spark_95.
	* gcc-interface/Makefile.in: Remove obsolete target pairs for
	Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
	* gcc-interface/Make-lang.in: Update dependencies.

2011-08-01  Javier Miranda  <miranda@adacore.com>

	* sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
	condition that detects if the overridden operation must replace an
	existing entity.

2011-08-01  Javier Miranda  <miranda@adacore.com>

	* exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
	code declarations inserted by Insert_Actions in each alternative of the
	N_Case_Expression node.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_ch6.adb: Minor code reorganization.
	* sem_util.adb: Minor reformatting.

2011-08-01  Pascal Obry  <obry@adacore.com>

	* prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
	* gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.

2011-08-01  Yannick Moy  <moy@adacore.com>

	* par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
	literal or operator symbol which is prefixed
	* sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
	mode on access attributes.
	* sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
	that concatenation operands are properly restricted in formal mode
	(Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
	Analyze_Concatenation_Operand. Issue an error in formal mode if the
	result of the concatenation has a type different from String.
	(Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
	Analyze_Quantified_Expression, Analyze_Slice,
	Analyze_Null): issue an error in formal mode on unsupported constructs
	* sem_ch5.adb
	(Analyze_Block_Statement): only issue error on source block statement
	* sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
	function which returns the last node in a list of nodes for which
	Comes_From_Source returns True, if any
	* sem_ch6.adb (Check_Missing_Return): minor refactoring to use
	Last_Source_Node_In_Sequence
	* sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
	Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
	mode on unsupported constructs
	* sem_ch9.adb Do not return after issuing error in formal mode, as the
	rest of the actions may be needed later on since the error is marked as
	not serious.
	* sinfo.ads: Typos in comments.

2011-08-01  Pascal Obry  <obry@adacore.com>

	* projects.texi: Minor editing.

2011-08-01  Yannick Moy  <moy@adacore.com>

	* err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
	insertion character ~~
	* errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
	(Set_Error_Msg_Lang): new procedure which fixes the language for use
	with insertion character ~~
	(Set_Msg_Text): treat insertion character ~~
	* par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
	sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
	Formal_Error_Msg_... procedures by equivalent Error_Msg_...
	procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
	errors related to the formal language restriction not serious
	(insertion character |).
	* par.adb (Par): set formal language for error messages if needed
	* sem_ch6.adb (Check_Missing_Return): take into account possible
	generated statements at the end of the function
	* snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
	enumeration value to define a new pragma SPARK_95
	* opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
	SPARK_Version): new type and variables to store the SPARK version
	(none by default).
	(SPARK_Mode): return True when SPARK_Version is set
	* par-prag.adb: Correct indentation
	(Prag): take Pragma_SPARK_95 into account
	* sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
	into account.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
	sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
	sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting

2011-08-01  Pascal Obry  <obry@adacore.com>

	* prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
	Target_Name to Get_Path call.
	(Parse_Single_Project): Likewise.
	(Post_Parse_Context_Clause): Likewise.
	* prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
	Call Initialise_Project_Path with the proper Target_Name.
	(Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
	search path.
	(Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
	with the proper Target_Name.
	* prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
	Part.Parse routine.
	(Parse_Project_And_Apply_Config): Likewise.
	* prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
	This is fine as this part of the code is supporting only native
	compilation.
	* prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
	is fine as this part of the code is supporting only native compilation.

2011-08-01  Yannick Moy  <moy@adacore.com>

	* sem_util.adb (Enter_Name): issue error in formal mode on declaration
	of homonym, unless the homonym is one of the cases allowed in SPARK
	* par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
	package declaration occurring after a body.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* checks.adb, exp_ch4.adb: Minor reformatting.

2011-08-01  Javier Miranda  <miranda@adacore.com>

	* einfo.ads (Access_Disp_Table): Fix documentation.
	(Dispatch_Table_Wrappers): Fix documentation.

2011-08-01  Pascal Obry  <obry@adacore.com>

	* prj-env.adb, prj-env.ads: Minor reformatting.

2011-08-01  Yannick Moy  <moy@adacore.com>

	* sem_util.ads, sem_util.adb, par.adb, par_util.adb
	(Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
	procedures out of these packages.
	* errout.ads, errout.adb
	(Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
	procedures in of this package
	(Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
	* par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
	on misplaced later vs initial declarations, like in Ada 83
	* sem_attr.adb (Processing for Analyze_Attribute): issue error in
	formal mode on attribute of private type whose full type declaration
	is not visible
	* sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
	package declaration inside a package specification
	(Analyze_Full_Type_Declaration): issue error in formal mode on
	controlled type or discriminant type
	* sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
	user-defined operator means that it should come from the source
	(New_Overloaded_Entity): issue error in formal mode on overloaded
	entity.
	* sem_ch6.ads, sem_ch13.ads: typos in comments.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* atree.adb: Minor reformatting.
	* checks.adb: Minor reformatting.

2011-08-01  Vincent Celier  <celier@adacore.com>

	* s-parame-vms-ia64.ads: Fix typo in comment
	Minor reformatting
	* s-parame-vms-restrict.ads: Removed, unused.

2011-08-01  Javier Miranda  <miranda@adacore.com>

	* exp_ch3.adb
	(Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
	* sem_ch3.adb
	(Constrain_Index): Remove side effects in the evaluation of the bounds.
	* sem_ch3.ads, sem_ch3.adb
	(Is_Constant_Bound): New extended version of the subprogram that was
	previously located inside function Exp_Ch3.Is_Variable_Size_Array.
	Moved here since it is shared by routines of sem_ch3 and exp_ch3.
	* sem_aux.ads (Constant_Value): Fix typo in comment.
	* checks.adb (Generate_Index_Checks): New implementation which, for
	array objects with constant bounds, generates the runtime check
	referencing the bounds of the array type. For other cases this routine
	provides its previous behavior obtaining such values from the array
	object.
	* sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
	parent type.
	* atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
	we cannot have semantic interpretations of the new node.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
	expressions.

2011-08-01  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch8.adb: Minor code editing.
	* s-vxwext.adb: Remove trailing space.
	* freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
	consistency with other files.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* par-ch10.adb: reject parameterized expressions as compilation unit.
	* sem_ch4.adb: handle properly conditional expression with overloaded
	then_clause and no else_clause.

2011-08-01  Tristan Gingold  <gingold@adacore.com>

	* s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
	like done by System.Aux_DEC.
	* env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.

2011-08-01  Yannick Moy  <moy@adacore.com>

	* par-endh.adb (Check_End): issue a syntax error in SPARK mode for
	missing label at end of declaration (subprogram or package)
	* par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
	of positional and named parameter association
	* par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
	Error_Msg_SP which adds a prefix to the error message giving the name
	of the formal language analyzed
	* sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
	access result type in subprogram, unconstrained array as result type,.
	(Analyze_Subprogram_Declaration): issue an error in formal mode for null
	procedure
	* sem_ch8.adb: Code clean up.

2011-08-01  Javier Miranda  <miranda@adacore.com>

	* sem_ch7.adb (Uninstall_Declarations): Remove useless code.
	* einfo.ads (Access_Disp_Table): Fix documentation.
	(Dispatch_Table_Wrappers): Fix documentation.
	* einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
	Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
	to enforce the documentation of this attribute.
	(Set_Is_Interface): Cleanup the assertion.
	* exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
	the Underlying_Type entity before reading attribute Access_Disp_Table.
	* exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
	Locate the Underlying_Type before reading attribute Access_Disp_Table.
	* exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
	the Underlying_Type entity before reading attribute Access_Disp_Table.
	* exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
	Locate the Underlying_Type entity before reading attribute
	Access_Disp_Table.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* s-poosiz.ads: Additional overriding indicators.

2011-08-01  Yannick Moy  <moy@adacore.com>

	* sem_ch5.adb (Analyze_Exit_Statement): add return after error in
	formal mode.
	(Analyze_Iteration_Scheme): issue error in formal mode when loop
	parameter specification does not include a subtype mark.
	* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
	formal mode on abstract subprogram.
	(Analyze_Subprogram_Specification): issue error in formal mode on
	user-defined operator.
	(Process_Formals): issue error in formal mode on access parameter and
	default expression.
	* sem_ch9.adb (Analyze_Abort_Statement,
	Analyze_Accept_Statement, Analyze_Asynchronous_Select,
	Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
	Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
	Analyze_Requeue, Analyze_Selective_Accept,
	Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
	* sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
	issue error in formal mode on user-defined raise statement.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
	declaration being hidden when overriding an implicit inherited
	subprogram.
	* par-ch10.adb (P_Compilation_Unit): In syntax check only mode
	(-gnats), do not complain about a source file that contains only a
	pragma No_Body.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
	variable if already set.

2011-08-01  Arnaud Charlet  <charlet@adacore.com>

	* g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
	g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
	s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
	g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
	g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
	g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
	g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
	g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
	g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
	g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
	g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
	s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
	g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
	s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
	g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
	g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
	g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
	g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
	g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
	g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
	s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
	s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
	a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
	s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
	s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
	g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
	g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
	g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
	g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
	g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
	g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
	s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
	s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
	g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
	g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
	s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
	s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
	g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
	g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
	g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
	s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
	g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
	g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
	g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
	s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
	g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
	g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
	g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
	s-osinte-mingw.ads: Update to GPLv3 run-time license.
	Use GNAT instead of GNARL.

2011-08-01  Bob Duff  <duff@adacore.com>

	* a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
	a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
	a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
	reformatting.

2011-08-01  Yannick Moy  <moy@adacore.com>

	* debug.adb (d.D) reverve flag for the SPARK mode
	(d.E) reverve flag for SPARK generation mode
	(d.F) reverve flag for Why generation mode
	* opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
	ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode):  New
	functions which return True when the corresponding modes are set
	(Formal_Language): return "spark" or "alfa" when in formal verification
	mode.
	* sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
	Error_Msg to prefix the error message with a tag giving the formal
	language
	(Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
	message with a tag giving the formal language
	* sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
	block statement
	(Analyze_Case_Statement): issue error in formal mode on case statement
	with a single "others" case alternative
	(Analyze_Exit_Statement): issue errors in formal mode on exit
	statements which do not respect SPARK restrictions
	(Analyze_Goto_Statement): issue error in formal mode on goto statement
	(Check_Unreachable_Code): always issue an error (not a warning) in
	formal mode on unreachable code (concerns both code after an infinite
	loop and after an unconditional jump, both not allowed in SPARK)
	* sem_ch6.adb (Analyze_Return_Statement): add call to
	Set_Return_Present for a procedure containing a return statement
	(already done for functions in Analyze_Function_Return)
	(Analyze_Function_Return): issue error in formal mode on extended
	return or if return is not last statement in function
	(Check_Missing_Return): issue error in formal mode if function does
	not end with return or if procedure contains a return
	* sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
	function to detect if there is an inner scope of its parameter S which
	is a loop.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* sem_ch6.ads: Minor reformatting.

2011-08-01  Javier Miranda  <miranda@adacore.com>

	* sem_util.adb (Abstract_Interface_List): Complete condition when
	processing private type declarations to avoid reading unavailable
	attribute.
	(Is_Synchronized_Tagged_Type): Complete condition when processing
	private extension declaration nodes to avoid reading unavailable
	attribute.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* sem_ch3.adb: Minor reformatting.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
	i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
	s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
	s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
	for VMS, instead parametrize the common implementation with
	System.Parameters declarations.

2011-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.

2011-08-01  Tristan Gingold  <gingold@adacore.com>

	* seh_init.c: Fix SEH handler installation on win64.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
	double analysis of an anonymous access to subprogram, because it can
	lead to improper sharing of profiles and a back-end crash.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* make.adb, sem_ch4.adb: Minor reformatting.
	* gcc-interface/Make-lang.in: Update dependencies.
	* sem_util.adb, exp_ch5.adb: Minor reformatting.

2011-08-01  Arnaud Charlet  <charlet@adacore.com>

	* gnat_rm.texi: Fix definition of Long_Integer.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb: check limit size of static aggregate unconditionally,
	to prevent storage exhaustion.
	* exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
	finalized is a function body, insert the cleanup code before the final
	return statement, to prevent spurious warnings.
	* s-pooglo.ads: add overriding indicator.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Operator_Check): improve error message when both a
	with_clause and a use_clause are needed to make operator usage legal.
	* sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
	determine whether a compilation unit is visible within an other,
	either through a with_clause in the current unit, or a with_clause in
	its library unit or one one of its parents.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
	over an arbitrary expression of an array or container type.
	* lib-xref.adb: clarify comment.

2011-08-01  Bob Duff  <duff@adacore.com>

	* einfo.ads: Minor reformatting.
	* debug.adb: Minor comment improvement.

2011-08-01  Javier Miranda  <miranda@adacore.com>

	* sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
	consider hidden subprograms as valid candidates.

2011-08-01  Arnaud Charlet  <charlet@adacore.com>

	* make.adb (Compile): Strip -mxxx switches in CodePeer mode.

2011-08-01  Vasiliy Fofanov  <fofanov@adacore.com>

	* gnat_ugn.texi: Fix typo.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
	lib-xref.adb: Minor reformatting

2011-08-01  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
	when to generate a call to Move_Final_List.
	(Has_Controlled_Parts): Remove this function.

2011-08-01  Geert Bosch  <bosch@adacore.com>

	* par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
	"," in choice list.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
	explicit raise of a predefined exception as Comes_From_Source if the
	original N_Raise_Statement comes from source.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* sinfo.ads: Add comment.
	* sem_ch6.adb: Minor reformatting.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* freeze.adb (Freeze_Entity): Refine check for bad component size
	clause to avoid rejecting confirming clause when atomic/aliased present.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
	better determine whether an entity reference is a write.
	* sem_util.adb (Is_LHS): refine predicate to handle assignment to a
	subcomponent.
	* lib-xref.adb (Output_References): Do no suppress a read reference at
	the same location as an immediately preceeding modify-reference, to
	handle properly in-out actuals.

2011-08-01  Tristan Gingold  <gingold@adacore.com>

	* env.c (__gnat_setenv) [VMS]: Refine previous change.

2011-08-01  Quentin Ochem  <ochem@adacore.com>

	* i-cstrin.adb (New_String): Changed implementation, now uses only the
	heap to compute the result.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* atree.ads: Minor reformatting.

2011-08-01  Emmanuel Briot  <briot@adacore.com>

	* g-expect.adb (Get_Command_Output): Fix memory leak.

2011-08-01  Geert Bosch  <bosch@adacore.com>

	* cstand.adb (P_Float_Type): New procedure to print the definition of
	predefined fpt types.
	(P_Mixed_Name): New procedure to print a name using mixed case
	(Print_Standard): Use P_Float_Type for printing floating point types
	* einfo.adb (Machine_Emax_Value): Add preliminary support for quad
	precision IEEE float.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* sem_ch3.adb: Minor reformatting.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
	the completion of a generic function, insert the new body rather than
	rewriting the original.

2011-08-01  Yannick Moy  <moy@adacore.com>

	* sinfo.ads, errout.ads: Typos in comments.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* par-endh.adb: Minor reformatting.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* aspects.ads, aspects.adb: Add aspects for library unit pragmas
	(Pre_Post_Aspects): New subtype.
	* par-ch12.adb (P_Generic): New syntax for aspects in packages
	* par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
	* par-ch7.adb (P_Package): Remove Decl parameter
	(P_Package): Handle new syntax for aspects (before IS)
	* par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
	new aspect syntax
	(P_Task_Definition): Remove Decl parameter, handle new aspect syntax
	* par.adb (P_Aspect_Specifications): Add Semicolon parameter
	(P_Package): Remove Decl parameter
	* sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
	aspects
	* sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
	specs
	* sem_util.ads, sem_util.adb (Static_Boolean): New function
	* sinfo.ads: Document new syntax for aspects in packages etc.
	* sprint.adb: Handle new syntax of aspects before IS in package

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* atree.ads: Minor reformatting.
	* sem_prag.adb: Minor reformatting.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* exp_util.adb (Insert_Actions): Fix error in handling Actions for
	case expr alternative.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb: Fix typo.

2011-08-01  Geert Bosch  <bosch@adacore.com>

	* sem_prag.adb (Check_No_Link_Name): New procedure.
	(Process_Import_Or_Interface): Use Check_No_Link_Name.
	* cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
	instead of Standard_Long_Long_Float_Size global. Preparation for
	eventual removal of per type constants.
	* exp_util.ads (Get_Stream_Size): New function returning the stream
	size value of subtype E.
	* exp_util.adb (Get_Stream_Size): Implement new function.
	* exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
	function.
	* exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
	* einfo.adb:
	(Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats

2011-08-01  Geert Bosch  <bosch@adacore.com>

	* cstand.adb: Fix comments.
	* sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
	count of arguments.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb, sem_cat.adb: Minor reformatting.

2011-08-01  Geert Bosch  <bosch@adacore.com>

	* atree.ads: Fix comment.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
	* par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
	* par.adb: Add with for Namet.Sp.
	* par-tchk.adb: Minor reformatting.

2011-08-01  Vincent Celier  <celier@adacore.com>

	* mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
	(Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
	of the init procedure of a SAL.
	* mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
	New procedure.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
	reformatting.

2011-08-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* adaint.c (__gnat_file_time_name_attr): Get rid of warning.

2011-08-01  Thomas Quinot  <quinot@adacore.com>

	* sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
	conformant with its spec (return True only for types that have
	an overriding Initialize primitive operation that prevents them from
	having preelaborable initialization).
	* sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
	initialization for controlled types in Ada 2005 or later mode.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
	Postcondition.
	(Same_Aspect): New function.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
	Type_Invariant, Precondition, Postcondition.
	* snames.ads-tmpl: Add Name_Type_Invariant.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
	here.
	(Freeze_All_Ent): Fix error in handling inherited aspects.
	* sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
	already analyzed, but don't skip entire processing of a declaration,
	that's wrong in some cases of declarations being rewritten.
	(Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
	Don't delay for integer, string literals
	Treat predicates in usual manner for delay, remove special case code,
	not needed.
	(Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
	(Build_Predicate_Function): Update saved expression in aspect
	(Build_Invariant_Procedure): Update saved expression in aspect
	* exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
	of replacement of discriminant references if the reference is simple.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
	* sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
	Static_Predicate and Dynamic_Predicate.
	(Build_Predicate_Function): Add processing for Static_Predicate
	and Dynamic_Predicate.
	* sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
	(From_Static_Predicate): New flag
	* snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* usage.adb: Documentation cleanup for Ada version modes in usage.
	* expander.adb: Minor reformatting.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* atree.ads: Minor comment fix.
	* a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
	a-witeio.ads, sem_prag.adb: Minor reformatting.

2011-08-01  Doug Rupp  <rupp@adacore.com>

	* env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
	pointers. Use descrip.h header file for convenience. Add some
	comments.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
	(Freeze_All): Call Check_Aspect_At_End_Of_Declarations
	* sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
	New procedure.
	(Check_Aspect_At_End_Of_Declarations): New procedure
	(Analye_Aspect_Specification): Minor changes for above procedures
	* sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
	specification node as well.

2011-08-01  Pascal Obry  <obry@adacore.com>

	* adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
	Windows files. Use GetFilesAttributes() in this case to check for file
	existence instead of returning with an error code.

2011-08-01  Vincent Celier  <celier@adacore.com>

	* a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
	High is above Source length.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.

2011-08-01  Robert Dewar  <dewar@adacore.com>

	* aspects.ads (Boolean_Aspects): New subtype.
	* exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
	for derived types in cases where the parent type and derived type have
	aspects.
	* freeze.adb (Freeze_Entity): Fix problems in handling derived type
	with aspects when parent type also has aspects.
	(Freeze_Entity): Deal with delay of boolean aspects (must evaluate
	boolean expression at this point).
	* sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
	accordance with final decision on the Ada 2012 feature.
	* sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.

2011-08-01  Matthew Heaney  <heaney@adacore.com>

	* a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.

2011-08-01  Pascal Obry  <obry@adacore.com>

	* a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
	Fix Replace_Slice when High is above current string size.
	(Replace_Slice): Fix DL computation when High is above current
	string length.

2011-08-01  Gary Dismukes  <dismukes@adacore.com>

	* gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.

2011-08-01  Matthew Heaney  <heaney@adacore.com>

	* a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
	of node.

2011-08-01  Pascal Obry  <obry@adacore.com>

	* a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
	reformatting.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
	access to protected subprograms in generic bodies.
	* sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
	protected type, indicate that the convention of the subprogram is
	Convention_Protected, because it may be used in subsequent declarations
	within the protected declaration.

2011-08-01  Vincent Celier  <celier@adacore.com>

	* mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
	and "final" procedures when the name of the library is "ada", to avoid
	duplicate symbols "adainit" and "adafinal" in executables.

2011-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
	quantified expression that appears within a postcondition and uses the
	Ada2012 'Result attribute.

2011-07-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* init.c (__gnat_error_handler): Cast reason to int.
	(__gnat_install_handler): Explain sa_sigaction use.

2011-07-24  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
	subprogram has copy-in copy-out parameters, try to promote the mode of
	the return type if it is passed in registers.

2011-07-24  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
	left operand as addressable.

2011-07-24  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (build_function_stub): Remove.
	(build_return_expr): Likewise.
	(convert_vms_descriptor): Declare.
	* gcc-interface/utils.c (convert_vms_descriptor): Make global.
	(build_function_stub): Move to...
	* gcc-interface/utils2.c (build_return_expr): Move to...
	* gcc-interface/trans.c (build_function_stub): ...here.
	(build_return_expr): ...here.
	(Subprogram_Body_to_gnu): Add local variable for language_function.
	Disconnect the parameter attributes cache, if any, once done with it.
	Call end_subprog_body only after setting the end_locus.
	Build the stub associated with the function, if any, at the very end.
	(gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
	variables and streamline control flow.

2011-07-23  Arnaud Charlet  <charlet@adacore.com>

	PR ada/49819
	* gcc-interface/Makefile.in (powerpc-linux): Remove reference to
	g-trasym-dwarf.adb.

2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR bootstrap/49794
	* init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
	Assign to act.sa_sigaction.
	* tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
	current->return_address to char * before arithmetic.

2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
	Correct argument types.
	Extract code from reason.
	(__gnat_install_handler): Assign to act.sa_sigaction.

2011-07-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
	(GNAT1_OBJS): ...here.

2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/48711
	* g-socthi-mingw.adb (Fill): Fix formatting.

	* gcc-interface/gigi.h: Move around comment.

2011-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR ada/46350
	* s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.

2011-07-14  Florian Weimer  <fw@deneb.enyo.de>

	PR ada/48711
	* g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.

2011-07-13  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
	range comparison if Pmode is SImode.

2011-07-12  Laurent GUERBY  <laurent@guerby.net>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* adadecode.c: Wrap up in extern "C" block.
	* adadecode.h: Likewise.
	* adaint.c: Likewise.  Remove 'const' keyword.
	* adaint.h: Likewise.
	* argv.c: Likewise.
	* atree.h: Likewise.
	* cio.c: Likewise.
	* cstreams.c: Likewise.
	* env.c: Likewise.
	* exit.c: Likewise.
	* fe.h: Likewise.
	* final.c: Likewise.
	* init.c: Likewise.
	* initialize.c: Likewise.
	* link.c: Likewise.
	* namet.h: Likewise.
	* nlists.h: Likewise.
	* raise.c: Likewise.
	* raise.h: Likewise.
	* repinfo.h: Likewise.
	* seh_init.c: Likewise.
	* targext.c: Likewise.
	* tracebak.c: Likewise.
	* uintp.h: Likewise.
	* urealp.h: Likewise.
	* xeinfo.adb: Wrap up generated C code in extern "C" block.
	* xsinfo.adb: Likewise.
	* xsnamest.adb: Likewise.
	* gcc-interface/gadaint.h: Wrap up in extern "C" block.
	* gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
	* gcc-interface/misc.c: Likewise.
	* gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
	(GNAT1_C_OBJS): Remove ada/b_gnat1.o.  List ada/seh_init.o and
	ada/targext.o here...
	(GNAT_ADA_OBJS): ...and not here.
	(GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
	(GNATBIND_OBJS): Reorder.

2011-07-07  Richard Henderson  <rth@redhat.com>

	* gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
	dwarf2out_frame_init.

2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/misc.c (gnat_init): Tweak previous change.

2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/39150
	* gcc-interface/Makefile.in: Handle x86_64-solaris2.

2011-07-06  Richard Guenther  <rguenther@suse.de>

	* gcc-interface/misc.c (gnat_init): Merge calls to
	build_common_tree_nodes and build_common_tree_nodes_2.
	Re-initialize boolean_false_node.

2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
	    Olivier Hainque  <hainque@adacore.com>
	    Nicolas Setton  <setton@adacore.com>

	* gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
	the type according to the ARTIFICIAL_P parameter.
	(create_type_decl): Likewise.
	(create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.

2011-07-01  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
	(gnatbind): Likewise.

2011-06-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).

2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
	local variable throughout.  Remove useless call to Base_Type.
	(gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
	Take it also into account for the volatileness of the field.  Set the
	TREE_SIDE_EFFECTS flag as well in this case.  Reorder some warnings.

2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
	on a dereference built for a by-ref object if it has an address clause.

2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Address_Taken): Document use for the second argument of
	Asm_Input and Asm_Output attributes.
	* sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
	argument is an entity name, then set Address_Taken on it.
	<Attribute_Asm_Output>: Likewise.
	* gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
	Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
	(gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
	memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.

2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>

	PR middle-end/46500
	* gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.

2011-06-14  Joseph Myers  <joseph@codesourcery.com>

	* gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
	(ada/utils.o): Update dependencies.
	* gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
	../../../libcpp/libcpp.a.
	* gcc-interface/utils.c: Include common/common-target.h.
	(process_attributes): Use targetm_common.have_named_sections.

2011-06-07  Richard Guenther  <rguenther@suse.de>

	* gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
	set_sizetype.

2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
	TREE_THIS_NOTRAP flag.

2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
	Fix thinko.

2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
	constants whose full view has discriminants specially.

2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c: Include diagnostic.h.
	(gnat_write_global_declarations): Output debug information for all
	global type declarations before finalizing the compilation unit.
	* gcc-interface/Make-lang.in (ada/utils.o): Add dependency.

2011-05-25  Jakub Jelinek  <jakub@redhat.com>

	* gcc-interface/utils.c (def_fn_type): Remove extra va_end.

2011-05-25  Kai Tietz  <ktietz@redhat.com>

	* adaint.c (__gnat_to_canonical_file_list_next): Use array
	initialization instead of const/none-const pointer assignment.

2011-05-24  Joseph Myers  <joseph@codesourcery.com>

	* gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
	$(EXTRA_GNAT1_OBJS).
	(GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
	(EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
	(gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
	* gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
	libcommon-target.a instead of prefix.o.

2011-05-21  Joseph Myers  <joseph@codesourcery.com>

	PR ada/49097
	* gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).

2011-05-20  Joseph Myers  <joseph@codesourcery.com>

	* gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
	* gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
	instead of version.o.

2011-05-18  Kai Tietz <ktietz@redhat.com>

	* gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
	boolean_false_node instead of integer_zero_node.
	(convert_with_check): Likewise.
	* gcc-interface/decl.c (choices_to_gnu): Likewise.

2011-05-12  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
	type of the parameter is an unconstrained array, convert the actual to
	the type of the formal in the In Out and Out cases as well.

2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>

	* gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
	call build_function_type_array or build_varargs_function_type_array
	instead.
	(create_subprog_type): Don't call build_function_type; call
	build_function_type_vec instead.

2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>

	* gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
	(TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
	(TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.

2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.

	* gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
	* gcc-interface/utils.c (global_bindings_p): Return bool and simplify.

2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>

	* gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.

2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>

	* gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
	instead of accessing TYPE_ARG_TYPES directly.
	* gcc-interface/utils.c (handle_nonnull_attribute): Likewise.

2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/48844
	* gcc-interface/gigi.h (get_variant_part): Declare.
	* gcc-interface/decl.c (get_variant_part): Make global.
	* gcc-interface/utils2.c (find_common_type): Do not return T1 if the
	types have the same constant size, are record types and T1 has a
	variant part while T2 doesn't.

2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (begin_subprog_body): Do not call
	get_pending_sizes.
	(end_subprog_body): Likewise.

2011-05-04  Richard Guenther  <rguenther@suse.de>

	* gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
	int_const_binop.
	(pos_to_constructor): Likewise.

2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gigi): Call build_function_type_list instead
	of build_function_type.  Adjust calls to...
	(build_raise_check): ...this.  Do not take a void_tree parameter.
	Call build_function_type_list instead of build_function_type.
	Fix head comment and swap couple of conditional blocks.

2011-04-30  Eric Botcazou  <ebotcazou@adacore.com>

	* gnatvsn.ads (Library_Version): Bump to 4.7.
	(Current_Year): Bump to 2011.

2011-04-29  Michael Matz  <matz@suse.de>

	* gcc-interface/misc.c (gnat_handle_option): Set
	warn_maybe_uninitialized.

2011-04-23  Gerald Pfeifer  <gerald@pfeifer.com>

	* gnat_ugn.texi (Complexity Metrics Control): Update link to
	the Watson/McCabe paper.

2011-04-23  Jim Meyering  <meyering@redhat.com>

	* gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/

2011-04-22  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
	onto the new type.

2011-04-22  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
	parameter.
	* gcc-interface/utils.c (create_subprog_decl): Likewise.  Set
	DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
	ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
	<all>: Do not set flags on the reused DECL node coming from an alias.
	Set DECL_IGNORED_P on the DECL node built for subprograms if they
	don't need debug info here...
	* gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
	(gigi): Adjust calls to create_subprog_decl.
	(build_raise_check): Likewise.
	(establish_gnat_vms_condition_handler): Likewise.
	(Compilation_Unit_to_gnu): Likewise.
	(gnat_to_gnu): Likewise.

2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
	(NO_REORDER_ADAFLAGS): New variable.
	(EXTRA_GNATTOOLS): Always define.
	(../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
	Clean up and adjust list of files compiled with special options.
	* gcc-interface/Make-lang.in: Likewise.
	(ada/decl.o): Cosmetical change.
	(ada/misc.o): Remove dependency on $(PLUGIN_H).

2011-04-20  Jim Meyering  <meyering@redhat.com>

	* initialize.c (__gnat_initialize): Remove useless if-before-free.

2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
	$(CFLAGS) on the link line.

2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
	padded type built for the return type if it is unconstrained.

2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>

	* gcc-interface/utils.c (gnat_poplevel): Use block_chainon.

2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>

	* gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
	before calling TREE_CHAIN.
	* gcc-interface/misc.c (gnat_init_ts): New function.
	(LANG_HOOKS_INIT_TS): Define.

2011-04-12  Martin Jambor  <mjambor@suse.cz>

	* gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
	instead of cgraph_node.

2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
	alignment on fields of the RETURN type built for the Copy-In Copy-Out
	mechanism.

2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
	of aggregate types that contain a placeholder.

2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>

	* gcc-interface/utils.c (handle_sentinel_attribute): Don't use
	TYPE_ARG_TYPES.
	(handle_type_generic_attribute): Likewise.

2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/47163
	* s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.

2011-04-04  Kai Tietz  <ktietz@redhat.com>

	PR ada/47163
	* s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
	to flag value.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.c (build_allocator): In the unconstrained array
	type case, do not strip a padding type around the array type.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (update_pointer_to): Finalize named pointer
	types.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
	* gcc-interface/misc.c (gnat_handle_option): Remove special handling
	code for -feliminate-unused-debug-types.
	(gnat_post_options): Likewise.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
	declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
	distinct copy.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
	DECL_ARTIFICIAL flag on enumeration types.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
	fat pointer types artificial unconditionally.
	<E_Array_Subtype>: Attach the base array type as a parallel type if it
	isn't artificial.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (get_dummy_type): Declare.
	(build_dummy_unc_pointer_types): Likewise.
	(finish_fat_pointer_type): Likewise.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
	fat pointer type has been built, complete it in place.
	<E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
	and thin pointers.  Remove useless variable.
	(finish_fat_pointer_type): Make global and move to...
	* gcc-interface/utils.c (finish_fat_pointer_type): ...here.
	(get_dummy_type): New function.
	(build_dummy_unc_pointer_types): Likewise.
	(gnat_pushdecl): Propage the name to the anonymous variants only.
	(update_pointer_to): Only adjust the pointer types in the unconstrained
	array case.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
	if this is a Taft amendment type and the full declaration is available.
	* gcc-interface/trans.c (process_type): Likewise.
	If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
	(process_freeze_entity): Likewise.
	* gcc-interface/utils.c (dummy_global): New static variable.
	(gnat_write_global_declarations): If there are types declared as used
	at the global level, insert them in the global hash table.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
	* gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
	declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
	copy.
	(record_builtin_type): Add ARTIFICIAL_P parameter.  Set DECL_ARTIFICIAL
	flag of the type accordingly.
	* gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.

2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
	finalizing types when updating the pointers to the designated type.
	<all>: Finalize the deferred types even if we didn't defer processing
	of incomplete types in this invocation.

2011-04-01  Olivier Hainque  <hainque@adacore.com>
	    Nicolas Setton  <setton@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/misc.c (gnat_descriptive_type): New function.
	(LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.

2011-03-28  Kai Tietz  <ktietz@redhat.com>

	* gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
	Windows targets.
	(EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
	* system-mingw.ads (System): Change ZCX_By_Default default to True.

	* raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.

2011-03-28  Tristan Gingold  <gingold@adacore.com>

	PR ada/44431
	* gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
	Use ada output of gnatbind.
	(ada/b_gnatb.adb): Ditto.
	(ada/b_gnat1.o, ada/b_gnatb.o): New rules.
	(ada.mostlyclean, ada.stage1)
	(ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
	(ada.stagefeedback): Adjust.
	* gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
	Use ada output of gnatbind.
	(b_gnatm.adb): Ditto.
	(b_gnatl.o, b_gnatm.o): New rules.

2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
	for the padded type built to support a specified size or alignment.

2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
	unconditionally to the end of the unit when the designated type is
	limited_with'ed.
	<all>: Rename local variable.  Attempt to un-defer types only and do it
	for limited_with'ed types as well.
	(finalize_from_with_types): Adjust comment.  Rename variable and tidy.
	* gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
	consistently and remove redundant call to finalize_from_with_types.

2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>

	* inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
	subprograms without a previous spec declared in the same unit.
	* gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
	subprograms at the end of the unit instead of at the beginning.
	* gcc-interface/utils.c (create_subprog_decl): Check that the entity
	isn't public for the special handling of non-inline functions nested
	inside inline external functions.

2011-03-25  Jeff Law  <law@redhat.com>

	* gcc-interface/utils.c (def_fn_type): Add missing va_end.

2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Size_Depends_On_Discriminant): Adjust description.
	* layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
	to compute Set_Size_Depends_On_Discriminant.
	(Layout_Type): Call it on array types in back-end layout mode.
	* sem_util.adb (Requires_Transient_Scope): Return true for array
	types only if the size depends on the value of discriminants.
	* gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
	type if the RHS is a call to a function that returns an unconstrained
	type with default discriminant.

2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
	non-conversion to the nominal result type at the end.

2011-03-23  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (create_temporary): New function taken from...
	(create_init_temporary): ...here.  Call it.
	(call_to_gnu): Create the temporary for the return value early, if any.
	Create it for a function with copy-in/copy-out parameters if there is
	no target; in other cases of copy-in/copy-out, use another temporary.
	Push the new binding level lazily.  Add and rename local variables.

2011-03-23  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (validate_size): Improve comments and tweak
	error message.
	(set_rm_size): Likewise.

2011-03-23  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
	for the padded type built in order to support a specified alignment.
	Fix incorrect formatting.

2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>

	PR bootstrap/48216
	* gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.

2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (components_to_record): Add REORDER parameter,
	rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
	to the end of the list.  Adjust recursive call.  Rename local variable.
	If REORDER is true, reorder components of the record type.
	(gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
	components_to_record and adjust the parameter list.

2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (elaborate_expression_1): When optimization is
	disabled, use the variable for bounds of loop iteration scheme.

2011-03-21  Kai Tietz  <ktietz@redhat.com>

	PR target/12171
	* gcc-interface/utils.c (gnat_internal_attribute_table): Add column.

2011-03-17  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (elaborate_expression_1): Try harder to find
	out whether the expression is read-only.  Short-circuit placeholder
	case and rename a couple of local variables.

2011-03-17  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (smaller_form_type_p): Declare.
	* gcc-interface/trans.c (smaller_form_type_p): Make global and move...
	* gcc-interface/utils.c (smaller_form_type_p): ...to here.
	(convert): Deal with conversions from a smaller form type specially.

2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
	its argument, except for the special -I- switch.

2011-02-12  Gerald Pfeifer  <gerald@pfeifer.com>

	* gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
	"Ada Issues".

2011-02-08  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.

2011-02-03  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
	GNAT_FORMAL.
	* gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
	* gcc-interface/utils.c (fill_vms_descriptor): ...here.  Take GNU_TYPE
	instead of GNAT_FORMAL.  Protect the expression against multiple uses.
	Do not generate the check directly, instead instantiate the template
	check present in the descriptor.
	(make_descriptor_field): Move around.
	(build_vms_descriptor32): Build a template check in the POINTER field.
	(build_vms_descriptor): Remove useless suffixes.
	* gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.

2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>

	PR bootstrap/47467
	* targext.c: Include target files if IN_RTS is defined.

2011-01-26  Richard Guenther  <rguenther@suse.de>

	PR bootstrap/47467
	* targext.c: Include config.h.
	* gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
	dependency.

2011-01-04  Pascal Obry  <obry@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.

2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
	end-of-case on the end label and its associated gotos, if any.

2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
	expressions of the parameter cache within the statement group of
	the CICO mechanism.

2011-01-04  Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
	(set_end_locus_from_node): New function.
	(Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
	make and the function end_locus.
	(Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
	for the elaboration subprogram.
	(set_gnu_expr_location_from_node) <default case>: Use it to attempt to
	set the end_locus of the expression as well.

2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/47131
	* gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
	variables that are referenced in exception handlers volatile.



Copyright (C) 2011 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
