view gcc/ada/ChangeLog-2008 @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

2008-12-09  Jakub Jelinek  <jakub@redhat.com>

	PR ada/38450
	* gcc-interface/utils.c (finish_record_type): Use SET_TYPE_MODE.
	* gcc-interface/decl.c (gnat_to_gnu_entity, make_aligning_type):
	Likewise.

2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>

	PR bootstrap/38262
	* gcc-interface/Make-lang.in (gnat1): Add BACKENDLIBS, remove GMPLIBS.

2008-11-29  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/30827
	* g-comver.adb (Ver_Len_Max): Fix inconsistency.

2008-11-27  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c: Fix various nits.

2008-11-20  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (init_gigi_decls): Fix type mismatch.

2008-11-16  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/38127
	* gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Do not
	special-case boolean types.  Propagate  the name.
	* gcc-interface/targtyps.c: Tweak comment.

2008-11-15  Geert Bosch  <bosch@adacore.com>

	* gcc-interface/trans.c (emit_check): Put back a final save_expr
	to prevent exponential expansion during gimplification.

2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/lang-specs.h: Expand -coverage and reorder switches.

2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force constants
	initialized to a static constant to be statically allocated even if
	they are of a padding type, provided the original type also has
	constant size.

2008-11-15  Laurent Guerby  <laurent@guerby.net>

	PR ada/37993
	* gcc-interface/Makefile.in: Add multilib handling for x86_64
	on darwin.
	* system-darwin-x86_64.ads: New file.

2008-11-13  Olivier Hainque  <hainque@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>:
	Turn Ada Pure on subprograms back into GCC CONST when eh constructs
	are explicit to the middle-end.  Tidy.

2008-11-09  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code.
	(MINUS_NOMOD_EXPR): Likewise.
	* gcc-interface/utils2.c (build_binary_op) <PREINCREMENT_EXPR>: Make
	unreachable.
	<PLUS_NOMOD_EXPR>: New case.
	<MINUS_NOMOD_EXPR>: Likewise.
	* gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and-
	assignment statement instead of using an increment operator.

2008-11-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* system-irix-n64.ads: New file.
	* gcc-interface/Makefile.in (mips-sgi-irix6*): Support O32 and N64
	multilibs.

2008-11-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	PR ada/37681
	* system-solaris-x86_64.ads: New file.
	* gcc-interface/Makefile.in (*86-solaris2*): Support x86_64 multilib.

2008-11-07  Bechir Zalila  <bechir.zalila@gmail.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/34289
	* lib.ads: (Enable_Switch_Storing): Declare.
	* lib.adb: (Enable_Switch_Storing): New procedure.
	* switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea.
	* make.adb: (Compile_Sources.Compile): Add -gnatea as first option.
	(Display): Never display -gnatea
	* gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez.

2008-11-07  Thomas Quinot  <quinot@adacore.com>

	* gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Check
	for empty range in original base type, not converted result type.

2008-11-07  Geert Bosch  <bosch@adacore.com>

	* gcc-interface/trans.c (build_binary_op_trapv): Convert arguments
	and result for call to __gnat_mulv64.

2008-11-07  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c: Fix formatting nits.

2008-11-07  Geert Bosch  <bosch@adacore.com>

	* gcc-interface/trans.c (build_binary_op_trapv): Avoid emitting
	overflow check for constant result.

2008-11-07  Geert Bosch  <bosch@adacore.com>

	* gcc-interface/trans.c (build_binary_op_trapv): Use more efficient
	overflow check for addition/subtraction if neither operand is constant.

2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/Makefile.in (SPARC/Solaris): Use a common set of
	files for the target-dependent part of the runtime.
	(SPARC/Linux): Likewise.

2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: If not
	optimizing, create a PARM_DECL pointing to the VAR_DECL for debugging
	purposes.

2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/misc.c (gnat_printable_name): Always return a copy
	in GC memory.

2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/19419
	* gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>:
	Generate a call to memmove for an assignment between overlapping
	array slices.

2008-11-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR target/37977
	* gcc-interface/Makefile.in: Add multilib handling for
	s390-linux and s390x-linux.

2008-10-24  Jakub Jelinek  <jakub@redhat.com>

	* gcc-interface/Make-lang.in (check-ada-subtargets): Depend on
	check-acats-subtargets and check-gnat-subtargets.
	(check_acats_targets): New variable.
	(check-acats-subtargets, check-acats%): New targets.
	(check-acats): If -j is used and CHAPTERS is empty, run the testing
	in multiple make goals, possibly parallel, and afterwards run
	dg-extract-results.sh to merge the sum and log files.

2008-10-17  Geert Bosch  <bosch@adacore.com>

	* gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansion
	to use only a single check instead of three, and avoid unnecessary
	COMPOUND_EXPR.
	(emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes
	creating more opportunities for optimizations.

2008-10-13  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/37601
	* gcc-interface/utils.c (gnat_types_compatible_p): Handle
	NULL TYPE_DOMAIN.

2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code
	dealing with volatileness to after code dealing with renaming.

2008-10-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Minor tweaks.
	* gcc-interface/trans.c (Pragma_to_gnu): Likewise.

2008-10-06  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate.
	(unchecked_convert): Use it to disable problematic folding with
	VIEW_CONVERT_EXPR in the general case.  Always disable it for the
	special VIEW_CONVERT_EXPR built for integral types and cope with
	its addressability issues by preserving the first conversion.

2008-10-01  Andreas Schwab  <schwab@suse.de>

	* system-linux-ppc64.ads: New file.
	* gcc-interface/Makefile.in: Add multilib handling for
	powerpc-linux.

2008-09-26  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (gnat_to_gnu_entity) <object>: Cap the alignment promotion
	to that of ptr_mode instead of word_mode.

2008-09-26  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/5911
	* gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support.

2008-09-25  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/37641
	* adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA
	instead of deprecated FILE_WRITE_PROPERTIES.

2008-09-22  Olivier Hainque  <hainque@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity): Even when they
	are never assigned, volatile entities are not constant for code
	generation purposes.

2008-09-21  Laurent Guerby  <laurent@guerby.net>

	PR ada/5911
	* gcc-interface/Makefile.in: Add multilib handling for x86_64
	and sparc.
	* system-linux-sparcv9.ads: New file.

2008-09-20  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_dbug.ads: Document new convention for the XVZ variable.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate
	debug info if necessary for the type padding the component type.
	<E_Array_Subtype>: Likewise.
	(maybe_pad_type): Emit the XVZ variable in units.
	* gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits.
	(Subprogram_Body_to_gnu): Set the source line of the subprogram's node
	on statements generated to initialize the parameter attributes cache.
	Set the source line of the end label of the body on the special return
	statement built for a procedure with copy-in copy-out parameters.

2008-09-20  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/37585
	* gcc-interface/utils.c (create_subprog_decl): Disable inlining for
	inlined external functions if they contain a nested function not
	declared inline.

2008-09-18  Jan Hubicka  <jh@suse.cz>

	* gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
	(end_subprog_body): Do not set DECL_INLINE.

2008-09-17  Pascal Rigaux  <pixel@mandriva.com>

	PR ada/21327
	* gnat_ugn.texi: Use proper format in direntry.

2008-09-15  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gigi): Declare the name of the compilation
	unit as the first global name.

2008-09-14  Jan Hubicka  <jh@suse.cz>

	* gcc-interface/Make-lang.in (gnat1): Add CFLAGS.

2008-09-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads,
	bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb,
	exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
	exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb,
	exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads,
	g-diopit.adb, g-socket.ads, gcc-interface/decl.c,
	gcc-interface/gigi.h, gcc-interface/trans.c,
	lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads,
	opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads,
	s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads,
	s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb,
	sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
	sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
	sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads,
	sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in
	comments.
	* gnathtml.pl: Fix typos.

2008-09-10  Joel Sherrill <joel.sherrill@oarcorp.com>

	* gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb.
	* s-osinte-rtems.ads: Add shared hardware interrupt adapter
	layer. RTEMS binds to OS provided adapter routines so there are
	no modifications to s-osinte-rtems.adb.

2008-09-09  Arnaud Charlet  <charlet@adacore.com>
	    Joel Sherrill  <joel.sherrill@oarcorp.com>

       * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb.

       * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb

       * s-interr-hwint.adb: New file.

	* s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions
	needed by s-interr-hwint.adb.

	* s-osinte-vxworks-kernel.adb: New file.

2008-09-05  Joel Sherrill <joel.sherrill@oarcorp.com>

	* s-stchop-rtems.adb: Add file missed in early commit.  Already
	referenced in gcc-interface/Makefile.in.

2008-08-30  Thomas Quinot  <quinot@adacore.com>

	* gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to
	be built even without a separate libada directory.

2008-08-22  Arnaud Charlet  <charlet@adacore.com>

	* lib-xref.ads: Fix typo in subprogram reference definition.

2008-08-22  Robert Dewar  <dewar@adacore.com>

	* s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix
	to avoid warning.

	* g-trasym.adb: Ditto

	* s-utf_32.adb (Get_Category): Fix obvious typo

	* s-wwdcha.adb: Minor code reorganization
	Remove dead code

2008-08-22  Robert Dewar  <dewar@adacore.com>

	* checks.adb (Determine_Range): Deal with values that might be invalid

	* opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New
	configuration switches.

	* par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values

	* sem_prag.adb: Implement pragma Assume_No_Default_Values

	* snames.adb, snames.ads, snames.h:
	Add entries for pragma Assume_No_Invalid_Values

	* switch-c.adb: Add processing for -gnatB switch

	* usage.adb: Add entry for flag -gnatB (no bad invalid values)

2008-08-22  Javier Miranda  <miranda@adacore.com>

	* exp_ch3.adb (Build_Init_Statements): Transfer to the body of the
	init procedure all the expanded code associated with the spec of
	task types and protected types.

2008-08-22  Gary Dismukes  <dismukes@adacore.com>

	* exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the
	component expression copies rather than directly setting Etype and
	Is_Static_Expression.

2008-08-22  Gary Dismukes  <dismukes@adacore.com>

	* sem_util.adb (Has_Preelaborable_Initialization): Revise checking of
	private types to allow for types derived from a private type with
	preelaborable initialization, but return False for a private extension
	(unless it has the pragma).

2008-08-22  Robert Dewar  <dewar@adacore.com>

	* opt.ads: Minor code reorganization (put entries in alpha order)

2008-08-22  Pascal Obry  <obry@adacore.com>

	* initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking
	spawn.

2008-08-22  Geert Bosch  <bosch@adacore.com>

	* gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN
	(convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0

2008-08-22  Doug Rupp  <rupp@adacore.com>

	* bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call
	__gnat_set_features.

	* init.c
	(__gnat_set_features): New function.
	(__gnat_features_set): New tracking variable.
	(__gl_no_malloc_64): New feature global variable

2008-08-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant
	use_type_clause in an instance.

2008-08-22  Bob Duff  <duff@adacore.com>

	* exp_ch6.ads: Remove pragma Precondition, since it breaks some builds.

2008-08-22  Robert Dewar  <dewar@adacore.com>

	* exp_ch6.adb: Minor reformatting

	* exp_ch7.adb: Minor reformatting

	* exp_ch7.ads: Put routines in proper alpha order

	* exp_dist.adb: Minor reformatting

2008-08-22  Vincent Celier  <celier@adacore.com>

	* prj.ads: Minor comment update

2008-08-22  Robert Dewar  <dewar@adacore.com>

	* sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack

2008-08-22  Ed Schonberg  <schonberg@adacore.com>

	* exp_tss.adb:
	(Base_Init_Proc): For a protected subtype, use the base type of the
	corresponding record to locate the propoer initialization procedure.

2008-08-22  Robert Dewar  <dewar@adacore.com>

	* checks.adb:
	(In_Subrange_Of): New calling sequence
	(Determine_Range): Prepare for new processing using base type

	* exp_ch4.adb:
	(Compile_Time_Compare): Use new calling sequence

	* exp_ch5.adb:
	(Compile_Time_Compare): Use new calling sequence

	* sem_eval.adb:
	(Compile_Time_Compare): New calling sequence allows dealing with
	invalid values.
	(In_Subrange_Of): Ditto

	* sem_eval.ads:
	(Compile_Time_Compare): New calling sequence allows dealing with
	invalid values.
	(In_Subrange_Of): Ditto

2008-08-22  Pascal Obry  <obry@adacore.com>

	* adaint.c: Fix possible race condition on win32_wait().

2008-08-22  Bob Duff  <duff@adacore.com>

	* exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb,
	exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
	exp_intr.adb, exp_ch3.adb: Rename:
	Exp_Ch7.Controlled_Type => Needs_Finalization
	Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part
	Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type =>
	 Has_Controlled_Parts
	(Has_Some_Controlled_Component): Fix bug in array case.

2008-08-22  Robert Dewar  <dewar@adacore.com>

	* sem_ch8.adb: Minor reformatting

2008-08-22  Kevin Pouget  <pouget@adacore.com>

	* s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and
	Shared_Var_Close procedure specifications from package spec to package body.

	* rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen,
	RE_Shared_Var_WOpen entries.

	* exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in
	Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures.

2008-08-22  Eric Botcazou  <ebotcazou@adacore.com>

	* init.c: adjust EH support code on Alpha/Tru64 as well.

	* raise-gcc.c: Add back a couple of comments.

2008-08-22  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is
	involved and the return type is class-wide, use the type of the expression
	for the generated access type. Suppress useless discriminant checks on the
	allocator.

2008-08-22  Bob Duff  <duff@adacore.com>

	* exp_ch7.adb: Minor comment fix

	* exp_ch6.ads: Minor comment fix

2008-08-22  Thomas Quinot  <quinot@adacore.com>

	* sem_ch8.adb: Minor reformatting
	Minor code reorganization (introduce subprogram to factor duplicated
	code).

2008-08-22  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi: Change the description of gnatcheck default rule
	settings.

2008-08-22  Eric Botcazou  <ebotcazou@adacore.com>

	* init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX,
	Solaris, FreeBSD, VxWorks and PowerPC/Linux.  For x86{-64}/Linux,
	do not adjust the PC anymore.
	(__gnat_error_handler): Do not call __gnat_adjust_context_for_raise
	on AIX, HP-UX, Solaris, FreeBSD and VxWorks.

	* raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo
	instead of _Unwind_GetIP.

2008-08-22  Gary Dismukes  <dismukes@adacore.com>

	* exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate
	with a range is transformed into a positional aggregate, any copied
	component literals should be marked Is_Static_Expression.

	* sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as
	not being known at at compile time when Configurable_Run_Time_Mode is
	true.

2008-08-22  Robert Dewar  <dewar@adacore.com>

	* exp_attr.adb:
	(Expand_N_Attribute_Reference): No validity checking on OUT parameter of
	Read or Input attribute.

2008-08-22  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Use_One_Type): when checking which of two use_type
	clauses in related units is redundant, if one of the units is a package
	instantiation, use its instance_spec to determine which unit is the
	ancestor of the other.

2008-08-22  Javier Miranda  <miranda@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): In case of access
	attributes add missing support to handle designated types that come
	from the limited view.

	* exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion.

2008-08-22  Sergey Rybin  <rybin@adacore.com>

	* vms_data.ads: Add entry for new gnatcheck -mNNN option

	* gnat_ugn.texi: Add description for gnatcheck option '-m'

2008-08-22  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi: Update the gnatcheck subsection for metric rules
	acoording to the latest changes in the metric rule interface

2008-08-22  Vincent Celier  <celier@adacore.com>

	* make.adb (Check.File_Not_A_Source_Of): New Boolean function
	(Check): Check if the file names registered in the ALI file for the
	spec, the body and each of the subunits are the ones expected.

2008-08-22  Robert Dewar  <dewar@adacore.com>

	* g-catiio.adb: Code cleanup.

2008-08-20  Vincent Celier  <celier@adacore.com>

	* make.adb (Gnatmake): Remove extra space in version line

	* ali.adb:
	(Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit,
	as the name may already have been entered in the table by the Project
	Manager.

2008-08-20  Jose Ruiz  <ruiz@adacore.com>

	* errno.c (__get_errno, __set_errno for MaRTE): Transform then into
	weak symbols so we use the version provided by MaRTE when available.

2008-08-20  Emmanuel Briot  <briot@adacore.com>

	* g-catiio.ads, g-catiio.adb:
	(Value): Avoid an unnecessary system call to Clock in most cases.
	This call is only needed when only the time is provided in the string,
	and ignored in all other cases. This is more efficient.

2008-08-20  Eric Botcazou  <ebotcazou@adacore.com>

	* raise-gcc.c: Fix formatting nits.

2008-08-20  Robert Dewar  <dewar@adacore.com>

	* sem_ch13.adb:
	(Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for
	non-existing component clause.

	* exp_ch5.adb: Minor reformatting

	* g-comlin.adb: Minor reformatting

	* make.adb: Minor reformatting

	* prj-proc.adb: Minor reformatting

	* stylesw.ads: Minor reformatting

2008-08-20  Vincent Celier  <celier@adacore.com>

	* make.adb (Gnatmake_Switch_Found): New Boolean global variable
	(Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable
	(Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler
	 defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False
	and a switch is not recognized by gnatmake.
	(Gnatmake): Implement new scheme for gnatmake switches and global
	compilation switches.
	(Switches_Of): Try successively Switches (<file name>),
	Switches ("Ada"), Switches (others) and Default_Switches ("Ada").

2008-08-20  Ed Schonberg  <schonberg@adacore.com>

	* styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to
	implement style check that overriding operations are explicitly marked
	at such.

	* style.ads (Missing_Overriding): new procedure that provides interface
	to previous one.

	* stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check
	that the declaration or body of overriding operations carries an
	explicit overriding indicator.

	* sem_ch8.adb
	(Analyze_Subprogram_Renaming): if operation is overriding, check whether
	explicit indicator should be present.

	* sem_ch6.adb (Verify_Overriding_Indicator,
	Check_Overriding_Indicator): If operation is overriding, check whether
	declaration and/or body of subprogram should be present

2008-08-20  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for
	gprbuild when casing is MixedCase, whatever the casing of the letters
	in the file name.

2008-08-20  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to
	creating dummy init proc.
	(Requires_Init_Proc): Return False in the case No_Default_Initialization
	is in force and the type does not have associated default
	initialization. Move test of Is_Public (with tests of restrictions
	No_Initialize_Scalars and No_Default_Initialization) to end, past tests
	for default initialization.

2008-08-20  Jerome Lambourg  <lambourg@adacore.com>

	* g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part
	of any alias or prefix but having attached parameters (as \"-O2\").

2008-08-20  Robert Dewar  <dewar@adacore.com>

	* s-fileio.adb: Minor reformatting

2008-08-20  Thomas Quinot  <quinot@adacore.com>

	* exp_strm.adb (Build_Elementary_Input_Call,
	Build_Elementary_Write_Call): Fix incorrect condition in circuitry that
	selects the stream attribute routines for long float types.

2008-08-20  Vincent Celier  <celier@adacore.com>

	* prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data

	* prj.ads (Array_Data): Add a component Location

2008-08-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb:
	(Analyze_Pragma, case Obsolescent): Add entity information on the pragma
	argument for ASIS and navigation use.

2008-08-20  Ed Schonberg  <schonberg@adacore.com>

	* einfo.ads: Add comment.

2008-08-20  Bob Duff  <duff@adacore.com>

	* sem_eval.ads: Minor comment fix.

2008-08-20  Bob Duff  <duff@adacore.com>

	* exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant
	folding. We were folding things like "False and then ...", but not
	"X and then ..." where X is a constant whose value is known at compile
	time.

2008-08-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch5.adb (Controlled_Type): New routine.
	(Expand_N_Extended_Return_Statement): When generating a move of the
	final list in extended return statements, check the type of the
	function and in the case of double expanded return statements, the type
	of the returned object.
	(Expand_Simple_Function_Return): Perform an interface conversion when
	the type of the returned object is an interface and the context is an
	extended return statement.

2008-08-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type
	and the full view is visible, set flag on full view as well.

2008-08-20  Thomas Quinot  <quinot@adacore.com>

	* g-comlin.adb: Minor reformatting
	Minor code reorganization.

	* freeze.adb: Minor reformatting

2008-08-20  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Check_File): An excluded Ada source file may be a
	source of another project.

2008-08-20  Pascal Obry  <obry@adacore.com>

	* s-os_lib.ads: Minor reformatting.

2008-08-20  Arnaud Charlet  <charlet@adacore.com>

	* gnatvsn.ads: Minor reformatting.

2008-08-20  Arnaud Charlet  <charlet@adacore.com>

	* a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads,
	system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb,
	g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads,
	mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb,
	exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads,
	g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb,
	s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb,
	sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb,
	s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads,
	g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb,
	g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb,
	g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads,
	live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb,
	g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads,
	s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb,
	g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads,
	s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads,
	g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb,
	osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb,
	system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads,
	i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads,
	s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads,
	a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads,
	s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb,
	a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads,
	g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb,
	a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c,
	a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb,
	lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads,
	s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads,
	par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads,
	a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb,
	system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads,
	s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads,
	a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb,
	mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb,
	s-poosiz.adb, link.c: Fix copyright notice.

2008-08-20  Arnaud Charlet  <charlet@adacore.com>

	* g-comlin.ads: Update comments.

2008-08-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag.

2008-08-20  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch11.adb:
	(Expand_Exception_Handlers): Call Make_Exception_Handler instead of
	Make_Implicit_Exception_Handler when rewriting an exception handler with
	a choice parameter, and pass the handler's Sloc instead of that of the
	handled sequence of statements. Make_Implicit_Exception_Handler sets the
	Sloc to No_Location (unless debugging generated code), which we don't
	want for the case of a user handler.

2008-08-20  Robert Dewar  <dewar@adacore.com>

	* freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field

	* sem_ch13.adb:
	(Adjust_Record_For_Reverse_Bit_Order): Messages about layout are
	now labeled as info msgs, not warnings.

	* tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler

	* usage.adb: Minor change to avoid overlong line for -gnatwz/Z

	* a-textio.adb: Remove redundant test.

	* a-witeio.adb: Minor code reorganization
	Remove redundant test found working on another issue

	* a-ztexio.adb: Minor code reorganization
	Remove redundant test found working on another issue

2008-08-20  Thomas Quinot  <quinot@adacore.com>

	* s-fileio.adb (Open) Use C helper function to determine whether a
	given errno value corresponds to a "file not found" error.

	* sysdep.c (__gnat_is_file_not_found_error): New C helper function.

2008-08-20  Jose Ruiz  <ruiz@adacore.com>

	* errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno
	to get access to the per-task errno variable.
	(__set_errno for MaRTE): Do not redefine this function here since it is
	already defined in MaRTE.

2008-08-20  Tristan Gingold  <gingold@adacore.com>

	* gnat_ugn.texi: Gcov is not supported on static library on AIX.

2008-08-20  Robert Dewar  <dewar@adacore.com>

	* freeze.adb: Minor reformatting

	* g-comlin.adb: Minor reformatting

	* g-socket.adb: Minor reformatting

	* g-socthi-mingw.adb: Minor reformatting

	* g-stheme.adb: Minor reformatting

2008-08-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads,
	exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve
	confusion between partial and full views of an ancestor of the context
	type when the parent is a private extension declared in a parent unit,
	and full views are available for the context type.

2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
	    Robert Dewar  <dewar@adacore.com>

	PR ada/30827
	* bindgen.adb (Gen_Output_File_Ada): Zero-terminate the
	version string.
	Move comment in the right place.
	* g-comver.adb (Version): Look for a zero-termination in
	addition to a closing parenthesis.

2008-08-18  Samuel Tardieu  <sam@rfc1149.net>

	* exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb,
	* sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
	* sem_prag.adb, sem_util.adb, sem_warn.adb: Use
	Is_Package_Or_Generic_Package instead of hand-crafted tests.

2008-08-18  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/15808
	* sem_ch6.adb (Check_Private_Overriding): Check for generic packages
	as well.

2008-08-17  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>

	* adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement.

2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call
	for back-copy statements in lieu of that of the actual.

2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/20548
	* gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the
	setjmp test consistently.  Adjust for new behavior of flag_stack_check.
	* gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant
	test of flag_stack_check.  Adjust for new behavior of flag_stack_check.

2008-08-13  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/36777
	* sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New.
	* sem_attr.adb (Check_Type): The current instance of a protected
	object is not a type name.
	(Analyze_Access_Attribute): Accept instances of protected objects.
	(Analyze_Attribute, Attribute_Address clause): Ditto.
	* exp_attr.adb (Expand_N_Attribute_Reference): Rewrite
	the prefix as being the current instance if needed.

2008-08-12  Danny Smith  <danyssmith@users.sourceforge.net>

	* gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]:
	Remove duplicate s-win32.o. Add s-winext.o.

2008-08-12  Danny Smith  <danyssmith@users.sourceforge.net>

	* g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM
	with SOSC.SOCK__STREAM.
	* g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with
	SOSC.MSG_OOB.

2008-08-11  Joel Sherrill  <joel.sherrill@oarcorp.com>

	* s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it.
	* gsocket.h, socket.c: Update to support RTEMS.
	* gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross.

2008-08-10  Samuel Tardieu  <sam@rfc1149.net>
	    Robert Dewar <dewar@adacore.com>

	* exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of
	left argument even when right argument is 0.
	(Expand_N_Op_Mod): Ditto when right argument is 1.
	(Expand_N_Op_Multiply): Ditto when any argument is 0.
	(Expand_N_Op_Rem): Ditto when right argument is 1.

2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused
	by warn_unused.

2008-08-08  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
	from Freeze_Entity. Used to generate cross-reference information for
	types declared in generic packages.

2008-08-08  Thomas Quinot  <quinot@adacore.com>

	* gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a
	compatibility shim.

2008-08-08  Thomas Quinot  <quinot@adacore.com>

	* gsocket.h:
	On Windows, include <errno.h> and redefine only selected errno values
	from their <winsock2.h> definitions.

	* s-osinte-freebsd.ads: Minor reformatting

	* s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting

	* g-soccon.ads: New file.

	* g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
	g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
	g-stsifd-sockets.adb, g-socket.adb, g-socket.ads,
	g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child
	unit, to allow building software that depends on this internal unit
	with both older and newer compilers.

2008-08-08  Robert Dewar  <dewar@adacore.com>

	* s-strxdr.adb: Minor reformatting

2008-08-08  Bob Duff  <duff@adacore.com>

	* gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
	checking for integer operations (including division by zero)", which
	is wrong -- divide by zero is not part of overflow checking.
	Also added misc clarification about what check-suppression means.

	* gnat_rm.texi: Clarify the meaning of pragma Suppress.

2008-08-08  Jerome Lambourg  <lambourg@adacore.com>

	* g-comlin.adb (Add_Switch): Handle addition of switches at the
	begining of the command line.
	(Append, Add): Renaming of Append to Add as this now allows addition
	at the begining of the list.

	* g-comlin.ads (Add_Switch): Handle addition of switches at the
	begining of the command line.

2008-08-08  Thomas Quinot  <quinot@adacore.com>

	* g-sercom.ads:
	(Name): Document application scope (only legacy PC serial ports on
	Linux and Windows).

2008-08-08  Thomas Quinot  <quinot@adacore.com>

	* gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
	previous change, not needed after all.

2008-08-08  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.adb (Expand_Allocator_Expression): add check if null
	exclusion indicator is present

2008-08-08  Robert Dewar  <dewar@adacore.com>

	* g-comlin.adb: Minor code reorganization
	Minor reformatting

	* g-comlin.ads: Minor reformatting

	* s-fileio.adb: Minor reformatting

	* sem_attr.adb: Minor code reorganization (use Nkind_In)
	Minor reformatting

2008-08-06  Samuel Tardieu  <sam@rfc1149.net>

	* gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing
	with s-oscons-tmplt.i.

2008-08-06  Samuel Tardieu  <sam@rfc1149.net>

	* gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove.

2008-08-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
	of incomplete type.

	* sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
	of a formal parameter of an incomplete type. Improve error message for
	other improper uses of incomplete types.

2008-08-06  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Clarify -gnato documentation

2008-08-06  Thomas Quinot  <quinot@adacore.com>

	* gcc-interface/Makefile.in,
	g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
	g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads,
	g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads,
	g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads,
	g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads,
	g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads,
	g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads,
	g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads,
	g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads:
	Remove GNAT.Sockets.Constants. This internal package is replaced by
	System.OS_Constants.

2008-08-06  Thomas Quinot  <quinot@adacore.com>

	* gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
	Remove obsolete targets referencing gen-soccon
	When generating s-oscons.ads, use a file name that includes the
	THREAD_KIND, to ensure that the (potentially different) version from a
	previous build with a different threads flavour does not get reused.

2008-08-06  Thomas Quinot  <quinot@adacore.com>

	* sem_res.adb: Minor reformatting

	* s-fileio.adb (Open): When file open operation fails, raise Name_Error
	only when the operating system reports a non-existing file or directory
	(ENOENT), otherwise raise Name_Error.

	* exp_ch11.adb: Minor reformatting

2008-08-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
	incomplete, add the access_to_subprogram type to the list of private
	dependents only if the incomplete type will be completed in the current
	scope.
	(Build_Discriminant_Constraints): If the type of the discriminant is
	access_to_variable, reject a constraint that is access_to_constant.

2008-08-06  Thomas Quinot  <quinot@adacore.com>

	* g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb,
	g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads,
	g-sttsne-dummy.ads: New files.

	* gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources
	with pragma Unimplemented_Unit for sockets packages on Nucleus.

2008-08-06  Pascal Obry  <obry@adacore.com>

	* adaint.c: Another fix for ACL support on Windows.

2008-08-06  Javier Miranda  <miranda@adacore.com>

	* exp_disp (Expand_Interface_Actuals): Adds missing support for
	expansion of calls to subprograms using selected components.

2008-08-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Call): Use base type to determine whether a
	dereference is needed because a subtype of an access_to_subprogram is
	simply an access-subtype

2008-08-06  Jerome Lambourg  <lambourg@adacore.com>

	* g-comlin.adb (Set_Command_Line): Now that aliases can contain
	parameters, always specify the expected separator.

2008-08-06  Thomas Quinot  <quinot@adacore.com>

	* xnmake.adb: Use new XUtil package for platform independent text
	output.

2008-08-06  Vincent Celier  <celier@adacore.com>

	* gnat_ugn.texi: Document compiler switch -gnateG

2008-08-06  Quentin Ochem  <ochem@adacore.com>

	* s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
	in the case of an empty pattern size.
	(Compute_Result): Do not do any computation in the case of an empty
	pattern size.
	(Report_Result): Fixed computation of the overflow guard.

2008-08-06  Ed Schonberg  <schonberg@adacore.com>

	* g-awk.adb (Finalize): Do not use directly objects of the type in the
	finalization routine to prevent elaboration order anomalies in new
	finalization scheme.

2008-08-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
	declaration for the same type.

2008-08-06  Thomas Quinot  <quinot@adacore.com>

	* sem.adb: Minor rewording (comment)

2008-08-06  Jerome Lambourg  <lambourg@adacore.com>

	* g-comlin.adb (Define_Switch, Get_Switches): New.
	(Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
	ungrouping switches.
	(For_Each_Simple_Switch): Allow more control over parameters handling.
	This generic method now allows ungrouping of switches with parameters
	and switches with more than one letter after the prefix.
	(Set_Command_Line): Take care of switches that are prefixed with a
	switch handling parameters without delimiter (-gnatya and -gnaty3 for
	example).
	(Add_Switch, Remove_Switch): Handle parameters possibly present inside
	a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
	the operation.
	(Start, Alias_Switches, Group_Switches): Take care of parameters
	possibly present inside a group.

	* g-comlin.ads (Define_Switch): New method used to define a list of
	expected switches, that are necessary for correctly ungrouping switches
	with more that one character after the prefix.
	(Get_Switches): Method that builds a getopt string from the list of
	switches as set previously by Define_Switch.
	(Add_Switch, Remove_Switch): New versions of the methods, reporting the
	status of the operation. Also allow the removal of switches with
	parameters only.
	(Command_Line_Configuration_Record): Maintain a list of expected
	switches.

2008-08-06  Doug Rupp  <rupp@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
	TARGET_MALLOC64 clear.

	* gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
	if TARGET_MALLOC64 clear.

	* gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
	(TARGET_MALLC64): New macro. Default to clear.

2008-08-06  Doug Rupp  <rupp@adacore.com>

	* gcc-interface/utils2.c (snames.h) Include
	(TARGET_ABI_OPEN_VMS): Initialize.
	(build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
	for Convention C.

2008-08-06  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
	null exclusion in a discriminant declaration

	* sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
	indicators when type is not an access type.

	* sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
	indicators when type is not an access type.

2008-08-06  Javier Miranda  <miranda@adacore.com>

	* exp_disp (Expand_Interface_Conversion): Freeze the entity associated
	with the target interface before expanding the code of the interface
	conversion.

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

	* freeze.adb:
	(Freeze_Entity): A deferred constant does not violate the restriction
	No_Default_Initialization,

	* sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
	can carry a null exclusion indicator, and on which an error may be
	posted if the indicator is redundant.

	* sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
	does not apply to a subtype mark that already excludes null.

	* sem_ch12.adb (Formal_Object_Declaration): Verify that a null
	exclusion does not apply to a subtype mark that already excludes null.

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

	* Makefile.rtl: Compile s-oscons.ads as part of the runtime library.

2008-08-05  Doug Rupp  <rupp@adacore.com>

	* vms_data.ads: Translation for /POINTER_SIZE qualifier.

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

	* gsocket.h: Make this file includable in a Nucleus environment, which
	does not support sockets.

	* socket.c: Remove Nucleus-specific hack.

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

	* adaint.c: Remove support for readable attribute on vxworks and nucleus

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

	* sem_attr.adb:
	(Analyze_Attribute, case 'Result): handle properly the case where some
	operand of the expression in a post-condition generates a transient
	block.

	* sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
	right-hand side when it is an anonymous access_to_subprogram, to force
	static accessibility check when needed.

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

	* gnat_ugn.texi: Changing the description of the gnatcheck metrics
	rule according to the change in the rule option.
	Add documentation for -gnatw.b/-gnatw.B

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

	* ug_words: Add entries for -gnatw.b/-gnatw.B

	* vms_data.ads: Add entries for -gnatw.b/-gnatw.B

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

	* a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
	(File).

	* a-ztdeio.adb: Ditto.

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

	* adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the
	readable attribute.

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

	* s-wchwts.adb:
	(Wide_String_To_String): Returns a String with the same 'First as its
	parameter S.
	(Wide_Wide_String_To_String): Ditto

	* s-wchwts.ads:
	(Wide_String_To_String): Document that the lowest index of the returned
	String is equal to S'First.

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

	* xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files.

	* gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate
	s-oscons.ads

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

	* opt.ads (Warn_On_Biased_Representation): New flag

	* sem_ch13.adb:
	(Analyze_Attribute_Definition_Clause): Issue warning when biased
	representation is required.
	(Minimum_Size): Don't allow biasing if enum rep clause case

	* sem_warn.adb:
	(Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
	(Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws

	* usage.adb: Add lines for -gnatw.b/B switches

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

	* a-coinve.adb: Reorder the code to avoid uninitialized warning.

	* adaint.c: In UNIX cases do not call __gnat_stat but stat directly.

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

	* socket.c: Minor reformatting.

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

	* sem_ch3.adb: Minor reformatting

	* prj-nmsc.adb: Minor reformatting

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

	* sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
	visibility check on the component type if the simple test fails.

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

	* init.c (__gnat_install_handler for linux): If we are building the
	Xenomai run time then we need to do two additional things: avoid
	memory swapping and transform the Linux environment task into a native
	Xenomai task.

	* gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run
	time): Use interface to Xenomai native skin and avoid linux-specific
	way of setting CPU affinity.
	(EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.

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

	* checks.ads: Minor comment fix

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

	* g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb,
	g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
	CS8.

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

	* mlib.adb: Minor code reorganization
	Minor reformatting

	* make.adb: Minor reformatting

	* prj-attr.ads: Minor reformatting

	* s-os_lib.adb: Minor reformatting

	* s-fileio.adb: Minor code reorganization
	Minor reformatting

	* prj.ads: Minor reformatting

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

	* sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
	unresolved initial value of "null", because it causes implicitly
	generated "=" operators to be ambiguous, and because this type should
	not be passed to gigi.

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

	* mlib.adb: Update comments.

	* make.adb (Switches_Of): Check for Switches (others), before checking
	for Default_Switches ("Ada").
	(Gnatmake): Use Builder'Switches (others) in preference to
	Builder'Default_Switches ("Ada") if there are several mains.

	* prj-attr-pm.adb:
	(Add_Attribute): Add component Others_Allowed in Attribute_Record
	aggregate.

	* prj-attr.adb:
	Add markers to indicates that attributes Switches allow others as index
	(Others_Allowed_For): New Boolean function, returning True for
	attributes with the mark.
	(Initialize): Recognize optional letter 'O' as the marker for
	associative array attributes where others is allowed as the index.

	* prj-attr.ads:
	(Others_Allowed_For): New Boolean function
	(Attribute_Record): New Boolean component Others_Allowed

	* prj-dect.adb:
	(Parse_Attribute_Declaration): For associative array attribute where
	others is allowed as the index, allow others as an index.

	* prj-nmsc.adb:
	(Process_Binder): Skip associative array attributes with index others
	(Process_Compiler): Ditto

	* prj-util.adb:
	(Value_Of (Index, In_Array)): Make no attempt to put in lower case when
	index is All_Other_Names.

	* prj.ads:
	(All_Other_Names): New constant

	* prj-proc.adb:
	(Process_Declarative_Items): Skip associative array attribute when index
	is reserved word "others".

2008-08-05  Vasiliy Fofanov  <fofanov@adacore.com>

	* gen-oscons.c: Adapt for VMS where termios.h is not available.

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

	* a-rttiev.adb: Minor reformatting (comments)

	* gen-soccon.c: Rename to gen-oscons.c

	* gen-oscons.c: New file. Now generate System.OS_Constants instead of
	GNAT.Sockets.Constants.
	Add new constants for GNAT.Serial_Communications and System.File_IO.

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

	* sem_util.adb (Collect_Interfaces_Info): Minor reformating.
	* exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
	implementation of this routine has been simplified.

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

	* adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the
	Set_Read_Only Win32 implementation.

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

	* exp_strm.adb: Minor reformatting (comments)

	* sem_ch12.adb: Minor reformatting.

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

	* sem_ch3.adb: Minor reformatting

	* checks.adb: Minor reformatting

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

	* tbuild.ads (New_External_Name): Update spec to reflect relaxed
	restriction on Prefix.

2008-08-05  Jerome Lambourg  <lambourg@adacore.com>

	* g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
	methods needed to handle switch sections when building a command line.
	(Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
	Current_Section): New public methods or methods modified to handle
	building command lines with sections.
	(Set_Command_Line): Take into account sections when analysing a switch
	string.
	(Start): Sort the switches by sections before iterating the command line
	elements.

	* g-comlin.ads (Define_Section, Add_Switch, Remove_Switch,
	Is_New_Section, Current_Section): New methods or methods modified to
	handle building command lines with sections.

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

	* exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
	discriminants, indicate that the corresponding object declaration has
	no initialization, to prevent spurious warnings when the access type is
	null-excluding.

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

	* sem_res.adb (Resolve_Call): If this is a call to the predefined
	Abort_Task, warn if the call appears within a protected operation.

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

	* exp_ch4.adb (Expand_N_In): Suppress range warnings in instances

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

	* sem_ch3.adb:
	(Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
	anonymous access to protected subprogram that is the return type of the
	specification of a subprogram body.

	* sem_ch6.adb:
	(Analyze_Subprogram_Body): if the return type is an anonymous access to
	subprogram, freeze it now to prevent access anomalies in the back-end.

	* exp_ch9.adb: Minor code cleanup.
	Make sure that new declarations are inserted into the tree before
	analysis (from code reading).

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

	* exp_ch5.adb:
	(Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
	at point of return.

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

	* sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting

2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>

	* g-soccon-mingw.ads: Fix value for MSG_WAITALL

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

	* sem_prag.adb (Process_Convention): Add missing support for
	 N_Private_Extension_Declaration nodes.

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

	* exp_ch4.adb: Minor reformatting

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

	* adaint.h: Add missing prototype.

	* adaint.c: Refine support for Windows file attributes.

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

	* sem_res.adb:
	(Valid_Conversion): Catch case of designated types having different
	sizes, even though they statically match.

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

	* sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
	added in previous patch to handle access to subprograms.

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

	* freeze.adb:
	(Freeze_Entity): Only check No_Default_Initialization restriction for
	constructs that come from source

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

	* exp_ch6.adb: Minor comment fix.

	* sem_ch4.adb: Minor reformatting.

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

	* sem_res.adb: (Large_Storage_Type): Improve previous change.

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

	* adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
	file attributes.

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

	* sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
	for N_Formal_Object_Declaration nodes. Adding kludge required by
	First_Formal to provide its functionality with access to functions.
	(Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
	for anonymous access types returned by functions.

	* sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
	conversion of null-excluding access types (required only once to force
	the generation of the required runtime check).

	* sem_type.adb (Covers): minor reformating

	* checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
	with internally generated nodes. Avoid generating the error inside init
	procs.

	* sem_res.adb (Resolve_Membership_Test): Minor reformating.
	(Resolve_Null): Generate the null-excluding check in case of assignment
	to a null-excluding object.
	(Valid_Conversion): Add missing support for anonymous access to
	subprograms.

	* sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
	anonymous access types whose designated type is an itype. This case
	occurs with anonymous access to protected subprograms types.
	(Analyze_Return_Type):  Add missing support for anonymous access to
	protected subprogram.

	* sem_eval.adb (Subtypes_Statically_Match): In case of access to
	subprograms addition of missing check on matching convention. Required
	to properly handle access to protected subprogram types.

	* exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
	null excluding access types.

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

	* sem_ch12.adb: Add comments

	* sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
	access type and the allocator is not initialized, warn rather than
	reporting an error.

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

	* exp_ch4.adb: Minor reformatting

	* exp_dist.adb: Minor reformatting

	* g-comlin.adb: Minor reformatting

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

	* exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
	target to the type of the aggregate in the case where the target object
	is class-wide.

	* exp_ch5.adb (Expand_Simple_Function_Return): When the function's
	result type is class-wide and inherently limited, and the expression
	has a specific type, create a return object of the specific type, for
	more efficient handling of returns of build-in-place aggregates (avoids
	conversions of the class-wide return object to the specific type on
	component assignments).

	* sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
	about a type mismatch for a class-wide function with a return object
	having a specific type when the object declaration doesn't come from
	source. Such an object can result from the expansion of a simple return.

2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>

	* g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.

	* gcc-interface/Makefile.in: Use 64bit-specific system files when
	compiling for 64bit windows.

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

	* g-comlin.adb (Group_Switches): Preserve the switch order when
	grouping and allow switch grouping of switches with more than one
	character extension (e.g. gnatw.x).
	(Args_From_Expanded): Remove this now obsolete method.

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

	* exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
	chain at once, to ensure that type is properly decorated for back-end,
	when allocator appears within a loop.

2008-08-04  Kevin Pouget  <pouget@adacore.com>

	* snames.h, snames.adb, snames.ads:
	Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.

	* exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
	Build_To_Any_Call and Build_TypeCode_Call procedures.

	* exp_attr.adb, sem_attr.adb: Add corresponding cases.

	* rtsfind.ads: Add corresponding names.

	* tbuild.adb: Update prefix restrictions to allow '_' character.

2008-08-04  Doug Rupp  <rupp@adacore.com>

	* gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
	* trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
	* utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
	use it.  Calculate pointer range overflow using 64bit types.

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

	* sem_ch3.adb (Access_Definition): A formal object declaration is a
	legal context for an anonymous access to subprogram.

	* sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
	indirect call, report success to the caller to include possible
	interpretation.

	* sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
	check when the type
	of the extended return is an anonymous access_to_subprogram type.

	* sem_res.adb:
	(Resolve_Call): Insert a dereference if the type of the subprogram is an
	access_to_subprogram and the context requires its return type, and a
	dereference has not been introduced previously.

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

	* usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
	gnatcheck support in GPS.

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

	* mlib.adb (Create_Sym_Links): Create relative symbolic links when
	requested

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

	* gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
	variable, but don't check the resulting value as it has no impact on
	the processing.

	* opt.ads:
	(Generate_Processed_File): New Boolean flag, set to True in the compiler
	when switch -gnateG is used.

	* prep.adb:
	(Preprocess): new Boolean out parameter Source_Modified. Set it to True
	when the source is modified by the preprocessor and there is no
	preprocessing errors.

	* prep.ads (Preprocess): new Boolean out parameter Source_Modified

	* sinput-l.adb:
	(Load_File): Output the result of preprocessing if the source text was
	modified.

	* switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG

	* switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG

	* ug_words: Add VMS equivalent for -gnateG

	* vms_data.ads:
	Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG

2008-08-04  Doug Rupp  <rupp@adacore.com>

	* gcc-interface/utils2.c:
	(fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
	in 32bit descriptor.

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

	* par-ch10.adb: Minor reformatting

	* i-cobol.adb: Minor reformatting.

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

	* sem_ch3.adb (Access_Definition): Create an itype reference for an
	anonymous access return type of a regular function that is not a
	compilation unit.

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

	* prj-attr.adb: New Builder attribute Global_Compilation_Switches

	* snames.adb: New standard name Global_Compilation_Switches

	* snames.ads: New standard name Global_Compilation_Switches

	* make.adb: Correct spelling error in comment

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

	* sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
	target.

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

	* sem_ch10.adb: Minor comment fix.

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

	* restrict.adb: Improved messages for restriction warnings

	* restrict.ads: Improved messages for restriction messages

	* s-rident.ads (Profile_Name): Add No_Profile

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

	* system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus

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

	* freeze.adb (Freeze_Entity): Check for size clause for boolean warning

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

	* prj-proc.adb:
	(Copy_Package_Declarations): When inheriting package Naming from a
	project being extended, do not inherit source exception names.

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

	* sem_prag.adb (Check_Precondition_Postcondition): When scanning the
	list of declaration to find previous subprogram, do not go to the
	original node of a generic unit.

2008-08-02  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
	New case.  Convert BOOLEAN_TYPE operation to the default integer type.

2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
	* gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
	and adjust for above renaming.
	* gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
	gnu_expr_alt_type parameter.  Convert the expression to it instead
	of changing its type in place.
	(build_function_stub): Adjust call to above function.

2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
	code.  Do not get full definition of deferred constants with address
	clause for a use.  Do not ignore deferred constant definitions with
	address clause.  Ignore constant definitions already marked with the
	error node.
	<object>: Remove obsolete comment.  For a deferred constant with
	address clause, get the initializer from the full view.
	* gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
	Rework and remove obsolete comment.
	<N_Object_Declaration>: For a deferred constant with address clause,
	mark the full view with the error node.
	* gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
	formatting nits.

2008-08-01  Hristian Kirtchev  <kirtchev@adacore.com>

	* rtsfind.ads: Add block IO versions of stream routines for Strings.

	* bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
	sem_prag.adb, snames.adb, snames.ads, snames.h,
	par-prag.adb: Undo previous stream related changes.

	* s-rident.ads: Add new restriction No_Stream_Optimizations.

	* s-ststop.ads, s-ststop.adb: Comment reformatting.
	Define enumeration type to designate different IO mechanisms.
	Enchance generic package Stream_Ops_Internal to include an
	implementation of Input and Output.

	* exp_attr.adb (Find_Stream_Subprogram): If restriction
	No_Stream_Optimization is active, choose the default byte IO
	implementations of stream attributes for Strings.
	Otherwise use the corresponding block IO version.

2008-08-01  Olivier Hainque  <hainque@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
	turn Ada Pure into GCC const, now implicitely implying nothrow as well.

2008-08-01  Robert Dewar  <dewar@adacore.com>

	* par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
	convert plain identifier into defining identifier.

2008-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
	warnings

	* lib-xref.adb: Add error defense.

2008-08-01  Bob Duff  <duff@adacore.com>

	* ioexcept.ads, sequenio.ads, directio.ads: Correct comment.

2008-08-01  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
	correct accessibility levels. In the "when others" case, retrieve the
	access level of the Etype of Prev rather than Prev_Orig, because the
	original exression has not always been analyzed.

2008-08-01  Robert Dewar  <dewar@adacore.com>

	* prj-nmsc.adb: Minor reformatting

	* sem_ch4.adb: Minor reformatting
	Minor code reorganization

	* prj.ads: Minor reformatting

	* s-os_lib.adb: Minor reformatting

	* par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
	half encodings

	* scans.ads: Minor reformatting.

	* sem_prag.adb (Analyze_Pragma): Put entries in alpha order
	(Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma

	* sem_res.adb:
	(Resolve_Call): Check violation of No_Specific_Termination_Handlers

	* sem_ch12.adb: Minor comment reformatting

	* par-ch3.adb (P_Type_Declaration): Properly handle missing type
	keyword

2008-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
	generating code

2008-08-01  Ed Schonberg  <schonberg@adacore.com>

	* checks.adb (Apply_Float_Conversion_Check): If the expression to be
	converted is a real literal and the target type has static bounds,
	perform the conversion exactly to prevent floating-point anomalies on
	some targets.

2008-08-01  Vincent Celier  <celier@adacore.com>

	* prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)

	* prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax

	* prj.adb (Object_Exist_For): Use Object_Generated, not
	Objects_Generated that is removed and was never modified anyway.

	* prj.ads:
	(Path_Syntax_Kind): New enumeration type
	(Language_Config): New component Path_Syntax, defaulted to Host.
	Components PIC_Option and Objects_Generated removed, as they are not
	used.

	* snames.adb: New standard name Path_Syntax

	* snames.ads: New standard name Path_Syntax

2008-08-01  Vincent Celier  <celier@adacore.com>

	* mlib-utl.adb:
	(Adalib_Path): New variable to store the path of the adalib directory
	when procedure Specify_Adalib_Dir is called.
	(Lib_Directory): If Adalib_Path is not null, return its value
	(Specify_Adalib_Dir): New procedure

	* mlib-utl.ads (Specify_Adalib_Dir): New procedure

2008-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb:
	(Check_Precondition_Postcondition): If not generating code, analyze the
	expression in a postcondition that appears in a subprogram body, so that
	it is properly decorated for ASIS use.

2008-08-01  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
	Orig_Prev to Prev in the case where the actual is N_Function_Call or
	N_Identifier. This was interfering with other cases that are rewritten
	as N_Identifier, such as allocators, resulting in passing of the wrong
	accessibility level, and based on testing this code is apparently no
	longer needed at all.

2008-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
	procedure call whose prefix
	is a parameterless function call that returns an access_to_procedure.

2008-08-01  Jose Ruiz  <ruiz@adacore.com>

	* adaint.c (__gnat_tmp_name): Refine the generation of temporary names
	for RTX. Adding a suffix that is incremented at each iteration.

2008-08-01  Robert Dewar  <dewar@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
	Raise_Exception

2008-08-01  Jerome Lambourg  <lambourg@adacore.com>

	* s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
	paths, which are authorized by Windows but can lead to errors when used
	elsewhere.

2008-08-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
	a pending instantiation for the body of a subprogram that is to be
	inlined.

	* sem_ch12.adb:
	(Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.

	* sem_prag.adb (Make_Inline): If the pragma applies to an instance,
	create a pending instance for its body, so that calls to the subprogram
	can be inlined by the back-end.

2008-08-01  Jose Ruiz  <ruiz@adacore.com>

	* gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
	rts-rtx-w32).

2008-08-01  Robert Dewar  <dewar@adacore.com>

	* scng.adb (Error_Illegal_Wide_Character): Bump scan pointer

2008-08-01  Doug Rupp  <rupp@adacore.com>

	* gnat_rm.texi: Document new mechanism Short_Descriptor.

	* types.ads (Mechanism_Type): Modify range for new Short_Descriptor
	mechanism values.

	* sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
	mechanism and Short_Descriptor mechanism values.

	* snames.adb (preset_names): Add short_descriptor entry.

	* snames.ads: Add Name_Short_Descriptor.

	* types.h: Add new By_Short_Descriptor mechanism values.

	* sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
	mechanism and Short_Descriptor mechanism values.

	* sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
	values.
	(Descriptor_Codes): Modify range for new mechanism values.

	* treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
	mechanism values.

	* gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
	(gnat_to_gnu_param): Handle By_Short_Descriptor.

	* gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
	(build_vms_descriptor32): New prototype.
	(fill_vms_descriptor): Remove unneeded gnat_actual parameter.

	* gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
	argument in call fill_vms_descriptor.

	* gcc-interface/utils.c (build_vms_descriptor32): Renamed from
	build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
	(build_vms_descriptor): Renamed from build_vms_descriptor64.
	(convert_vms_descriptor32): New function.
	(convert_vms_descriptor64): New function.
	(convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
	descriptors.

	* gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
	no longer needed.

2008-08-01  Jose Ruiz  <ruiz@adacore.com>

	* adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
	nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
	name.

2008-08-01  Jose Ruiz  <ruiz@adacore.com>

	* cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
	current directory so only fully qualified names are allowed.

2008-08-01  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi:
	Minor editing, remove uncomfortable use of semicolon

	* s-ststop.adb: Add some ??? comments

	* sem_ch10.adb: Minor reformatting

	* snames.ads:
	Minor comment fixes, some pragmas were not properly
	categorized in the comments, documentation change only

	* xref_lib.adb: Minor reformatting

	* sinput.adb: Minor reformatting

	* gnatchop.adb: Minor reformatting

	* sem_util.ads: Minor reformatting.

	* opt.ads: Minor documentation fix

	* scng.adb: Minor reformatting

	* prj-part.adb: Update comments

2008-08-01  Ed Schonberg  <schonberg@adacore.com>

	* exp_disp.adb (Expand_Interface_Conversion): If the target type is a
	tagged synchronized type, use corresponding record type.

2008-08-01  Doug Rupp  <rupp@adacore.com>

	* mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
	dummy transfer address for debugging.

	* mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.

	* vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING

2008-07-31  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
	* gcc-interface/utils.c (create_field_decl): Avoid superfluous work.

2008-07-31  Pascal Obry  <obry@adacore.com>

	* prj-nmsc.adb: Keep Object and Exec directory casing.

2008-07-31  Jose Ruiz  <ruiz@adacore.com>

	* system-rtx-rtss.ads
	Change the default stack size. It is important to set the commit part.

	* s-taprop-rtx.adb
	(Initialize): Get the clock resolution.
	(RT_Resolution): Return the clock resolution that is indicated by the
	system.

	* s-parame-vxworks.adb
	Document that this body is used for RTX in RTSS (kernel) mode.

	* gcc-interface/Makefile.in
	(LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
	s-parame-vxworks.adb body in order to have reasonable stack sizes in
	RTX RTSS kernel mode. Virtual memory is not used in that case, so we
	cannot ask for too big values.

2008-07-31  Robert Dewar  <dewar@adacore.com>

	* exp_aggr.adb: Minor reformatting

	* makeutl.adb: Minor reformatting

	* prj-env.adb: Minor reformatting

2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
	tagged type is completed by a concurrent type.

2008-07-31  Gary Dismukes  <dismukes@adacore.com>

	* sem_aggr.adb:
	(Resolve_Record_Aggregate): Bypass error that a type without
	components must have a "null record" aggregate when compiling for Ada
	2005, since it's legal to give an aggregate of form (others => <>)
	for such a type.

2008-07-31  Javier Miranda  <miranda@adacore.com>

	* sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
	handle synchronized types. Required to handle well the object.operation
	notation applied to synchronized types.

2008-07-31  Quentin Ochem  <ochem@adacore.com>

	* s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
	anymore - just used internally.
	Added handling of very small tasks - when the theoretical size is
	already full at the point of the call.
	(Report_Result): Fixed result computation, Stack_Used_When_Filling does
	not need to be added to the result.

2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
	corresponding spec is a primitive wrapper. Update comment.

2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>

	* bindgen.adb Comment reformatting. Update the list of run-time globals.
	(Gen_Adainit_Ada): Add the declaration, import and value set for
	configuration flag Canonical_Streams.
	(Gen_Adainit_C): Add the declaration and initial value of external
	symbol __gl_canonical_streams.

	* init.c: Update the list of global values computed by the binder.

	* opt.ads: Add flag Canonical_Streams.

	* par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
	semantically handled pragmas.

	* sem_prag.adb: Add an entry into enumeration type Sig_Flags.
	(Analyze_Pragma): Add case for pragma Canonical_Streams.

	* snames.adb: Add character value for name Canonical_Streams.

	* snames.ads:
	Add Name_Canonical_Streams to the list of configuration pragmas.
	Add Pragma_Canonical_Streams to enumeration type Pragma_Id.

	* snames.h: Add a definition for Pragma_Canonical_Streams.

	* s-ststop.adb:
	Add a flag and import to seize the value of external symbol
	__gl_canonical_streams. Update comment and initial value of constant
	Use_Block_IO.

	* gnat_rm.texi: Add section of pragma Canonical_Streams.

	* gnat_ugn.texi:
	Add pragma Canonical_Streams to the list of configuration pragmas.

2008-07-31  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
	has the form A.B.C and B is a unit renaming, analyze its compilation
	unit and add a with_clause on A.b to the context.

2008-07-31  Vincent Celier  <celier@adacore.com>

	* makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
	return the empty string, instead of raising Constraint_Error.

2008-07-31  Gary Dismukes  <dismukes@adacore.com>

	* checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.

	* checks.adb (Apply_Accessibility_Check): Insert the check on
	Insert_Node.

	* exp_attr.adb:
	(Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
	to new parameter Insert_Node on call to Apply_Accessibility_Check.
	Necessary to distinguish the insertion node because the dereferenced
	formal may come from a rename, but the check must be inserted in
	front of the attribute.

	* exp_ch4.adb:
	(Expand_N_Allocator): Pass actual for new Insert_Node parameter on
	call to Apply_Accessibility_Check.
	(Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
	on call to Apply_Accessibility_Check.
	Minor reformatting

2008-07-31  Javier Miranda  <miranda@adacore.com>

	* sem_type.adb (Has_Compatible_Type): Complete support for synchronized
	types when the candidate type is a synchronized type.

	* sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
	types, and complete management of synchronized types adding missing
	code to handle formal that is a synchronized type.

	* sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
	are not available and cause the compiler to blowup. Found compiling
	test with switch -gnatc

	* sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
	Has_Correct_Formal_Mode plus code cleanup.

2008-07-31  Bob Duff  <duff@adacore.com>

	* sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
	recognized as two end-of-lines, but it should be just one.

2008-07-31  Thomas Quinot  <quinot@adacore.com>

	* exp_ch9.adb: Minor reformatting

	* tbuild.ads: Fix several occurrences of incorrectly referring to
	Name_Find as Find_Name.

2008-07-31  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
	and the context is an object declaration with non-static bounds, treat
	the aggregate as non-static.

2008-07-31  Vincent Celier  <celier@adacore.com>

	* prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
	Move back spec of Parse_Single_Project to body, as it is not called
	outside of package Prj.Part.
	(Project_Data): Remove components Linker_Name, Linker_Path and
	Minimum_Linker_Options as they are no longer set.
	Remove function There_Are_Ada_Sources from package Prj and move code
	in the only place it was used, in Prj.Env.Set_Ada_Paths.

2008-07-31  Arnaud Charlet  <charlet@adacore.com>

	* mlib-utl.ads: Fix typo.

2008-07-31  Robert Dewar  <dewar@adacore.com>

	* sem_ch12.adb: Minor reformatting

2008-07-31  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi: Change the description of the
	Overly_Nested_Control_Structures: now the rule always requires a
	positive parameter for '+R' option

2008-07-31  Thomas Quinot  <quinot@adacore.com>

	* g-pehage.adb: Minor reformatting

2008-07-31  Pascal Obry  <obry@adacore.com>

	* s-finimp.ads: Minor reformatting.

2008-07-31  Vincent Celier  <celier@adacore.com>

	* s-regexp.ads: Minor comment fix

2008-07-31  Arnaud Charlet  <charlet@adacore.com>

	* s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
	so that we can compile this file successfully with -gnatc.

2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
	of the type when looking for stream subprograms for type String,
	Wide_String and Wide_Wide_String.

	* s-ststop.adb: Change the initialization expression of constant
	Use_Block_IO.

2008-07-31  Geert Bosch  <bosch@adacore.com>

	* arit64.c:
	New file implementing __gnat_mulv64 signed integer multiplication with
	overflow checking

	* fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi

	* gcc-interface/gigi.h:
	(standard_types): Add ADT_mulv64_decl
	(mulv64_decl): Define subprogram declaration for __gnat_mulv64

	* gcc-interface/utils.c:
	(init_gigi_decls): Add initialization of mulv64_decl

	* gcc-interface/trans.c:
	(build_unary_op_trapv): New function
	(build_binary_op_trapv): New function
	(gnat_to_gnu): Use the above functions instead of
	build_{unary,binary}_op

	* gcc-interface/Makefile.in
	(LIBGNAT_SRCS): Add arit64.c
	(LIBGNAT_OBJS): Add arit64.o

2008-07-31  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
	Linker'Default_Switches are declared. Warn if they are declared.

2008-07-31  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
	Insert_Actions to place the pointer declaration in the code, rather
	than Insert_Before_And_Analyze, so that insertions of temporaries are
	kept in the proper order when transient scopes are present.


2008-07-31  Robert Dewar  <dewar@adacore.com>

	* einfo.adb (Spec_PPC): Now defined for generic subprograms

	* einfo.ads (Spec_PPC): Now defined for generic subprograms

	* sem_prag.adb (Check_Precondition_Postcondition): Handle generic
	subprogram case

2008-07-31  Vincent Celier  <celier@adacore.com>

	* s-os_lib.adb: Minor comment fix

2008-07-31  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
	transfer pre/postconditions from generic copy to original tree, so that
	they will appear in each instance.
	(Process_PPCs): Do not transform postconditions into a procedure in a
	generic context, to prevent double expansion of check pragmas.

	* sem_attr.adb: In an instance, the prefix of the 'result attribute
	can be the renaming of the
	current instance, so check validity of the name accordingly.

2008-07-31  Robert Dewar  <dewar@adacore.com>

	* mlib-utl.ads: Minor reformatting

2008-07-31  Ed Schonberg  <schonberg@adacore.com>

	sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
	from context. This attribute must be usable in Ada95 mode.
	The attribute can appear in the body of a function marked
	Inline_Always, but in this case the postocondition is not enforced.

	sem_prag.adb (Check_Precondition_Postcondition): within the expansion
	of an inlined call pre- and postconditions are legal

2008-07-31  Vincent Celier  <celier@adacore.com>

	* prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
	were for gprmake only

2008-07-31  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Update -gnatN documentation.

	* gnat_rm.texi: Add note about pre/postcondition
	pragmas not checked in conjunction with front-end inlining.

2008-07-31  Robert Dewar  <dewar@adacore.com>

	* g-pehage.adb, g-pehage.ads: Minor reformatting

2008-07-31  Arnaud Charlet  <charlet@adacore.com>

	* mlib-utl.ads, prj-makr.ads: Add comments.

2008-07-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>

	* gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS)
	[WINDOWS]: Add s-winext.o.

2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/36554
	* back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
	* gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
	Set precision to 1 for subtype of BOOLEAN_TYPE.
	(set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
	(make_type_from_size): Deal with BOOLEAN_TYPE.
	* gcc-interface/misc.c (gnat_print_type): Likewise.
	* gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
	Set boolean_type_node as its translation in the table, as well
	as boolean_false_node for False and boolean_true_node for True.
	* gcc-interface/utils.c (gnat_init_decl_processing): Create custom
	8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
	(create_param_decl): Deal with BOOLEAN_TYPE.
	(build_vms_descriptor): Likewise.
	(build_vms_descriptor64): Likewise.
	(convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.

2008-07-30  Robert Dewar  <dewar@adacore.com>

	* exp_ch9.adb: Minor reformatting

	* exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
	if no primitive operation is found.

	* exp_util.adb: (Find_Prim_Op): Add comments for previous change

	* sem_ch8.adb: Minor reformatting

2008-07-30  Laurent Pautet  <pautet@adacore.com>

	* g-pehage.adb:
	Remove a limitation on the length of the words handled by the minimal
	perfect hash function generator.

	* g-pehage.ads:
	Detail the use of subprograms Insert, Initialize, Compute and Finalize.
	Fix some typos.

2008-07-30  Robert Dewar  <dewar@adacore.com>

	* gnatlink.adb: Minor reformatting

2008-07-30  Thomas Quinot  <quinot@adacore.com>

	* rtsfind.adb (Check_RPC): Check version consistency even when not
	generating RCI stubs. Provide more detailed error message in case of
	mismatch.

2008-07-30  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
	as a actual in an instance, check for a missing attribute to prevent
	program_error on an illegal program.

	* exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
	error if primitive is not found, so that exception can be handled
	elsewhere on illegal programs.

2008-07-30  Robert Dewar  <dewar@adacore.com>

	* uintp.adb (UI_GCD): Fix potential overflow

2008-07-30  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb: Flag245 is now used.
	(Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
	check to include functions.
	(Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
	(Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
	include functions.
	(Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
	to the list of displayed flags.

	* einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
	Wrapped_Entity. These two flags are now present in functions.
	New flag Is_Private_Primitive.
	(Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.

	* exp_ch9.adb:
	(Build_Wrapper_Bodies): New subprogram.
	(Build_Wrapper_Body): The spec and body have been moved to in
	Build_Wrapper_ Bodies. Code cleanup.
	(Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
	Wrappers are now generated for primitives declared between the private
	and full view of a concurrent type that implements an interface.
	(Build_Wrapper_Specs): New subprogram.
	(Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
	creation mechanism with a call to Build_Wrapper_Bodies.
	(Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
	wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
	(Expand_N_Task_Body): Replace the wrapper body creation
	mechanism with a call to Build_Wrapper_Bodies.
	(Expand_N_Task_Type_Declaration): Replace the wrapper spec
	creation mechanism with a call to Build_Wrapper_Specs.
	(Is_Private_Primitive_Subprogram): New subprogram.
	(Overriding_Possible): Code cleanup.
	(Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.

	* exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.

	* sem_ch3.adb: Add with and use clause for Exp_Ch9.
	(Process_Full_View): Build wrapper specs for all primitives
	that belong to a private view completed by a concurrent type
	implementing an interface.

	* sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
	is a primitive of a
	concurrent type with a private view that implements an interface, try to
	find the proper spec.
	(Analyze_Subprogram_Declaration): Mark a subprogram as a private
	primitive if the type of its first parameter is a non-generic tagged
	private type.
	(Analyze_Subprogram_Specification): Code reformatting.
	(Disambiguate_Spec): New routine.
	(Find_Corresponding_Spec): Add a flag to controll the output of errors.
	(Is_Private_Concurrent_Primitive): New routine.

	* sem_ch6.ads:
	(Find_Corresponding_Spec): Add a formal to control the output of errors.

2008-07-30  Doug Rupp  <rupp@adacore.com>

	* gigi.h (build_vms_descriptor64): New function prototype.
	(fill_vms_descriptor): Modified function prototype.

	* utils.c (build_vms_descriptor64): New function.

	* utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.

	* trans.c (call_to_gnu): Call fill_vms_descriptor with new third
	argument.

	* decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
	64bit and 32bit descriptor and save the 64bit version as an alternate
	TREE_TYPE in the parameter.
	(make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
	thin pointer.

	* ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.

2008-07-30  Robert Dewar  <dewar@adacore.com>

	* make.adb: Minor reformatting

	* mlib-utl.adb: Minor reformatting

	* osint.ads: Minor reformatting

2008-07-30  Jose Ruiz  <ruiz@adacore.com>

	* adaint.c
	(__gnat_file_exists): Do not use __gnat_stat for RTX.
	(__main for RTX in RTSS mode): Create this dummy procedure symbol to
	avoid the use of this symbol from libgcc.a in RTX kernel mode.

	* cio.c
	(put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
	the function RtPrintf for console output.

	* argv.c Do not use the environ variable for RTX.

	* gnatlink.adb (gnatlink): The part that handles the --RTS option has
	been moved before the call to Osint.Add_Default_Search_Dirs in order
	to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
	from the appropriate run time.

	* targparm.ads
	(RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
	target is a RTSS module for RTX.

	* targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
	RTX_RTSS_Kernel_Module
	(Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.

	* gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
	exception handling mechanism for Windows and RTX in Win32 mode, but
	not for RTX in kernel mode (RTSS).
	(LIBGNAT_SRCS): Remove ada.h

2008-07-30  Paolo Bonzini  <bonzini@gnu.org>

	* gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
	T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
	(ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
	* gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
	X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
	ALL_ADA_CFLAGS): Remove.
	(ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
	replace ALL_ADA_CFLAGS with ADA_CFLAGS.
	(GCC_CFLAGS): Remove X_CFLAGS.
	(LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
	(ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
	(ADA_CFLAGS): Substitute.

2008-07-30  Laurent Guerby  <laurent@guerby.net>

	PR ada/5911
	* gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
	Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
	Replace stamp-gnatlib* by stamp-gnatlib*-rts.
	* gcc-interface/Make-lang.in: Replace stamp-gnatlib2
	by stamp-gnatlib2-rts.

2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR documentation/15479
	* gnat-style.texi: Remove AdaCore copyright statement and GPL
	statement for GNAT.  Add @copying stanza, use it.  Update to
	GFDL 1.2.  Do not list GFDL as Invariant Section, do not list
	title as Front-Cover Text.
	* gnat_rm.texi: Likewise.
	* gnat_ugn.texi: Likewise.

2008-07-29  Jan Hubicka  <jh@suse.cz>

	* trans.c (process_inlined_subprograms): Remove tree_really_inline
	check.

2008-07-29  Arnaud Charlet  <charlet@adacore.com>

	* gcc-interface: New directory.

	* ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
	utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
	config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
	to gcc-interface subdirectory.

2008-07-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>

	* Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.

2008-07-28  Jan Hubicka  <jh@suse.cz>

	* misc.c (gnat_post_options): Do not set flag_no_inline.

2008-07-28  Richard Guenther  <rguenther@suse.de>

	Merge from gimple-tuples-branch.

	2008-07-22  Olivier Hainque  <hainque@adacore.com>

	* gigi.h (end_subprog_body): New ELAB_P argument, saying if
	this is called for an elab proc to be discarded if empty.
	* utils.c (end_subprog_body): Honor ELAB_P.
	(build_function_stub): Adjust call to end_subprog_body.
	* trans.c (Subprogram_Body_to_gnu): Likewise.
	(gigi): Reorganize processing of elab procs to prevent
	gimplifying twice, using the new end_subprog_body argument.

	2008-07-19  Richard Guenther  <rguenther@suse.de>

	* Make-lang.in (trans.o): Add tree-iterator.h dependency.
	(utils.o): Likewise.
	* trans.c: Include tree-iterator.h.
	(gnat_gimplify_expr): Adjust prototype.  Fix typo.
	(gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
	(set_expr_location_from_node): Likewise.
	(gigi): Tuplify.
	* ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
	of GENERIC_NEXT.
	* utils.c: Include tree-iterator.h.
	* gigi.h (gnat_gimplify_expr): Adjust prototype.

	2008-07-18  Aldy Hernandez  <aldyh@redhat.com>

	* trans.c: Include gimple.h instead of tree-gimple.h.
	* utils.c: Same.

	2008-07-14  Aldy Hernandez  <aldyh@redhat.com>

	* trans.c (gnat_gimplify_expr): Use gimplify_assign.

2008-07-25  Jan Hubicka  <jh@suse.cz>

	* utils.c (end_subprog_body): Remove inline trees check.
	* misc.c (gnat_post_options): Do not set flag_inline_trees.

2008-07-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* raise-gcc.c: Move tsystem.h before tm.h.

2008-07-20  Arnaud Charlet  <charlet@adacore.com>

	* gnathtml.pl: New file.

2008-07-19  Olivier Hainque  <hainque@adacore.com>

	* targtyps.c (get_target_default_allocator_alignment): Use
	MALLOC_ABI_ALIGNMENT.

2008-07-17  Olivier Hainque  <hainque@adacore.com>

	* adaint.c (__MINGW32__ section): Include ctype.h and define
	a fallback ISALPHA if IN_RTS.
	(__gnat_is_absolute_path): Use ISALPHA instead of isalpha.

2008-07-17  Olivier Hainque  <hainque@adacore.com>

	* utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
	argument, to apply to references in addition to definitions.  Prevent
	setting TREE_STATIC on externals.
	(gnat_pushdecl): Always clear DECL_CONTEXT on public externals.

2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR documentation/15479
	* gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
	Replace backets around optional parameters with @ovar
	where possible, use @r{[}, @r{]} otherwise.
	Replace some @r, @i, and @emph with @var where appropriate.

2008-07-02  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.

2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
	-Wc++-compat warnings.
	* adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
	__gnat_locate_exec_on_path): Likewise.
	* decl.c (annotate_value): Likewise.
	* misc.c (gnat_handle_option): Likewise.
	* trans.c (gnat_to_gnu, extract_encoding, decode_name,
	post_error_ne_tree): Likewise.

2008-06-27  Eric Botcazou  <ebotcazou@adacore.com>

	* utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
	version of its type, attempt to first convert its elements.

2008-06-26  Chris Proctor  <chrisp_42@bigpond.com>

	* Makefile.in: Fix *86 kfreebsd target specific pairs.

2008-06-25  Samuel Tardieu  <sam@rfc1149.net>

	* Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.

2008-06-24  Eric Botcazou  <ebotcazou@adacore.com>

	* utils2.c (known_alignment): Derive the alignment from pointed-to
	types only if it is otherwise unknown.
	<INTEGER_CST>: Tidy.
	<MULT_EXPR>: Likewise.
	<POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
	that of the base.

2008-06-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR ada/36573
	* s-osinte-hpux-dce.ads (SA_ONSTACK): Define.

2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* gnat_rm.texi (Implementation Defined Characteristics)
	(Standard Library Routines): Use @smallexample for indented
	text.  Drop Indentation outside examples.
	* gnat_ugn.texi: Likewise.

2008-06-13  Olivier Hainque  <hainque@adacore.com>

	* decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
	if undefined.
	(gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
	realignment with force_align_arg_pointer attribute on foreign
	convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.

2008-06-13  Olivier Hainque  <hainque@adacore.com>

	* utils.c (rest_of_record_type_compilation): When computing
	encodings for the components of a variable size type, early
	strip conversions on the current position expression to make
	sure it's shape is visible.  Use remove_conversions for this
	purpose.

2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
	constrained subtype of a discriminated type, discard the fields that
	are beyond its limits according to its size.

2008-06-10  Olivier Hainque  <hainque@adacore.com>

	* utils.c (create_subprog_decl): If this is for the 'main' entry
	point according to the asm name, redirect main_identifier_node.

2008-06-09  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (components_to_record): Adjust the packedness for the
	qualified union as well.

2008-06-09  Arnaud Charlet  <charlet@adacore.com>

	* Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
	checks non fatal.

2008-06-07  Samuel Tardieu  <sam@rfc1149.net>

	* sem_res.adb (Large_Storage_Type): A type is large if it
	requires as many bits as Positive to store its values and its
	bounds are known at compile time.
	* sem_ch13.adb (Minimum_Size): Note that this function returns
	0 if the size is not known at compile time.

2008-06-06  Nicolas Setton  <setton@adacore.com>
	    Olivier Hainque  <hainque@adacore.com>

	* ada-tree.h (DECL_PARALLEL_TYPE): New language specific
	attribute, parallel descriptive type attached to another
	type for debug info generation purposes.
	* utils.c (add_parallel_type): New function, register
	parallel type to be attached to a type.
	(get_parallel_type): New function, fetch a registered
	parallel type, if any.
	(rest_of_record_type_compilation): Register the parallel
	type we	make for variable size records.
	* gigi.h (add_parallel_type, get_parallel_type): Declare.
	* decl.c (gnat_to_gnu_entity, maybe_pad_type): Register	the
	parallel debug types we make.
	* trans.c (extract_encoding, decode_name): New functions.
	(gigi): If the DWARF attribute extensions are available, setup
	to use them.
	* lang.opt: Register language specific processing request
	for -gdwarf+.
	* misc.c (gnat_dwarf_extensions): New global variable. How much
	do we want of our DWARF extensions. 0 by default.
	(gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
	(gnat_post_options): Map gnat_dwarf_extensions to the
	commonuse_gnu_debug_info_extensions for later processing.

2008-06-04  Samuel Tardieu  <sam@rfc1149.net>

	* einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.

2008-06-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Makefile.in (common_tools): Fix typos in $(exeext) extension.
	* gnat_ugn.texi (Style Checking)
	(Adding the Results of Compiler Checks to gnatcheck Output)
	(Example of Binder Output File): Fix typos.
	* ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
	exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
	s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
	s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
	sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
	sinfo.ads, utils.c: Fix typos in comments.
	* sem_ch6.adb, vms_data.ads: Fix typos in strings.

2008-05-29  Thomas Quinot  <quinot@adacore.com>

	* sem_eval.adb: Minor reformatting

2008-05-29  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
	is abstract, do not apply abstractness check on subprogram if this is
	a renaming declaration.

2008-05-29  Arnaud Charlet  <charlet@adacore.com>

	PR ada/864
	* osint.ads, osint.adb (Program_Name): New parameter "Prog" to
	allow recognition of program suffix in addition to prefix.

	* gnatchop.adb (Locate_Executable): Add support for prefix.

	* make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
	mlib-utl.adb: Adjust calls to Program_Name.

2008-05-29  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb: Minor reformatting
	* sem_prag.adb: Minor reformatting
	* sem_res.adb: Minor reformatting
	* sinput-p.ads: Minor reformatting

2008-05-29  Javier Miranda  <miranda@adacore.com>

	* sem_util.adb:
	(Abstract_Interface_List): Add missing support for full type-declaration
	associated with synchronized types.

2008-05-29  Robert Dewar  <dewar@adacore.com>

	* sem_eval.adb (Is_Same_Value): Take care of several more cases

2008-05-28  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
	access type, wrap the expression in a conversion to force an
	accessibility check.

	* sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
	accessibility checks even when expansion is disabled in order to
	generate messages in the presence of previous errors or in
	semantics-only mode.

2008-05-28  Eric Botcazou  <ebotcazou@adacore.com>

	* system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
	* system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.

2008-05-28  Vincent Celier  <celier@adacore.com>

	PR ada/34446
	* gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
	preprocessing expressions

2008-05-28  Vincent Celier  <celier@adacore.com>

	* sinput-p.adb (Source_File_Is_Subunit): Allow special character used
	for preprocessing

	* sinput-p.ads: Minor comment update and reformatting

2008-05-28  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
	type has a deeper level than any master only when it is the type of an
	access parameter.

2008-05-28  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.

2008-05-28  Javier Miranda  <miranda@adacore.com>

	* sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
	* sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
	* sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
	Add code that was previously located in
	Find_Overridden_Synchronized_Primitive because it is only used here.

2008-05-28  Sergey Rybin  <rybin@adacore.com>

	* sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
	Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.

2008-05-28  Robert Dewar  <dewar@adacore.com>

	* restrict.ads:
	Add missing restrictions, and properly label all GNAT defined ones

	* rtsfind.ads:
	Add entry for Ada_Real_Time.Timing_Events.Timing_Event
	Add entry for Ada.Task_Termination.Set_Specific_Handler
	Add entry for Ada.Task_Termination.Specific_Handler

	* s-rident.ads:
	Add missing restrictions and properly mark all gnat defined ones

	* sem_ch3.adb:
	(Analyze_Object_Declaration): Check No_Local_Timing_Events restriction

	* sem_res.adb:
	(Resolve_Call): Check violation of No_Specific_Termination_Handlers

	* gnat_rm.texi: Add missing restrictions, and properly label all
	GNAT defined ones

2008-05-28  Robert Dewar  <dewar@adacore.com>

	* restrict.adb:
	(Check_Restriction): violation of restriction No_Finalization is
	treated as a serious error to stop expansion

2008-05-28  Robert Dewar  <dewar@adacore.com>

	* exp_util.adb: Minor reformatting
	* exp_util.ads: Minor reformatting.

2008-05-28  Arnaud Charlet  <charlet@adacore.com>

	* Make-lang.in: Remove gprmake.

	* gprmake.adb, makegpr.ads, makegpr.adb: Removed.

2008-05-28  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
	improper progenitor names, and avoid cascaded errors.

2008-05-28  Robert Dewar  <dewar@adacore.com>

	* gnat_rm.texi: Add note on Old giving warning when applied to constant

	* sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
	a constant

2008-05-28  Robert Dewar  <dewar@adacore.com>

	* exp_fixd.adb (Build_Multiply): Correct one-off error in computing
	size

2008-05-28  Robert Dewar  <dewar@adacore.com>

	* exp_ch5.adb:
	(Expand_Simple_Function_Return): Copy unaligned result into temporary

2008-05-28  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
	for user-defined predefined primitives.

	* sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
	(Find_Overridden_Synchronized_Primitive): Ditto.

	* sem_ch6.adb (Check_Synchronized_Overriding): Ditto.

2008-05-27  Arnaud Charlet  <charlet@adacore.com>

	* a-ststio.adb, s-direio.adb:
	Further code clean up of previous change.
	Update comments.

2008-05-27  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb: Minor reformatting

2008-05-27  Bob Duff  <duff@adacore.com>

	* sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
	untagged private type with a tagged full type, where the full type has
	a self reference, create the corresponding class-wide type early, in
	case the self reference is "access T'Class".

2008-05-27  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
	tasks and context is an object declaration. create master entity before
	expansion.

2008-05-27  Robert Dewar  <dewar@adacore.com>

	* mlib-prj.adb: Minor reformatting

	* prj-part.adb: Minor reformatting

	* prj.ads: Minor reformatting

	* exp_ch3.adb: Minor reformatting.

	* sem_ch3.ads: Minor reformatting

	* sem_eval.adb: Minor reformatting

2008-05-27  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb:
	<prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack

2008-05-27  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
	tasks, create an activation chain now, before the expansion into
	assignments and build-in-place calls that require the presence of an
	activation chain.
	(Backend_Processing_Possible): If the component type is inherently
	limited, the aggregate must be expanded into individual built-in-place
	assignments.

	* sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
	determine whether an allocation extra parameter must be built, to
	handle case of a private type whose full type is a discriminated type
	with defaults.

2008-05-27  Bob Duff  <duff@adacore.com>

	* gnat_rm.texi:
	Document the new behavior regarding trampolines.

2008-05-27  Arnaud Charlet  <charlet@adacore.com>

	* a-direio.adb, a-sequio.adb: Replace address clause by
	unrestricted_access, simpler and compatible with .NET.

2008-05-27  Vincent Celier  <celier@adacore.com>

	* prj-part.adb:
	(Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
	a project file, so that symbolic links are not resolved.

2008-05-27  Arnaud Charlet  <charlet@adacore.com>

	* a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
	Replace heavy address clause by 'Unrestricted_Access, cleaner and more
	portable across GNAT targets, since this kind of address clause is not
	supported by VM back-ends (.NET/JGNAT).

2008-05-27  Arnaud Charlet  <charlet@adacore.com>

	* bindgen.adb: Update comments.

	* s-tasinf-mingw.adb: Add "with" of System.OS_Interface

2008-05-27  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
	prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
	mlib-tgt.adb, prj-env.adb, prj-env.ads:
	(Path_Information): New record type
	Use component of type Path_Information when there are two paths, one in
	canonical format and one in display format.
	Update the project manager to these new components.

2008-05-27  Robert Dewar  <dewar@adacore.com>

	* makeutl.adb: Minor reformatting
	* prj-nmsc.adb: Minor reformatting
	* s-stausa.adb: Minor reformatting
	* s-stausa.ads: Minor reformatting
	* sem_ch6.adb: Minor reformatting

2008-05-27  Thomas Quinot  <quinot@adacore.com>

	* sem_res.adb: Minor comment fixes

2008-05-27  Thomas Quinot  <quinot@adacore.com>

	* makeutl.adb: Minor code reorganization

	* exp_aggr.adb: Add ??? comment
	Fix typo

	* exp_ch6.adb: Minor reformatting

2008-05-27  Quentin Ochem  <ochem@adacore.com>

	* s-stausa.adb (Initialize): Updated result initialization, and
	initialization of environment stack.
	(Fill_Stack): Improved computation of the pattern zone, taking into
	account already filled at the calling point.
	(Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
	Measure and Overflow_Guard.
	(Report_Result): Fixed computation of the result using new fields of
	Stack_Analyzer.

	* s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
	params by more explicit Stack_Size / Max_Pattern_Size params.
	(Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
	Added Stack_Used_When_Filling field.
	(Task_Result): Replaced Measure / Overflow_Guard by more explicit
	Min_Measure and Max_Measure fields.

	* s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.

2008-05-27  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb:
	(Check_File): Make sure that a unit that replaces the same unit in a
	 project being extended is properly processed.

2008-05-27  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb:
	(Get_Discr_Value): Remove obsolete code that failed to find the value
	of a discriminant for an inherited task component appearing in a type
	extension.

2008-05-27  Thomas Quinot  <quinot@adacore.com>

	(System.File_IO.{Close, Delete, Reset}):
	Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".

	(Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
	Pass File parameter by reference.

2008-05-27  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb:
	(Process_Sources_In_Multi_Language_Mode): Check that there are not two
	sources of the same project that have the same object file name.
	(Find_Explicit_Sources): Always remove a source exception that was not
	found.

2008-05-27  Thomas Quinot  <quinot@adacore.com>

	* sem_ch3.adb: Minor reformatting

2008-05-27  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb:
	(Is_Interface_Conformant): Handle properly a primitive operation that
	overrides an interface function with a controlling access result.
	(Type_Conformance): If Skip_Controlling_Formals is true, when matching
	inherited and overriding operations, omit as well the conformance check
	on result types, to prevent spurious errors.

2008-05-27  Vincent Celier  <celier@adacore.com>

	* makeutl.ads, makeutl.adb:
	(Set_Location): New procedure
	(Get_Location): New function
	(Update_Main): New procedure

2008-05-27  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb:
	(Check_Library): Allow standard project to be extended as a static
	library project.
	(Get_Mains): Do not inherit attribute Main in an extending library
	project.

2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>

	* system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
	* system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
	* system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
	* system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
	* system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
	* system-linux-x86.ads (Always_Compatible_Rep): Likewise.
	* system-mingw.ads (Always_Compatible_Rep): Likewise.
	* system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
	* system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
	* system-solaris-x86.ads (Always_Compatible_Rep): Likewise.

2008-05-27  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb: add guard to previous patch.

2008-05-27  Ed Schonberg  <schonberg@adacore.com>

	* exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
	a synchronized tagged type, do not attempt to build dispatch table for
	full view. The table is built for the corresponding record type, which
	has its own declaration.

2008-05-27  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
	to the known type entity E, rather than setting it to Any_Type. Fixes
	possible blowup in function Base_Init_Proc, as called from Freeze_Entity
	for objects whose type had an illegal constraint.

2008-05-27  Vincent Celier  <celier@adacore.com>

	* gnat_ugn.texi:
	Add succinct documentation for attribute Excluded_Source_List_File

2008-05-27  Vincent Celier  <celier@adacore.com>

	* prj-attr.adb: Add new project level attribute Map_File_Option

	* prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option

	* prj.ads: Minor reformatting and comment update
	(Project_Configuration): New component Map_File_Option

	* snames.adb: New standard name Map_File_Option

	* snames.ads: New standard name Map_File_Option

2008-05-27  Vincent Celier  <celier@adacore.com>

	* xsnames.adb: Remove unused variable Oname

2008-05-27  Doug Rupp  <rupp@adacore.com>

	* exp_ch6.adb:
	(Expand_N_Function_Call): Fix comments. Minor reformatting.

	* exp_vfpt.ads:
	(Expand_Vax_Foreign_Return): Fix comments.

2008-05-27  Thomas Quinot  <quinot@adacore.com>

	* exp_dist.adb: Minor reformating

2008-05-26  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
	No_Default_Initialization, which is now delayed until the freeze point
	of the object. Add a comment about deferral of the check.

	* freeze.adb (Freeze_Entity): The check for No_Default_Initialization
	on objects is moved here.

2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>

	* s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
	(Compare_Array_S16): Adjust for above change.
	* s-casi32.adb (Uword): Likewise.
	(Compare_Array_S32): Likewise.
	* s-casi64.adb (Uword): Likewise.
	(Compare_Array_S64): Likewise.
	* s-caun16.adb (Uhalf): Likewise.
	(Compare_Array_U16): Likewise.
	* s-caun32.adb (Uword): Likewise.
	(Compare_Array_U32): Likewise.
	* s-caun64.adb (Uword): Likewise.
	(Compare_Array_U64): Likewise.

2008-05-26  Robert Dewar  <dewar@adacore.com>

	* exp_ch6.adb: Add ??? comment for previous change

	* exp_vfpt.adb: Minor reformatting

	* exp_vfpt.ads: Add ??? comment for last change

	* sem_attr.adb: Add some ??? comments for previous change

	* s-vaflop.ads: Add comments for previous change

2008-05-26  Doug Rupp  <rupp@adacore.com>

	* s-vaflop-vms-alpha.adb:
	Remove System.IO use clause, to prevent spurious ambiguities when
	package is access through rtsfind.

2008-05-26  Sergey Rybin  <rybin@adacore.com>

	* tree_io.ads (ASIS_Version_Number): Update because of the changes
	made in front-end

2008-05-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb:
	(Resolve_Attribute, case 'address):  S (A .. B)' address can be safely
	converted to S (A)'address only if A .. B is known to be a non-null
	range.

2008-05-26  Doug Rupp  <rupp@adacore.com>

	* s-vaflop.adb:
	(Return_D, Return_F, Return_G): New functions.

	* s-vaflop.ads:
	(Return_D, Return_F, Return_G): New functions.

	* exp_vfpt.adb:
	(Expand_Vax_Foreign_Return): New procedure

	* exp_vfpt.ads:
	(Expand_Vax_Foreign_Return): New procedure

	* rtsfind.ads:
	(RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
	(RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements

	* exp_ch6.adb:
	Import Exp_Vfpt
	(Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.

	* s-vaflop-vms-alpha.adb:
	(Return_D, Return_F, Return_G): New functions.

2008-05-26  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
	init proc entity when there is actual default initialization associated
	with the component type, to avoid spurious errors on objects of scalar
	array types that are marked Is_Public when No_Default_Initialization
	applies.

2008-05-26  Thomas Quinot  <quinot@adacore.com>

	* rtsfind.ads, rtsfind.adb:
	(RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
	(Check_RPC): Support per-PCS-kind API versioning.

	exp_dist.ads, exp_dist.adb:
	(Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
	(PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
	 library function Get_RACW.
	(PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
	library function Get_Reference.
	(PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
	through an intermediate Any.
	(PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
	going through an intermediate Any.

	* sem_dist.adb: Minor reformatting.

2008-05-26  Javier Miranda  <miranda@adacore.com>

	* einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
	(Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
	(Is_Internal): Adding documentation on internal entities that have
 	attribute Interface_Alias (old attribute Abstract_Interface_Alias)

	* einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
	(Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
 	Added assertion to force entities with this attribute to have
 	attribute Is_Internal set to True.
	(Next_Tag_Component): Simplify assertion using attribute Is_Tag.

	* sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
 	renamed as Derive_Progenitor_Subprograms. In addition, its code is
 	a new implementation.
	(Add_Interface_Tag_Components): Remove special management of
	synchronized interfaces.
	(Analyze_Interface_Declaration): Minor reformating
	(Build_Derived_Record_Type): Minor reformating
	(Check_Abstract_Overriding): Avoid reporting error in case of abstract
 	predefined primitive inherited from interface type because the body of
 	internally generated predefined primitives of tagged types are generated
 	later by Freeze_Type
	(Derive_Subprogram): Avoid generating an internal name if the parent
 	subprogram overrides an interface primitive.
	(Derive_Subprograms): New implementation that keeps separate the
 	management of tagged types not implementing interfaces, from tagged
 	types that implement interfaces.
	(Is_Progenitor): New implementation.
	(Process_Full_View): Add documentation
	(Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
 	by call to Derive_Progenitor_Subprograms.

	* sem_ch6.ads (Is_Interface_Conformant): New subprogram.
	(Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
 	Skip_Controlling_Formals.

	* sem_ch6.adb (Is_Interface_Conformant): New subprogram.
	(Check_Conventions): New implementation. Remove local subprogram
 	Skip_Check. Remove formal Search_From of routine Check_Convention.
	(Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
 	Skip_Controlling_Formals.
	(New_Overloaded_Entity): Enable addition of predefined dispatching
 	operations.

	* sem_disp.ads
	(Find_Primitive_Covering_Interface): New subprogram.

	* sem_disp.adb (Check_Dispatching_Operation): Disable registering
 	the task body procedure as a primitive of the corresponding tagged
 	type.
	(Check_Operation_From_Private_Type): Avoid adding twice an entity
 	to the list of primitives.
	(Find_Primitive_Covering_Interface): New subprogram.
	(Override_Dispatching_Operation): Add documentation.

	* sem_type.adb (Covers): Minor reformatings

	* sem_util.ads (Collect_Abstract_Interfaces): Renamed as
	Collect_Interfaces.
 	Rename formal.
	(Has_Abstract_Interfaces): Renamed as Has_Interfaces.
	(Implements_Interface): New subprogram.
	(Is_Parent): Removed.
	(Primitive_Names_Match): New subprogram.
	(Remove_Homonym): Moved here from Derive_Interface_Subprograms.
	(Ultimate_Alias): New subprogram.

	* sem_util.adb (Collect_Abstract_Interfaces): Renamed as
	Collect_Interfaces.
 	Remove special management for synchronized types. Rename formal. Remove
 	internal subprograms Interface_Present_In_Parent and Add_Interface.
	(Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
 	on non-record types by code to return false in such case.
	(Implements_Interface): New subprogram.
	(Is_Parent): Removed. No special management is now required for
 	synchronized types covering interfaces.
	(Primitive_Names_Match): New subprogram.
	(Remove_Homonym): Moved here from Derive_Interface_Subprograms.
	(Ultimate_Alias): New subprogram.

	* exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
 	Add internal entities associated with secondary dispatch tables to
 	the list of tagged type primitives that are not interfaces.
	(Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
	(Make_Predefined_Primitive_Specs): Code reorganization to improve
 	the management of predefined equality operator. In addition, if
 	the type has an equality function corresponding with a primitive
 	defined in an interface type, the inherited equality is abstract
 	as well, and no body can be created for it.

	* exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
 	exp_util to exp_disp.
	(Is_Predefined_Interface_Primitive): New subprogram. Returns True if
 	an entity corresponds with one of the predefined primitives required
 	to implement interfaces.
	Update copyright notice.

	* exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
 	final check on abstract subprograms all the primitives associated with
 	interface primitives because they must be visible in the public and
 	private part.
	(Write_DT): Use Find_Dispatching_Type to locate the name of the
	interface type. This allows the use of this routine, for debugging
	purposes, when the tagged type is not fully decorated.
	(Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
 	Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
	(Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
 	entity corresponds with one of the predefined primitives required to
 	implement interfaces.

	* exp_util.adb (Find_Interface_ADT): New implementation
	(Find_Interface): Removed.

	* sprint.adb (Sprint_Node_Actual): Generate missing output for the
 	list of interfaces associated with nodes
	N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.

2008-05-26  Thomas Quinot  <quinot@adacore.com>

	* exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
	condition for assignment to temporary.

2008-05-26  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
	checks on the upper bound if the index type is a modular type, to
	prevent wrap-around computations when size is close to upper bound of
	type.

2008-05-26  Robert Dewar  <dewar@adacore.com>

	* sem_ch3.adb: Minor reformatting

2008-05-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Remove_Parent): Use specification of instance
	to retrieve generic parent,
	to handle properly the case where the instance is a child unit.
	Add guard to handle properly wrapper packages.
	Minor reformatting

2008-05-26  Thomas Quinot  <quinot@adacore.com>

	* sinfo.ads: Minor reformatting

2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
	Generate a tag check when the result subtype of a function, defined by
	an access definition, designates a specific tagged type.
	(Make_Tag_Check): New routine.

2008-05-26  Arnaud Charlet  <charlet@adacore.com>

	* ceinfo.adb, csinfo.adb: Remove warnings. Update headers.

2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>

	* gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
	(builtin_decl_for): Likewise.
	* trans.c (gigi): Likewise.
	* utils.c (def_builtin_1): Fix formatting.

2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
	Create the statements which map a string name to protected or task
	entry indix.

	* exp_ch9.adb: Add with and use clause for Stringt.
	Minor code reformatting.
	(Build_Entry_Names): New routine.
	(Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
	for flag Build_Entry_Names which controls the allocation of the data
	structure for the string names of entries.

	* exp_ch9.ads (Build_Entry_Names): New subprogram.

	* exp_util.adb (Entry_Names_OK): New function.

	* exp_util.ads (Entry_Names_OK): New function.

	* rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
	enumerations RE_Id and RE_Unit_Table.

	* s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
	(Free_Entry_Names_Array): New routine.

	* s-taskin.ads: Comment reformatting.
	Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
	Add component Entry_Names to record Ada_Task_Control_Block.
	(Free_Entry_Names_Array): New routine.

	* s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
	dynamically allocate an array
	of string pointers. This structure holds string entry names.
	(Free_Entry_Names): New routine.
	(Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
	(Set_Entry_Names): New routine.

	* s-tassta.ads:
	(Create_Task): Add formal Build_Entry_Names. The flag is used to
	control the allocation of the data structure which stores entry names.
	(Set_Entry_Name): New routine.

	* s-tpoben.adb:
	Add with and use clause for Ada.Unchecked_Conversion.
	(Finalize): Deallocate the entry names array.
	(Free_Entry_Names): New routine.
	(Initialize_Protection_Entries): When flag Build_Entry_Names is set,
	create an array of string pointers to hold the entry names.
	(Set_Entry_Name): New routine.

	* s-tpoben.ads:
	Add field Entry_Names to record Protection_Entries.
	(Initialize_Protection_Entries): Add formal Build_Entry_Names.
	(Set_Entry_Name): New routine.

2008-05-26  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb:
	(Process_Project_Level_Simple_Attributes): process attribute Library_GCC

	* prj.ads:
	(Project_Configuration): New component Shared_Lib_Driver

2008-05-26  Ed Schonberg  <schonberg@adacore.com>

	* inline.adb:
	(Cleanup_Scopes): For a protected operation, transfer finalization list
	to protected body subprogram, to force cleanup actions when needed.

2008-05-26  Robert Dewar  <dewar@adacore.com>

	* sem_cat.adb: Minor reformatting

	* gnatname.adb: Minor reformatting

	* osint.ads: Minor reformatting

	* s-carun8.ads: Minor reformatting

	* g-heasor.ads: Minor comment fix (unit is now pure)

2008-05-26  Robert Dewar  <dewar@adacore.com>

	* exp_ch2.adb:
	(Expand_Current_Value): Properly type generated integer literal

2008-05-26  Sergey Rybin  <rybin@adacore.com>

	* gnat_ugn.texi: Add description for the new gnatcheck rule -
	Separate_Numeric_Error_Handlers.

2008-05-26  Pascal Obry  <obry@adacore.com>

	* sem_aggr.adb: Minor reformatting.

2008-05-26  Jose Ruiz  <ruiz@adacore.com>

	* s-osinte-aix.adb:
	(To_Target_Priority): Setting the time slice value to 0 or greater sets
	the scheduling policy to FIFO within priorities or round-robin
	respectively.
	Hence, the priority must be set in this case to the one selected by the
	user.

2008-05-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb:
	(Remove_Parent): If the enclosing scope is an instance whose generic
	parent is declared within some parent scope of the just completed
	instance, make full views of the entities in that parent visible, when
	applicable.

2008-05-26  Kai Tietz  <kai.tietz@onevision.com>

	* mingw32.h (STD_MINGW): Set to true for target w64.

2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>

	* trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
	instead of TREE_STATIC on the ADDR_EXPR.

2008-05-24  Eric Botcazou  <ebotcazou@adacore.com>

	* trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
	(Sloc_to_locus): Do not overwrite known GCC locations when translating
	GNAT standard locations.

2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>

	* gigi.h (mark_visited): Declare.
	* decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
	only the topmost node of expressions.
	(elaborate_expression_1): Look deeper for read-only variables.
	* trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
	(mark_visited): Move logic to mark_visited_r.  Invoke walk_tree.
	(mark_visited_r): New function.

2008-05-23  Vincent Celier  <celier@adacore.com>

	* snames.adb: New standard name Excluded_Source_List_File.

	* snames.ads: New standard name Excluded_Source_List_File.

	* prj-attr.adb: New project level attribute Excluded_Source_List_File.

	* prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
	Get excluded sources from
	file indicated by attribute Excluded_Source_List_File, when present and
	neither Excluded_Source_Files nor Locally_Removed_Files are declared.

2008-05-23  Robert Dewar  <dewar@adacore.com>

	* exp_dist.adb: Minor reformatting

2008-05-23  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
	slice, convert it to an indexed component, which is equivalent, more
	efficient, and usable even if the slice itself is not addressable.

2008-05-23  Olivier Hainque  <hainque@adacore.com>

	* gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
	convention also allows access to named compiler built-in subprograms
	such as the GCC __builtin family.

2008-05-23  Vincent Celier  <celier@adacore.com>

	* prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
	sep. If there are several possibilities, choose the one with the
	longer prefix.

2008-05-23  Vincent Celier  <celier@adacore.com>

	* gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
	back end switches when executable specified with --GCC= is same as
	default, even if there are additional options.

	* gnat_ugn.texi:
	Document when the back end switches from the ALI file are taken into
	account when gnatlink is invoked with --GCC=

2008-05-23  Thomas Quinot  <quinot@adacore.com>

	* s-os_lib.adb:
	(copy_File): Do not open destination file if source file is unreadable.

2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>

	* utils.c (handle_type_generic_attribute): Adjust to accept
	fixed arguments before an elipsis.

2008-05-21  Thomas Quinot  <quinot@adacore.com>

	* g-sothco.ads, g-sothco.adb: New files.

2008-05-20  Thomas Quinot  <quinot@adacore.com>

	* Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.

	* g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
	Add missing "with" of Ada.Unchecked_Conversion

	* g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
	g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
	g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
	g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
	g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
	g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
	Move common code out of GNAT.Sockets.Thin implementations and into
	Thin_Common.
	New constant SIZEOF_fd_set
	New flag Has_Sockaddr_Len
	New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6

	* g-stsifd-sockets.adb
	(Create): Remove call to Set_Length; use Set_Family to set the family
	and (on appropriate platforms) length fields in struct sockaddr.

	* g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
	g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
	g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
	Move common code out of GNAT.Sockets.Thin implementations and into
	Thin_Common.

	* g-socket.ads, g-socket.adb:
	Move common code out of GNAT.Sockets.Thin implementations and into
	Thin_Common.
	(Connect_Socket, Accept_Socket): Provide new versions of these two
	routines that operate with a user specified timeout.
	(Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
	this is now handled automatically by Set_Family on platforms that
	require it.

	* gen-soccon.c:
	Move common code out of GNAT.Sockets.Thin implementations and into
	Thin_Common.
	(SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
	this constant to 0 (not -1) because we use it to initialize an
	unsigned_char value.
	Align values for numeric constants only.
	Handle the case of systems that do not support AF_INET6.
	New constant SIZEOF_fd_set
	New flag Has_Sockaddr_Len
	New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6

	* gsocket.h: New flag Has_Sockaddr_Len
	New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6

2008-05-20  Santiago Uruena  <uruena@adacore.com>

	* i-cobol.ads: Interfaces.COBOL should be preelaborate.

2008-05-20  Arnaud Charlet  <charlet@adacore.com>

	* s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
	the underlying issue with malloc/free has been fixed. Remove associated
	comments.
	Minor reformatting.
	Related to PR ada/24533

2008-05-20  Robert Dewar  <dewar@adacore.com>

	* ali.adb: Correct casing of ASCII.NUL

	* styleg-c.adb (Check_Identifier): Handle case of names in ASCII
	properly.

2008-05-20  Robert Dewar  <dewar@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
	overflow if result converted to wider integer type.
	(Apply_Type_Conversion_Checks): Don't emit checks on conversions to
	discriminated types when discriminant checks are suppressed.

2008-05-20  Vincent Celier  <celier@adacore.com>

	* cstand.adb (Print_Standard): Issue the correct Size clause for type
	Wide_Wide_Character.

2008-05-20  Tristan Gingold  <gingold@adacore.com>

	* decl.c: Do not emit a variable for a object that has an address
	representation clause whose value is known at compile time.
	When a variable has an address clause whose value is known at compile
	time, refer to this variable by using directly the address instead of
	dereferencing a pointer.

2008-05-20  Robert Dewar  <dewar@adacore.com>

	PR ada/30740
	* einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
	subtypes, always False for non-modular types.
	Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
	entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
	for Shared_Storage package.
	(Is_RACW_Stub_Type): New entity flag.

	* exp_ch4.adb
	(Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
	case where we have a modular type with a non-binary modules.
	Comments reformattings.

	* sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
	all types.

2008-05-20  Javier Miranda  <miranda@adacore.com>

	* exp_aggr.adb
	(Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
	tests did not covered the case in which the type of the aggregate has
	no progenitors but some its parents has progenitors.

2008-05-20  Gary Dismukes  <dismukes@adacore.com>
	    Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch3.adb
	(Expand_N_Object_Declaration): Correct the condition which triggers the
	generation of a call to Displace when initializing a class-wide object.
	(Build_Dcheck_Functions): Build discriminant-checking for null variants
	when Frontend_Layout_On_Target is true to ensure that they're available
	for calling when a record variant size function is built in Layout.

2008-05-20  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch5.adb (Expand_Assign_Record): Within an initialization
	procedure for a derived type retrieve the discriminant values from the
	parent using the corresponding discriminant.
	(Expand_N_Assignment_Statement): Skip generation of implicit
	if-statement associated with controlled types if we are
	compiling with restriction No_Finalization.

2008-05-20  Vincent Celier  <celier@adacore.com>

	* prj.adb (Hash (Project_Id)): New function
	(Project_Empty): Add new component Interfaces_Defined

	* prj.ads (Source_Data): New component Object_Linked
	(Language_Config): New components Object_Generated and Objects_Linked
	(Hash (Project_Id)): New function
	(Source_Data): New Boolean components In_Interfaces and
	Declared_In_Interfaces.
	(Project_Data): New Boolean component Interfaces_Defined

	* prj-attr.adb:
	New project level attribute Object_Generated and Objects_Linked
	Add new project level attribute Interfaces

	* prj-dect.adb: Use functions Present and No throughout
	(Parse_Variable_Declaration): If a string type is specified as a simple
	name and is not found in the current project, look for it also in the
	ancestors of the project.

	* prj-makr.adb:
	Replace procedure Make with procedures Initialize, Process and Finalize
	to implement H414-023: process different directories with different
	patterns.
	Use functions Present and No throughout

	* prj-makr.ads:
	Replace procedure Make with procedures Initialize, Process and Finalize

	* prj-nmsc.adb
	(Add_Source): Set component Object_Exists and Object_Linked accordnig to
	the language configuration.
	(Process_Project_Level_Array_Attributes): Process new attributes
	Object_Generated and Object_Linked.
	(Report_No_Sources): New Boolean parameter Continuation, defaulted to
	False, to indicate that the erreor/warning is a continuation.
	(Check): Call Report_No_Sources with Contnuation = True after the first
	call.
	(Error_Msg): Process successively contnuation character and warning
	character.
	(Find_Explicit_Sources): Check that all declared sources have been found
	(Check_File): Indicate in hash table Source_Names when a declared source
	is found.
	(Check_File): Set Other_Part when found
	(Find_Explicit_Sources): In multi language mode, check if all exceptions
	to the naming scheme have been found. For Ada, report an error if an
	exception has not been found. Otherwise, disregard the exception.
	(Check_Interfaces): New procedure
	(Add_Source): When Other_Part is defined, set mutual pointers in spec
	and body.
	(Check): In multi-language mode, call Check_Interfaces
	(Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
	for an excluded source.
	(Remove_Source): A source replacing a source in the interfaces is also
	in the interfaces.

	* prj-pars.adb: Use function Present

	* prj-part.adb: Use functions Present and No throughout
	(Parse_Single_Project): Set the parent project for child projects
	(Create_Virtual_Extending_Project): Register project with no qualifier
	(Parse_Single_Project): Allow an abstract project to be extend several
	times. Do not allow an abstract project to extend a non abstract
	project.

	* prj-pp.adb: Use functions Present and No throughout
	(Print): Take into account the full associative array attribute
	declarations.

	* prj-proc.adb: Use functions Present and No throughout
	(Expression): Call itself with the same From_Project_Node for the
	default value of an external reference.

	* prj-strt.adb: Use functions Present and No throughout
	(Parse_Variable_Reference): If a variable is specified as a simple name
	and is not found in the current project, look for it also in the
	ancestors of the project.

	* prj-tree.ads, prj-tree.adb (Present): New function
	(No): New function
	Use functions Present and No throughout
	(Parent_Project_Of): New function
	(Set_Parent_Project_Of): New procedure

	* snames.ads, snames.adb:
	Add new standard names Object_Generated and Objects_Linked

2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
	and the derived type are of the same kind.
	(Expand_Call): Generate type conversions for actuals of
	record or array types when the parent and the derived types differ in
	size and/or packed status.

2008-05-20  Javier Miranda  <miranda@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
	generating dispatch tables of locally defined tagged types statically.
	Remove implicit if-statement that is no longer required.
	(Expand_Dispatching_Call): If this is a call to an instance of the
	generic dispatching constructor, the type of the first argument may be
	a subtype of Tag, so always use the base type to recognize this case.

2008-05-20  Thomas Quinot  <quinot@adacore.com>

	* exp_dist.adb
	(GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
	and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
	assigning NULL into the result, to avoid a spurious warning.
	(Add_RACW_Features, case Same_Scope): Add assertion that designated type
	is not frozen.
	(Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
	type.
	(Build_From_Any_Function, Build_To_Any_Function,
	Build_TypeCode_Function): For a type that has user-specified stream
	attributes, use an opaque sequence of octets as the representation.

2008-05-20  Kevin Pouget  <pouget@adacore.com>

	* exp_smem.ads, exp_smem.adb: Construction of access and assign
	routines has been replaced by an instantiation of
	System.Shared_Storage.Shared_Var_Procs generic package, while expanding
	shared variable declaration.
	Calls to access and assign routines have been replaced by calls to
	Read/Write routines of System.Shared_Storage.Shared_Var_Procs
	instantiated package.

	* rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
	It identifies the new generic package added in s-shasto.

	* s-shasto.adb, s-shasto.ads: A new generic package has been added, it
	is instantiated for each shared passive variable. It provides
	supporting procedures called upon each read or write access by the
	expanded code.

	* sem_attr.adb:
	For this runtime unit (always compiled in GNAT mode), we allow
	stream attributes references for limited types for the case where
	shared passive objects are implemented using stream attributes,
	which is the default in GNAT's persistent storage implementation.

2008-05-20  Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb
	(Freeze_Enumeration_Type): For a subtype that inherits a foreign
	convention from its base type, do not set the type to that of integer,
	because it may inherit a size clause.
	Warn on a size clause with a size different
	from that of Integer, if the type has convention C.

2008-05-20  Vincent Celier  <celier@adacore.com>

	* gnatname.adb
	(Scan_Args): Rewrite to take into account new switch --and to separate
	arguments into sections.
	(Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
	section, then Finalize.

2008-05-20  Tristan Gingold  <gingold@adacore.com>

	* init.c: Enable stack probing on ppc-linux.

	* tracebak.c: Add symbolic traceback for ppc-linux.

	* system-linux-ppc.ads: Enable stack probing on ppc-linux.

2008-05-20  Arnaud Charlet  <charlet@adacore.com>

	* Makefile.in
	(common-tools): New rule, to avoid parallel build failure on gnat tools.
	Reenable parallel builds on this Makefile.

	* Make-lang.in: Update dependencies.

2008-05-20  Robert Dewar  <dewar@adacore.com>

	* opt.ads (Treat_Restrictions_As_Warnings): New switch

	* sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
	Treat_Restrictions_As_Warnings.

	* switch-c.adb: Recognize new switch -gnatr

	* usage.adb: Add line for -gnatr

2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* par-ch3.adb
	(P_Access_Definition): Change the error message when parsing "access
	all" in Ada 95 mode. The message no longer forces the user to recompile
	in 05 mode only to discover that anonymous access types are not allowed
	to have "all".

2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>

	* par-ch9.adb
	(P_Protected): Update the error message on missing "-gnat05" switch when
	using interfaces in conjunction with protected types. Remove the
	incorrect error message associated with the presence of "private" after
	a "with".

2008-05-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_aggr.adb: Update comments.
	Improve previous change for PR ada/17985

2008-05-20  Thomas Quinot  <quinot@adacore.com>

	* sem_cat.adb
	(Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
	the visible part of the spec of a remote types unit.
	(Validate_Remote_Access_Object_Type_Declaration):
	New local subprogram Is_Valid_Remote_Object_Type, replaces
	Is_Recursively_Limited_Private.
	(Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
	non-controlling formals (and the return type, even though this is not
	explicit in the standard) must support external streaming.
	(Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
	as above for of RAS types and RCI subprograms. (The return type is not
	checked yet).
	Update comments related to RACWs designating limited interfaces per
	ARG ruling on AI05-060.

	* sem_util.ads, sem_util.adb
	(Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
	Is_Remote_Call_Interface to identify RACW types in a stable and
	consistent way. We used to rely in this predicate on the privateness of
	the designated type and its ancestors, but depending on the currently
	visible private parts, this caused false negatives. We now uniformly
	rely on checks made at the point where the RACW type is declared.
	(Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.

2008-05-20  Javier Miranda  <miranda@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb
	(Analyze_Object_Declaration): Fix over-conservative condition
	restricting use of predefined assignment with tagged types that have
	convention CPP.
	(Analyze_Object_Declaration): Relax the check regarding deferred
	constants declared in scopes other than packages since they can be
	completed with pragma Import.
	Add missing escaping of all-caps word 'CPP' in error messages.
	(Build_Discriminated_Subtype): Do not inherit representation clauses
	from parent type if subtype already carries them, because they are
	inherited earlier during derivation and already include those that may
	come from a partial view.

	* sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
	Check the declarations of a subprogram body for proper deferred
	constant completion.

	* sem_ch7.ads, sem_ch7.adb
	(Inspect_Deferred_Constant_Completion): Moved to sem_util.

2008-05-20  Ed Schonberg  <schonberg@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

	* sem_ch4.adb
	(Try_Indexed_Call): Handle properly a construct of the form F(S) where
	F is a parameterless function that returns an array, and S is a subtype
	mark.
	(Analyze_Call): Insert dereference when the prefix is a parameterless
	function that returns an access to subprogram and the call has
	parameters.
	Reject a non-overloaded call whose name resolves to denote
	a primitive operation of the stub type generated to support a remote
	access-to-class-wide type.

2008-05-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb
	(Note_Redundant_Use): Diagnose a redundant use within a subprogram body
	when there is a use clause for the same entity in the context.
	(Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
	created for a stream attribute of an abstract type or interface type.

2008-05-20  Thomas Quinot  <quinot@adacore.com>

	* sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
	subprogram.

	* sem_type.adb
	(Add_One_Interp): Ignore any interpretation that is a primitive
	operation of an RACW stub type (these primitives are only executed
	through dispatching, never through static calls).
	(Collect_Interps): When only one interpretation has been found, set N's
	Entity and Etype to that interpretation, otherwise Entity and Etype may
	still refer to an interpretation that was ignored by Add_One_Interp,
	in which case would end up with being marked as not overloaded but with
	an Entity attribute not pointing to its (unique) correct interpretation.

2008-05-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_eval.adb
	(Eval_Slice): Warn when a slice whose discrete range is a subtype name
	denotes the whole array of its prefix.

2008-05-20  Robert Dewar  <dewar@adacore.com>

	* sem_res.adb (Resolve_Op_Not): Warn on double negation

2008-05-20  Ed Schonberg  <schonberg@adacore.com>

	* sprint.adb
	(Print_Itype): Do not modify the sloc of the component type of a
	(packed) array itype, because it is an unrelated type whose source
	location is independent of the point of creation of the itype itself.

2008-05-20  Thomas Quinot  <quinot@adacore.com>

	* uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
	Append.

2008-05-20  Robert Dewar  <dewar@adacore.com>
	    Vincent Celier  <celier@adacore.com>

	* vms_data.ads: Add entry for -gnatr
	Put GNAT SYNC section in proper alpha order
	Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d

	* gnat_ugn.texi: Add documentation for new gnatname switch --and
	Update the style checks section
	Add documentation of -gnatr
	Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
	subsection the explanation how compiler checks should be disabled for
	gnatcheck.
	Update the list of Ada 95 reserved words used by in the project language
	Add documentation for project qualifiers.
	Document that abstract projects may be extended by different projects in
	the same project tree.
	Add documentation for gnatmake switch -d

	* ug_words: Add -gnatyy VMS equivalence string.
	Add entry for -gnatr

2008-05-20  Bob Duff  <duff@adacore.com>

	* a-rttiev.adb
	(Set_Handler): Remove code from both of these that implements
	RM-D.15(15/2), because it causes a race condition and potential
	deadlock.
	(Process_Queued_Events): Add comment explaining "exception when others
	=> null". Add clarifying ".all", even though implicit .all is legal
	here.

2008-05-20  Arnaud Charlet  <charlet@adacore.com>

	* s-winext.ads: Replace representation clause by pragma Pack. Gives
	equivalent representation, but has the advantage of allowing
	compilation of this file under 64 bits platforms.

	* s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.

	* s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.

	* adaint.c:
	Don't define dummy implementation of convert_addresses on ppc-linux.

2008-05-20  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch7.adb
	(Expand_Ctrl_Function_Call): Do not attach result to finalization list
	if expression is aggregate component.

2008-05-20  Robert Dewar  <dewar@adacore.com>

	* g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
	sem_ch12.adb: Update comments. Minor reformatting.

	* exp_ch2.adb: Typo

	* s-unstyp.ads: Fixed some typos in comments.

2008-05-20  Arnaud Charlet  <charlet@adacore.com>

	* s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
	type/constant.

	* g-socthi-vxworks.ads: Update to latest socket changes.

	* a-caldel-vms.adb: Resync with a-caldel spec.

	* exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
	Update comments.

2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>

	* trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
	for dummy types pointed to by the converted pointer types.

2008-05-15  Eric Botcazou  <ebotcazou@adacore.com>

	* trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
	of records and unions.
	(gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.

2008-05-14  Samuel Tardieu  <sam@rfc1149.net>
	    Robert Dewar <dewar@adacore.com>

	* sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
	restrictions to the prefix of 'Old.
	* sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
	* gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
	variables.

2008-05-13  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/24880
	PR ada/26635
	* utils.c (convert) <INTEGER_TYPE>: When converting an additive
	expression to an integral type with lower precision, use NOP_EXPR
	directly in a couple of special cases.

2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
	    Ed Schonberg <schonberg@adacore.com>

	* sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
	constraint expressions.

2008-05-12  Tomas Bily  <tbily@suse.cz>

	* utils2.c (known_alignment, contains_save_expr_p)
	(gnat_mark_addressable): Use CASE_CONVERT.
	* decl.c (annotate_value): Likewise.
	* trans.c (maybe_stabilize_reference): Likewise.
	* utils2.c (build_binary_op): Use CONVERT_EXPR_P.
	* utils.c (rest_of_record_type_compilation): Likewise.
	* trans.c (protect_multiple_eval, Attribute_to_gnu)
	(protect_multiple_eval): Likewise.

2008-05-08  Andreas Schwab  <schwab@suse.de>

	* utils.c (handle_pure_attribute, init_gigi_decls): Rename
	DECL_IS_PURE to DECL_PURE_P.

2008-05-05  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (maybe_pad_type): Add ??? comment.

2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (components_to_record): Zero the alignment of the qualified
	union built for the variant part upon creating it.

2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (maybe_pad_type): Try to get a form of the type with integral
	mode even if the alignment is not a factor of the original size.  But
	make sure to create the inner field with the original size.  Reorder.
	* trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
	record as always addressable.
	* utils.c (convert): Deal specially with conversions between original
	and packable versions of a record type.
	* utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
	recognizing an assignment between padded objects.

2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (make_packable_type): Resize the last component to its RM size
	only if it is of an aggregate type.
	* trans.c (call_to_gnu): Fix nit in comment.
	(gnat_to_gnu): Likewise.

2008-04-30  Samuel Tardieu  <sam@rfc1149.net>

	* Makefile.in: Adapt sh4-linux target.

2008-04-29  Ed Schonberg  <schonberg@adacore.com>

	PR ada/35792
	* sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
	tagged type by an untagged protected or task type.

2008-04-28  Eric Botcazou  <ebotcazou@adacore.com>
	    Tristan Gingold  <gingold@adacore.com>

	PR ada/36007
	* decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
	of aliased objects with an unconstrained nominal subtype.
	Cap the promotion to the effective alignment of the word mode.

2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
	(ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
	Use '&&' instead of ';'.

2008-04-24  Olivier Hainque  <hainque@adacore.com>

	* trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
	doesn't require signed arithmetic anymore.

2008-04-23  Paolo Bonzini  <bonzini@gnu.org>

	* trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
	(call_to_gnu): Don't set TREE_INVARIANT.
	* utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.

2008-04-22  Joel Sherrill <joel.sherrill@oarcorp.com>

	* s-osinte-rtems.adb: Add sigalstack function.
	* s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
	function. Add Alternate_Stack and Alternate_Stack_Size.
	Add missing process_shared field to pthread_condattr_t
	and change ss_low_priority to int from timespec.

2008-04-22  Samuel Tardieu  <sam@rfc1149.net>

	* i-forbla.adb: Link against -llapack and -lblas by default
	instead of the private -lgnalasup.

2008-04-21  Olivier Hainque  <hainque@adacore.com>

	Access to most C builtins from Ada
	* utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
	(handle_pure_attribute, handle_novops_attribute,
	handle_nonnull_attribute, handle_sentinel_attribute,
	handle_noreturn_attribute, handle_malloc_attribute,
	handle_type_generic_attribute): New attribute handlers, from C fe.
	(gnat_internal_attribute_table): Map the new handlers.
	(gnat_init_decl_processing): Move call to gnat_install_builtins to ...
	(init_gigi_decls): ... here.
	(handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
	Move to a section dedicated to builtins processing.
	(build_void_list_node, builtin_type_for_size): New functions.
	(def_fn_type, get_nonnull_operand): Likewise.
	(install_builtin_elementary_type, install_builtin_function_types,
	install_builtin_attributes): Likewise.
	(fake_attribute_handler): Fake handler for attributes we don't
	support in Ada.
	(def_builtin_1): New function, worker for DEF_BUILTIN.
	(install_builtin_functions): New function.
	(gnat_install_builtins): Move to the builtins processing section.
	Now calling the newly introduced installers.

2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of
	constant objects, but not exceptions.
	* trans.c (add_decl_expr): Use gnat_types_compatible_p for type
	compatibility test.
	* utils.c (create_var_decl_1): Likewise.
	* utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of
	the type when copying to padded object and the source is a constructor.

2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (gnat_to_gnu_entity) <object>: When trying to promote the
	alignment, reset it to zero if it would end up not being greater
	than that of the type.

2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (maybe_pad_type): Only generate the XVS parallel type if
	the padded type has a variable size.

2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
	target pointer mechanism as soon as the size is not constant.

2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>

	* gigi.h (create_var_decl_1): Declare.
	(create_var_decl): Turn into a macro invoking create_var_decl_1.
	(create_true_var_decl): Likewise.
	* utils.c (create_var_decl_1): Make global and reorder parameters.
	(create_var_decl): Delete.
	(create_true_var_decl): Likewise.

2008-04-17  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
	objects by default.
	* fe.h (Debug_Flag_Dot_A): Delete.
	* debug.adb (-gnatd.a): Update documentation.

2008-04-17  Samuel Tardieu  <sam@rfc1149.net>

	* g-socket.ads, g-socket.adb (Get_Address): Make Stream a
	"not null" parameter.

2008-04-17  Samuel Tardieu  <sam@rfc1149.net>

	* g-socket.adb: Add a message "IPv6 not supported" to the
	Socket_Error exception.

2008-04-16  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/29015
	* sem_ch12.adb (Instantiate_Type): Check whether the full view of
	the type is known instead of the underlying type.

2008-04-15  Ed Schonberg  <schonberg@adacore.com>

	PR ada/22387
	* exp_ch5.adb (Expand_Assign_Record): Within an initialization
	procedure for a derived type retrieve the discriminant values from
	the parent using the corresponding discriminant.

2008-04-15  Samuel Tardieu  <sam@rfc1149.net>
	    Gary Dismukes  <dismukes@adacore.com>

	PR ada/28733
	* sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
	which is not an entity (and hence not a package).
	(End_Use_Package): Ditto.

2008-04-15  Ed Schonberg  <schonberg@adacore.com>

	PR ada/16086
	* sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
	protected operation that matches the signature, not only an entry, a
	regular subprogram or a literal.

2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>

	* ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
	* decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only
	if a size or alignment is specified.  Do not take into account
	alignment promotions for the computation of the object's size.
	<type>: Call maybe_pad_type only if a size or alignment is specified.
	(maybe_pad_type): Really reuse the RM_Size of the original type if
	requested.
	* trans.c (Attribute_to_gnu): Fix a couple of nits.
	* utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional
	statements.  Use the padded view of the type when copying between
	padded objects of the same underlying type.

2008-04-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* vms_data.ads: Fix typo in constant.
	* gen-soccon.c: Fix typo in error string.
	* gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
	Fix typos.
	* a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
	bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
	erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
	exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
	exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
	g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
	mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
	s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
	s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
	sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
	sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
	sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
	sinfo.ads: Fix typos in comments.

2008-04-14  Robert Dewar  <dewar@adacore.com>

	* sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
	to every non-object and change error message.

2008-04-14  Robert Dewar  <dewar@adacore.com>

	* sem_util.ads, sem_util.adb (In_Subprogram): Remove.
	* sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
	directly.

2008-04-14  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/18680
	* sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
	apply pragma Linker_Section on type.

2008-04-14  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/16098
	* sem_prag.adb (Error_Pragma_Ref): New.
	(Process_Convention): Specialized message for non-local
	subprogram renaming. Detect the problem in homonyms as well.

2008-04-14  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/15915
	* sem_util.ads, sem_util.adb (Denotes_Variable): New function.
	* sem_ch12.adb (Instantiate_Object): Use it.
	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
	storage pool denotes a variable as per RM 13.11(15).

2008-04-14  Samuel Tardieu  <sam@rfc1149.net>

	* sem_util.ads, sem_util.adb (In_Subprogram): New function.
	* sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.

2008-04-14  Rolf Ebert  <rolf.ebert.gcc@gmx.de>

	PR ada/20822
	* xgnatugn.adb (Put_Line): New procedure, ensuring Unix
	line endings even on non-Unix platforms.

2008-04-14  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/35050
	* xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
	renaming information.

2008-04-13  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/17985
	* sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
	itself.

2008-04-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* sfn_scan.adb, sfn_scan.ads, sinfo.ads,
	sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
	snames.ads, sprint.adb, stand.ads, stringt.ads,
	styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
	switch.ads, sysdep.c, table.adb, table.ads,
	targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
	trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
	uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
	vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
	widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
	xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
	Fix comment typos.

	* sem_ch10.adb, sem_ch10.ads,
	sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
	sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
	sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
	sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
	sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
	sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
	sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
	sem_warn.ads: Fix comment typos.

	* s-secsta.adb, s-sequio.ads, s-shasto.ads,
	s-soflin.ads, s-stalib.ads, s-stausa.adb,
	s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
	s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
	s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
	s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
	s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
	s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
	s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
	s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
	s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
	s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
	s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
	s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
	s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
	scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
	sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
	sem_cat.adb, sem_cat.ads: Fix comment typos.

2008-04-12  Joel Sherrill  <joel@oarcorp.com>

	PR ada/35825
	* g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.

2008-04-12  Arnaud Charlet  <charlet@adacore.com>

	* s-linux-hppa.ads: Fix syntax errors.

2008-04-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* gnat_ugn.texi: Fix typos.
	* raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
	restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
	s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
	s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
	s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
	s-finimp.adb, s-finroo.ads, s-fishfl.ads,
	s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
	s-hibaen.ads, s-htable.ads, s-imgcha.adb,
	s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
	s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
	s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
	s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
	s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
	s-osinte-darwin.ads, s-osinte-freebsd.ads,
	s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
	s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
	s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
	s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
	s-parame-hpux.ads, s-parame-vms-alpha.ads,
	s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
	s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
	s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
	s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
	s-rident.ads: Fix comment typos.

2008-04-09  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/28305
	* sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
	environment if generic instance is a top-level one.

2008-04-09  Doug Rupp  <rupp@adacore.com>

	* decl.c (validate_size): Set minimum size for fat pointers same as
	access types. Code clean ups.

	* gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
	(__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS

	* s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant

	* s-crtl.ads (malloc32) New function, alias for malloc
	(realloc32) New function, alias for realloc

	* socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS

	* utils2.c (build_call_alloc_dealloc): Return call to short malloc if
	allocator size is 32 and default pointer size is 64.
	(find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
	lhs type if smaller, whatever the modes.

	* gigi.h (malloc32_decl): New macro definition

	* utils.c (init_gigi_decls): New malloc32_decl
	Various code clean ups.

	* s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
	Task_Address vice System.Address.

	* s-taspri-vms.ads: Import System.Aux_DEC
	(Task_Address): New subtype of System.Aux_DEC.Short_Address
	(Task_Address_Size): New constant size of System.Aux_DEC.Short_Address

	* s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
	Task_Address vice System.Address.

	* s-inmaop-vms.adb: Import System.Task_Primitives
	(To_Address): Unchecked convert to Task_Address vice System.Address

	* s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
	expires now.
	(To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
	(To_Address) Unchecked convert to Task_Address vice System.Address

	* s-tpopde-vms.adb: Remove unnecessary warning pragmas

	* g-socthi-vms.ads: Add 32bit size clauses on socket access types.

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

	* gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
	(fdesc_type_node): Define.
	(null_fdesc_node): Likewise.
	* decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
	uses descriptors for vtables and the type comes from a dispatch table,
	return the descriptor type.
	* trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
	uses descriptors for vtables and the type comes from a dispatch table,
	build a descriptor in the static case and copy the existing one in the
	non-static case.
	(gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
	the type is a pointer-to-subprogram coming from a dispatch table,
	return the null descriptor.
	<N_Unchecked_Type_Conversion>: If the target uses descriptors for
	vtables, the source type is the descriptor type and the target type
	is a pointer type, first build the pointer.
	* utils.c (init_gigi_decls): If the target uses descriptors for vtables
	build the descriptor type and the null descriptor.

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

	* decl.c (prepend_attributes): Fix typo.
	* trans.c (Pragma_to_gnu): Likewise.
	* utils.c (gnat_genericize): Likewise.

2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
	    Richard Kenner  <kenner@adacore.com>

	* ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
	* decl.c (gnat_to_gnu_entity): Adjust for above change.
	<E_Record_Type>: Try to get a better form of the component for
	packing, even if it has an integral mode.
	<E_Record_Subtype>: Likewise.
	* trans.c (gnat_to_gnu): Do not require BLKmode for the special
	exception suppressing the final conversion between record types.

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

	* decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
	alignment for space, promote the alignment of non-scalar variables with
	no size and alignment.
	* gigi.h (gnat_types_compatible_p): Declare.
	* misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
	* trans.c (gnat_to_gnu): Revert revision 129339 change.  Minor cleanup.
	* utils.c (gnat_types_compatible_p) : New predicate.
	(convert): Use it throughout to test for cases where a mere view
	conversion is sufficient.
	* utils2.c (build_binary_op): Minor tweaks.
	(build_unary_op): Likewise.

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

	* decl.c (adjust_packed): Expand comment.

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

	* s-tasuti.ads: Use Task_Address instead of System.Address.

	* makeutl.adb (Path_Or_File_Name): New function

	* nlists.ads, itypes.ads: Update comments.

	* s-crtl.ads (malloc32, realloc32): New functions.

	* s-auxdec.ads (Short_Address_Size): New constant.

	* a-taside.adb, s-tasdeb.adb: Use Task_Address.

	* s-ststop.ads, s-ststop.adb: New file.

	* exp_tss.ads, s-taprop-lynxos.adb: Update comments.
	Minor reformatting.

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

	* g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
	(Stop_Bits_Number): New type.
	(Parity_Check): Likewise.
	(Set): Add parameter to set the number of stop bits and
	the parity. Parameter timeout is now a duration instead
	of a plain integer.

	* g-sercom-linux.adb:
	Implement the stop bits and parity support for GNU/Linux.
	Fix handling of timeout, it must be given in tenth of seconds.

	* g-sercom-mingw.adb:
	Implement the stop bits and parity support for Windows.
	Use new s-win32.ads unit instead of declaring Win32 services
	directly into this body.
	Update handling of timeout as now a duration.

	* s-win32.ads, s-winext.ads: New files.

2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.

	s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
	s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.

	* s-osinte-lynxos-3.ads,
	(Alternate_Stack): Remove when not needed. Simplify declaration
	otherwise.
	(Alternate_Stack_Size): New constant.

	s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
	'Unrestricted_Access.

	* s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
	s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
	s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
	s-osinte-solaris.ads, s-osinte-vms.ads
	(SA_ONSTACK): New constant.
	(stack_t): New record type.
	(sigaltstack): New imported function.
	(Alternate_Stack): New imported variable.
	(Alternate_Stack_Size): New constant.

	* system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.

	* s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
	s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
	s-taspri-vms.ads (Task_Address): New subtype of System.Address
	(Task_Address_Size): New constant size of System.Address
	(Alternate_Stack_Size): New constant.

	* s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
	(Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
	Establish the alternate stack if the platform makes use of n alternate
	signal stack for stack overflows.
	(Create_Task): Take into account the alternate stack in the stack size.
	(Initialize): Save the address of the alternate stack into the ATCB for
	the environment task.
	(Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).

	* s-parame.adb (Minimum_Stack_Size): Increase value to 16K

	* system-linux-x86.ads: (Stack_Check_Probes): Set to True.

	* s-intman-posix.adb:
	(Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
	alternate signal stack for stack overflows.

	* init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
	x86-64, adjust the saved value of the stack pointer if the signal was
	raised by a stack checking probe.
	(HP-UX section): Use global __gnat_alternate_stack as signal handler
	stack and only for SIGSEGV.
	(Linux section): Likewise on x86 and x86-64.
	[VxWorks section]
	(__gnat_map_signal): Now static.
	(__gnat_error_handler): Not static any more.
	(__gnat_adjust_context_for_raise): New function. Signal context
	adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
	propagation circuitry.
	(__gnat_error_handler): Second argument of a sigaction handler is a
	pointer, not an int, and is unused.
	Adjust signal context before mapping to exception.
	Install signal handlers for LynxOS case.

	* s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
	(Task_Id): Set size to Task_Address_Size
	(To_Task_id): Unchecked convert from Task_Address vice System.Address
	(To_Address): Unchecked convert to Task_Address vice System.Address

	* s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
	address into the ATCB if the platform makes use of an alternate signal
	stack for stack overflows.
	(Free_Task): Add call to Finalize_Attributes_Link.
	Add argument Relative_Deadline to pass the value specified for
	the task. This is not yet used for any target.

	* s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
	the value specified for the task.

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

	(s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
	(s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
	s-vxwext-rtp.adb): New files.

	* s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb:
	Minor updates to accomodate changes above.

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

	* a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
	s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
	Use new s-win32.ads unit instead of declaration
	from s-osinte-mingw.ads.

	* s-osinte-mingw.ads:
	Move all non tasking based interface to s-win32.ads.

	* s-osprim-mingw.adb:
	Remove duplicated declarations and use s-win32.ads
	unit instead.

2008-04-08  Vincent Celier  <celier@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
	mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
	mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
	mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
	mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...

	* mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
	mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
	mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
	mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
	mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
	mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
	mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
	mlib-tgt-specific-mingw.adb: New names.

	* Makefile.in:
	On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
	Get rid of gnatbl.
	(EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
	Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
	Minor updates for VMS

	* gnatbl.c: Removed.

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

	* g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
	g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
	gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
	a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
	s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
	ASCII.NUL throughout.

2008-04-08  Arnaud Charlet  <charlet@adacore.com>
	    Matthew Heaney  <heaney@adacore.com>

	* a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
	renaming.

	* a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,
	a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
	to convention for non-RM specs.
	Add descriptive header, and documented each operation
	document each operation

2008-04-08  Robert Dewar  <dewar@adacore.com>
	    Bob Duff  <duff@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* alloc.ads: Add entries for Obsolescent_Warnings table

	* einfo.ads, einfo.adb: Minor reformatting.
	(Is_Discriminal): New subprogram.
	(Is_Prival): New subprogram.
	(Is_Protected_Component): New subprogram.
	(Is_Protected_Private): Removed.
	(Object_Ref, Set_Object_Ref): Removed.
	(Prival, Set_Prival): Change assertion.
	(Privals_Chain, Set_Privals_Chain): Removed.
	(Prival_Link, Set_Prival_Link): New subprogram.
	(Protected_Operation, Set_Protected_Operation): Removed.
	(Protection_Object, Set_Protection_Object): New subprogram.
	(Write_Field17_Name): Remove case for Object_Ref.
	(Write_Field20_Name): Add case for Prival_Link.
	(Write_Field22_Name): Remove case for Protected_Operation,
	Privals_Chain.
	Add case for Protection_Object.
	(Can_Use_Internal_Rep): Make this into a [base type only] attribute,
	so clients
	(Overlays_Constant): New flag
	(Is_Constant_Object): New predicate
	(Is_Standard_Character_Type): New predicate
	(Optimize_Alignment_Space): New flag
	(Optimize_Alignment_Time): New flag
	(Has_Postconditions): New flag
	(Obsolescent_Warrning): Field removed
	(Spec_PPC_List): New field
	(Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
	subprograms to get and set the relative deadline associated to a task.

	* exp_attr.adb (May_Be_External_Call): Account for the case where the
	Access attribute is part of a named parameter association.
	(Expand_Access_To_Protected_Op): Test for the attribute occurring
	within an init proc and use that directly as the scope rather than
	traversing up to the protected operation's enclosing scope. Only apply
	assertion on Is_Open_Scopes in the case the scope traversal is done.
	For the init proc case use the address of the first formal (_init) as
	the protected object reference.
	Implement Invalid_Value attribute
	(Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
	contents of the dispatch table there is no need to duplicate the
	itypes associated with record types (i.e. the implicit full view
	of private types).
	Implement Enum_Val attribute
	(Expand_N_Attribute_Reference, case Old): Properly handle appearence
	within _Postconditions procedure
	(Expand_N_Attribute_Reference, case Result): Implement new attribute

	* exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
	a return statement calls a function that is not available in
	configurable runtime.
	(Analyze_If_Statement): don't optimize simple True/False cases in -O0
	(Expand_Non_Function_Return): Generate call to _Postconditions proc
	(Expand_Simple_Function_Return): Ditto

	* frontend.adb: Add call to Sem_Aux.Initialize

	* sem_aux.ads, sem_aux.adb: New file.

	* par-prag.adb: Add entries for pragmas Precondition/Postcondition
	Add new Pragma_Relative_Deadline.
	Add support for pragmas Check and Check_Policy

	* sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
	(Check_Stream_Attribute): Add missing check (not allowed in CPP types)
	(Analyze_Attribute): In case of attributes 'Alignment and 'size add
	missing check because they are not allowed in CPP tagged types.
	Add Sure parameter to Note_Possible_Modification calls
	Add implementation of Invalid_Value attribute
	Implement new attribute Has_Tagged_Values
	Implement Enum_Val attribute
	(Analyze_Attribute, case Range): Set Name_Req True for prefix of
	generated attributes.
	(Analyze_Attribute, case Result): If prefix of the attribute is
	overloaded, it always resolves to the enclosing function.
	(Analyze_Attribute, case Result): Properly deal with analysis when
	Postconditions are not active.
	(Resolve_Attribute, case Result): Properly deal with appearence during
	preanalysis in spec.
	Add processing for attribute Result

	* sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
	for operators.
	(Analyze_Subprogram_Body): Install private_with_clauses when the body
	acts as a spec.
	(Check_Inline_Pragma): recognize an inline pragma that appears within
	the subprogram body to which it applies.
	(Analyze_Function_Return): Check that type of the expression of a return
	statement in a function with a class-wide result is not declared at a
	deeper level than the function.
	(Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
	(Verify_Overriding_Indicator): Handle properly subprogram bodies for
	user- defined operators.
	(Install_Formals): Moved to spec to allow use from Sem_Prag for
	analysis of precondition/postcondition pragmas.
	(Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
	Last_Formal, along with lots of comments on what this is about
	(Analyze_Subprogram_Body): Fix case where we move entities from the
	spec to the body when there are no body entities (now possible with
	precondition and postcondition pragmas).
	(Process_PPCs): New procedure
	(Analyze_Subprogram_Body): Add call to Process_PPCs

	* sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
	clause.
	(Pop_Scope): Restore Check_Policy_List on scope exit
	(Push_Scope): Save Check_Policy_List on scope entry
	Change name In_Default_Expression      => In_Spec_Expression
	Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
	Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
	(Analyze_Object_Renaming): Allow 'Reference as object
	(Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
	(Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
	of restriction identifier.
	Add Sure parameter to Note_Possible_Modication calls

	* sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
	Don't check for primitive operations when calling Rep_Item_Too_Late.
	(Process_Import_Or_Interface): Do not place flag on formal
	subprograms.
	(Analyze_Pragma, case Export): If the entity is a deferred constant,
	propagate information to full view, which is the one elaborated by the
	back-end.
	(Make_Inline): the pragma is effective if it applies to an internally
	generated subprogram declaration for a body that carries the pragma.
	(Analyze_Pragma, case Optimize_Alignment): Set new flag
	Optimize_Alignment_Local.
	(Analyze_PPC_In_Decl_Part): New procedure
	(Get_Pragma_Arg): Moved to outer level
	(Check_Precondition_Postcondition): Change to allow new visibility
	rules for package spec
	(Analyze_Pragma, case Check_Policy): Change placement rules to be
	same as pragma Suppress/Unsuppress.
	Change name In_Default_Expression      => In_Spec_Expression
	Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
	Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
	(Check_Precondition_Postcondition): Do proper visibility preanalysis
	for the case of these pragmas appearing in the spec.
	(Check_Enabled): New function
	(Initialize): New procedure
	(Tree_Read): New procedure
	(Tree_Write): New procedure
	(Check_Precondition_Postcondition): New procedure
	Implement pragmas Check and Check_Policy
	Merge Assert processing with Check

	* sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
	New warning flag -gnatw.e

	* sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
	returning whether a task (or main procedure) has a pragma
	Relative_Deadline.
	(Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
	(or main procedure) has a pragma Relative_Deadline.
	Add Next_Pragma field to N_Pragma node
	(PPC_Enabled): New flag
	(Next_Pragma): Now used for Pre/Postcondition processing

	* snames.h, snames.ads, snames.adb: New standard name
	Inherit_Source_Path
	Add entry for 'Invalid_Value attribute
	Add entry for new attribute Has_Tagged_Values
	Add entry for Enum_Val attribute
	Add new standard names Aggregate, Configuration and Library.
	Add _Postconditions
	Add _Result
	Add Pragma_Precondition
	Add Pragma_Postcondition
	Add Attribute_Result
	New standard name Archive_Builder_Append_Option
	(Preset_Names): Add _relative_deadline and relative_deadline definitions
	There was also a missing non_preemptive_within_priorities.
	(Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
	Relative_Deadline.
	Add support for pragmas Check and Check_Policy

	* tree_gen.adb: Call Sem_Aux.Tree_Write

	* tree_in.adb: Call Sem_Aux.Tree_Read

	* exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
	sequence

	* exp_intr.adb (Expand_Source_Info): New Build_Location calling
	sequence

	* exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
	(Expand_N_Pragma): Call the appropriate procedure for expanding pragma
	Relative_Deadline.
	(Expand_Pragma_Check): New procedure

	* sinput.ads, sinput.adb (Build_Location_String): Now appends to name
	buffer.

	* sinfo.adb (PPC_Enabled): New flag

2008-04-08  Robert Dewar  <dewar@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>
	    Javier Miranda  <miranda@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* fe.h: Remove global Optimize_Alignment flag, no longer used

	* layout.adb: Test Optimize_Alignment flags rather than global switch

	* lib.ads, lib.adb: New OA_Setting field in library record

	* lib-load.adb: New OA_Setting field in library record

	* lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
	units mentioned in limited_with_ clauses in the ali file, with an
	'Y' marker.
	New Ox fields in U line

	* opt.adb: New flag Optimize_Alignment_Local
	(Check_Policy_List[_Config]): New flags

	* opt.ads (Invalid_Value_Used): New flag
	New switch Optimize_Alignment_Local
	(Warn_On_Parameter_Order): New flag
	(Check_Policy_List[_Config]): New flags

	* ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
	limited_with clauses.
	New data structures for Optimize_Alignment

	* bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
	New procedure
	(Check_Consistent_Optimize_Alignment): Rework for new structure
	(Check_Consistent_Restrictions): Fix incorrect error message

	sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
	created class-wide type (to the Parent field of the specific type).
	(Install_Siblings): Handle properly private_with_clauses on subprogram
	bodies and on generic units.
	(Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
	illegal limited_with_clause that names a non-existent package.
	(Check_Body_Required): Determine whether a unit named a limited_with
	clause needs a body.
	(Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
	Capture Optimize_Alignment settings to set new OA_Setting field in
	library record.
	(Build_Limited_Views): Include task and protected type declarations.

	* sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
	case of a possible constant redeclaration where the current object is
	an entry index constant.
	(Analyze_Object_Declaration): Generate an error in case of CPP
	class-wide object initialization.
	(Analyze_Object_Declaration): Add extra information on warnings for
	declaration of unconstrained objects.
	(Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
	conflicts with the setting of Stored_Constraint in the case where the
	access type entity has already been created as an E_Incomplete_Type due
	to a limited with clause.
	Use new Is_Standard_Character_Type predicate
	(Analyze_Object_Declaration): Apply access_constant check only after
	expression has been resolved, given that it may be overloaded with
	several access types.
	(Constant_Redeclaration): Additional legality checks for deferred
	constant declarations tha involve anonymous access types and/or null
	exclusion indicators.
	(Analyze_Type_Declaration): Set Optimize_Alignment flags
	(Analyze_Subtype_Declaration): Ditto
	(Analyze_Object_Declaration): Ditto
	(Analyze_Object_Declaration): Don't count tasks in generics
	Change name In_Default_Expression      => In_Spec_Expression
	Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
	Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
	(Process_Discriminants): Additional check for illegal use of default
	expressions in access discriminant specifications in a type that is not
	explicitly limited.
	(Check_Abstract_Overriding): If an inherited function dispaches on an
	access result, it must be overridden, even if the type is a null
	extension.
	(Derive_Subprogram): The formals of the derived subprogram have the
	names and defaults of the parent subprogram, even if the type is
	obtained from the actual subprogram.
	(Derive_Subprogram): In the presence of interfaces, a formal of an
	inherited operation has the derived type not only if it descends from
	the type of the formal of the parent operation, but also if it
	implements it. This is relevant for the renamings created for the
	primitive operations of the actual for a formal derived type.
	(Is_Progenitor): New predicate, to determine whether the type of a
	formal in the parent operation must be replaced by the derived type.

	* sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
	predicate recursive to handle components that have a user-defined
	Initialize procedure. Handle controlled derived types whose ancestor
	has a user-defined Initialize procedured.
	(Note_Possible_Modification): Add Sure parameter, generate warning if
	sure modification of constant
	Use new Is_Standard_Character_Type predicate
	(Find_Parameter_Type): when determining whether a protected operation
	implements an interface operation, retrieve the type of the formal from
	the entity when the formal is an access parameter or an
	anonymous-access-to-subprogram.
	Move Copy_Parameter_List to sem_util, for use when building stubbed
	subprogram bodies.
	(Has_Access_Values): Tagged types now return False
	(Within_HSS_Or_If): New procedure
	(Set_Optimize_Alignment_Flags): New procedure
	Change name In_Default_Expression      => In_Spec_Expression
	Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
	Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve

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

	* s-fileio.adb: Name_Error shouldn't be raised for a tempory file.

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

PR ada/10768

	* cuintp.c: Fix 16 bits issue for AVR.
	On AVR, integer is 16 bits, so it can't be used to do math with
	Base (=32768).
	So use long_integer instead.

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

	* a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
	System.OS_Primitives.
	Change type of various constants, parameters and local variables from
	Time to representation type OS_Time.
	(To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
	Remove the declaration of constant Mili_F from several routines. New
	body for internal package Conversions_Operations.
	(Time_Of): Add default parameters for several formals.

	* a-caldel.adb: Minor reformatting

	* a-calend.ads, a-calend.adb: New body for internal package
	Conversions_Operations.
	(Time_Of): Add default parameters for several formals.

	* Makefile.rtl: Add a-ststop
	Add Ada.Calendar.Conversions to the list of runtime files.
	Add g-timsta

	* a-calcon.adb, a-calcon.ads: New files.

2008-04-08  Jose Ruiz  <ruiz@adacore.com>
	    Tristan Gingold  <gingold@adacore.com>

	* s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
	(Install_Restricted_Handlers): New procedure
	which is a simplified version of Install_Handlers that does not store
	previously installed.

	* s-interr-vxworks.adb: Fix ACATS cxc3001
	On VxWorks interrupts can't be detached.
	(Install_Restricted_Handlers): New procedure.

	* s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
	procedure.

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

	* s-intman-vxworks.ads, s-intman-vxworks.adb
	(Map_And_Raise_Exception): Remove. Was an import of only part of the
	required services already implemented elsewhere.
	(Notify_Exception): Delete body, import __gnat_error_handler instead.
	(Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
	argument passed to the handler, which we need for ZCX propagation
	purposes.

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

	* adaint.h, adaint.c (__gnat_current_time_string): New routine.

	* g-timsta.adb, g-timsta.ads: New files.

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

	* a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
	(Raise_Exception): In accordance with AI-446, raise CE for Null_Id
	(Raise_Exception_Always): Fix documentation accordingly

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

	* a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
	Stream_Convert)

	* sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
	FOnly

2008-04-08  Javier Miranda  <miranda@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* a-tags.adb (Register_Interface_Offset): New subprogram.
	(Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
	(To_Predef_Prims_Table_Ptr): Removed.
	(Acc_Size): Removed.
	(To_Acc_Size): Removed.
	(Parent_Size): Modified to the call the subprogram returning the size of
	the parent by means of the new TSD component Size_Func.

	* a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
	(DT_Offset_To_Top_Offset): New constant value that is used to generate
	code referencing the Offset_To_Top component of the dispatch table's
	prologue.
	(Prim_Ptr): New declaration of access to procedure. Used to avoid the
	use of 'address to initialize dispatch table slots.
	(Size_Func): New component of the TSD. Used by the run-time to call the
	size primitive of the tagged type.

	* checks.adb (Apply_Access_Check): Avoid check when accessing the
	Offset_To_Top component of a dispatch table.
	(Null_Exclusion_Static_Checks): If the non-null access type appears in a
	deferred constant declaration. do not add a null expression, to prevent
	spurious errors when full declaration is analyzed.
	(Apply_Discriminant_Check): If both discriminant constraints share a
	node which is not static but has no side effects, do not generate a
	check for that discriminant.
	(Generate_Index_Checks): Set Name_Req to true in call to duplicate
	subexpr, since the prefix of an attribute is a name.

	* checks.ads: Fix nit in comment.

	* exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
	and body of predefined primitives in case of CPP tagged type
	derivations.
	(Freeze_Type): Deal properly with no storage pool case
	(Make_Predefined_Primitive_Specs): Generate specification of abstract
	primitive Deep_Adjust if a nonlimited interface is derived from a
	limited interface.
	(Build_Dcheck_Functions): Create discriminant-checking functions only
	for variants that have some component(s).
	(Build_Slice_Assignment): In expanded code for slice assignment, handle
	properly the case where the slice bounds extend to the last value of the
	underlying representation.
	(Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
	(Is_Variable_Size_Record): An array component has a static size if
	index bounds are enumeration literals.

	* exp_disp.adb (Make_DT): Use the first subtype to determine whether
	an external tag has been specified for the type.
	(Building_Static_DT): Add missing support for private types.
	(Make_DT): Add declaration of Parent_Typ to ensure consistent access
	to the entity associated with the parent of Typ. This is done to
	avoid wrong access when the parent is a private type.
	(Expand_Interface_Conversion): Improve error message when the
	configurable runtime has no support for dynamic interface conversion.
	(Expand_Interface_Thunk): Add missing support to interface types in
	configurable runtime.
	(Expand_Dispatching_Call): remove obsolete code.
	(Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
	ensure that all subtypes and aggregates associated with dispatch
	tables have the attribute Is_Dispatch_Table_Entity set to true.
	(Register_Primitive): Rename one variable to improve code reading.
	Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
	of the pointer to the 'size primitive in the TSD.

	* rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
	(RE_Offset_To_Top_Ptr): New entity.
	(RE_Register_Interface_Offset): New entity.
	(RE_Set_Dynamic_Offset_To_Top): New entity.
	(RE_Set_Offset_To_Top): Removed entity.
	(RE_Prim_Ptr): New entity
	(RE_Size_Func): New entity
	(RE_Size_Ptr): New entity
	(RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
	(Ada_Dispatching_Child): Define this new subrange.
	(RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
	 RE_Time_Span, and RE_Time_Span_Zero).
	(RE_Unit_Table): Add new required run-time calls

	* rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
	children.

	* exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
	(Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
	 initializes the Offset_To_Top component of a dispatch table.
	(Build_Predef_Prims): Removed.
	(Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
	 its actual code.
	(Build_Set_Size_Function): New subprogram.

	* exp_ch13.adb: Do not generate storage variable for storage_size zero
	(Expand): Handle setting/restoring flag Inside_Freezing_Actions

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

	* a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
	computing Fore when Exp > 0

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

	* back_end.adb: Remove Big_String_Ptr declarations (now in Types)

	* errout.adb: Remove Big_String_Ptr declarations (now in Types)
	Change name Is_Style_Msg to Is_Style_Or_Info_Msg

	* fmap.adb: Remove Big_String declarations (now in Types)
	(No_Mapping_File): New Boolean global variable
	(Initialize): When mapping file cannot be read, set No_Mapping_File to
	False.
	(Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
	tables were empty before adding entries, open the mapping file
	with Truncate = True, instead of delete/re-create.

	* fname-sf.adb: Remove Big_String declarations (now in Types)

	* s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
	s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
	big pointer types

	* table.ads: Add for Table_Ptr'Storage_Size use 0

	* types.ads: Add Big_String declarations
	Add Size_Clause of zero for big pointer types

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

	* clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
	(Usage): Add line for switch --subdirs=
	Add new switch -eL, to follow symbolic links when processing project
	files.

	* gnatcmd.adb: Process switches -eL and --subdirs=
	(Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
	Program_Name to get proper tool names when AAMP_On_Target is set.
	(Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
	AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
	Osint.Program_Name).

	* gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
	(Usage): Add lines for switches -eL and --subdirs=

	* makeusg.adb: Add line for switch --subdirs=

	* prj.ads:
	(Source_Data): New Boolean component Compiled, defaulted to True
	(Empty_File_Name: New global variable in private part, initialized in
	procedure Initialize.
	(Subdirs_Option): New constant string
	(Subdirs): New String_Ptr global variable
	(Language_Config): New component Include_Compatible_Languages
	(Project_Qualifier): New type for project qualifiers
	(Project_Data): New component Qualifier
	(Project_Configuration): New component Archive_Builder_Append_Option

	* prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
	another imported project indicate the name of this imported project.
	(Check_File): When a unit is in two project files, indicate the project
	names and the paths of the source files for each project.
	(Add_Source): Set Compiled to False if compiler driver is empty. Only
	set object, dependency and switches file names if Compiled is True.
	(Process_Compiler): Allow the empty string for value of attribute Driver
	(Get_Directories): When Subdirs is not null and Object_Dir is not
	 specified, locate and create if necessary the actual object dir.
	(Locate_Directory): When Subdirs is not empty and Create is not the
	empty string, locate and create if necessary the actual directory
	as a subdirectory of directory Name.
	(Check_Library_Attributes.Check_Library): Allow a project where the only
	"sources" are header files of file based languages to be imported by
	library projects, in multi-language mode (gprbuild).
	(Check_Library_Attributes.Check_Library): In multi-language mode
	(gprbuild), allow a library project to import a project with no
	sources, even when this is not declared explicitly.
	(Check_If_Externally_Built): A virtual project extending an externally
	built project is also externally built.
	(Check_Library_Attributes): For a virtual project extending a library
	project, inherit the library directory.
	(Process_Project_Level_Array_Attributes): Process new attribute
	Inherit_Source_Path.
	For projects with specified qualifiers "standard", "library" or
	"abstract", check that the project conforms to the qualifier.
	(Process_Project_Level_Simple_Attributes): Process new attribute
	 Archive_Builder_Append_Option.

	* switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
	(Normalize_Compiler_Switches): Only keep compiler switches that are
	passed to gnat1 by the gcc driver and that are stored in the ALI file
	by gnat1.
	Do not take into account switc -save-temps

	* makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
	gprmake is called with -eL.
	(Scan_Arg): Recognize switch -eL
	(Usage): Add line for switch -eL

	* prj.adb (Initialize): Initialize Empty_File_Name
	(Project_Empty): New component Qualifier

	* prj-attr.ads, prj-attr.adb: New project level attribute
	Inherit_Source_Path.
	New project level attribute Archive_Builder_Append_Option

	* prj-dect.adb: Replace System.Strings by GNAT.Strings.

	* prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
	<prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
	upward compatibility.

	* prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
	each Trying ..." on different lines.
	(Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
	is "configuration" when not in configuration. Fail when in configuration
	when a specified qualifier is other than "configuration".

	* prj-proc.adb (Process_Declarative_Items): Link new elements of copied
	full associative array together.
	(Recursive_Process): Put the project qualifier in the project data

	* prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
	(Set_Project_Qualifier_Of): New procedure

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

	* errout.ads: Update comments for new handling of info: messages

	* erroutc.adb (Matches): New procedure
	(Warning_Specifically_Suppressed): Modified to handle multiple * chars
	(Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
	 info messages as well as style messages.

	* erroutc.ads: Remove unneeded fields from Specific_Warning_Entry

	* sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
	subprograms.
	(Check_A_Call): Special "info: " warnings now have ? in the text
	(Elab_Warning): Use info message in static case

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

	* exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
	whether an array aggregate with static bounds and scalar components
	should be expanded into a static constant.

2008-04-08  Gary Dismukes  <dismukes@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
	Has_Stream_Attribute_ Definition when checking for available stream
	attributes on parameters of a limited type in Ada 2005. Necessary for
	proper recognition of visible stream attribute clauses.
	(Has_Stream_Attribute_Definition): If the type is derived from a
	private type, then use the derived type's underlying type for checking
	whether it has stream attributes.
	(Validate_Object_Declaration): The check for a user-defined Initialize
	procedure applies also to types with controlled components or a
	controlled ancestor.
	Reject an object declaration in a preelaborated unit if the type is a
	controlled type with an overriding Initialize procedure.
	(Validate_Remote_Access_To_Class_Wide_Type): Return without further
	checking when the parent of a dereference is a selected component and
	the name has not been analyzed.

	* sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
	prefixes that are invalid explicit dereferences of remote
	access-to-class-wide values, first checking whether the selected
	component is a prefixed form of call to a tagged operation.
	(Analyze_Call): Remove code that issues an error for limited function
	calls in illegal contexts, as we now support all of the contexts that
	were forbidden here.
	Allow a function call that returns a task.and appears as the
	prefix of a selected component.
	(Analyze_Reference): Give error message if we try to make a 'Reference
	for an object that is atomic/aliased without its type having the
	corresponding attribute.
	(Analyze_Call): Remove condition checking for attributes to allow
	calls to functions with inherently limited results as prefixes of
	attributes. Remove related comment about Class attributes.
	(Analyze_Selected_Component): If the prefix is a remote type, check
	whether this is a prefixed call before reporting an error.
	(Complete_Object_Operation): If the controlling formal is an access to
	variable reject an actual that is a constant or an access to one.
	(Try_Object_Operation): If prefix is a tagged protected object,retrieve
	primitive operations from base type.

	* exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
	build-in-place
	function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
	(Expand_N_Selected_Component): Test for prefix that is a build-in-place
	function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
	(Expand_N_Slice): Test for prefix that is a build-in-place function call
	and call Make_Build_In_Place_Call_In_Anonymous_Context.
	(Analyze_Call): Remove code that issues an error for limited function
	calls in illegal contexts, as we now support all of the contexts that
	were forbidden here.
	New calling sequence for Get_Simple_Init_Val
	(Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
	(Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test

2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* exp_ch2.adb: Minor reformatting.
	(Expand_Entry_Index_Parameter): Set the type of the identifier.
	(Expand_Entry_Reference): Add call to Expand_Protected_Component.
	(Expand_Protected_Component): New routine.
	(Expand_Protected_Private): Removed.
	Add Sure parameter to Note_Possible_Modification calls

	* sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
	generated subprogram declaration must inherit the overriding indicator
	from the instantiation node.
	(Validate_Access_Type_Instance): If the designated type of the actual is
	a limited view, use the available view in all cases, not only if the
	type is an incomplete type.
	(Instantiate_Object):  Actual is illegal if the formal is null-excluding
	and the actual subtype does not exclude null.
	(Process_Default): Handle properly abstract formal subprograms.
	(Check_Formal_Package_Instance): Handle properly defaulted formal
	subprograms in a partially parameterized formal package.
	Add Sure parameter to Note_Possible_Modification calls
	(Validate_Derived_Type_Instance): if the formal is non-limited, the
	actual cannot be limited.
	(Collect_Previous_Instances): Generate instance bodies for subprograms
	as well.

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
	try to set RM_Size.
	Add Sure parameter to Note_Possible_Modification calls
	(Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
	(Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
	constant overlaid by variable and issue warning.
	Use new Is_Standard_Character_Type predicate
	(Analyze_Record_Representation_Clause): Check that the specified
	Last_Bit is not less than First_Bit - 1.
	(Analyze_Attribute_Definition_Clause, case Address): Check for
	self-referential address clause

	* sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
	detection mechanism when the lhs is a prival.
	(Analyze_Assignment): Call Check_Unprotected_Access to detect
	assignment of a pointer to protected data, to an object declared
	outside of the protected object.
	(Analyze_Loop_Statement): Check for unreachable code after loop
	Add Sure parameter to Note_Possible_Modication calls
	Protect analysis from previous syntax error such as a scope mismatch
	or a missing begin.
	(Analyze_Assignment_Statement): The assignment is illegal if the
	left-hand is an interface.

	* sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
	violation of restriction No_Implicit_Conditionals
	Add Sure parameter to Note_Possible_Modication calls
	Use new Is_Standard_Character_Type predicate
	(Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
	call as operator. Fixes problems (e.g. validity checking) which
	come from the result looking as though it does not come from source).
	(Resolve_Call): Check case of name in named parameter if style checks
	are enabled.
	(Resolve_Call): Exclude calls to Current_Task as entry formal defaults
	from the checking that such calls should not occur from an entry body.
	(Resolve_Call): If the return type of an Inline_Always function
	requires the secondary stack, create a transient scope for the call
	if the body of the function is not available for inlining.
	(Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
	that are actuals for in-out formals.
	(Try_Object_Operation): If prefix is a tagged protected object,retrieve
	primitive operations from base type.
	(Analyze_Selected_Component): If the context is a call to a protected
	operation the parent may be an indexed component prior to expansion.
	(Resolve_Actuals): If an actual is of a protected subtype, use its
	base type to determine whether a conversion to the corresponding record
	is needed.
	(Resolve_Short_Circuit): Handle pragma Check

	* sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
	Use new Is_Standard_Character_Type predicate
	(Eval_Relational_Op): Catch more cases of string comparison

2008-04-08  Robert Dewar  <dewar@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* s-rident.ads: Add No_Default_Initialization restriction

	* exp_tss.adb:
	(Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
	(Set_TSS): Handle No_Default_Initialization case

	* exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
	No_Default_Initialization
	(Expand_N_Subprogram_Body): Remove redundant initialization of out
	parameters when Normalize_Scalars is active.
	(Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
	Fix casing error in formal parameter name in call
	(Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
	(Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
	dispatching call on VM targets.

2008-04-08  Gary Dismukes  <dismukes@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

	* exp_ch7.adb (Find_Final_List): Change the test for generating a
	selected component from an access type's Associated_Final_Chain to
	check for the presence of that field, rather than assuming it exists
	for all named access types.
	(Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
	procedure to call at the end of the generated cleanup procedure.
	(Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
	and an At_End_Proc already exists in the handled sequence of statements
	for which cleanup actions are being expanded, the original cleanup
	action must be preserved.

2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
	Build_Unprotected_Subprogram_Body): Generate debug info for
	declarations related to the handling of private data in task and
	protected types.
	(Debug_Private_Data_Declarations): New subprogram.
	(Install_Private_Data_Declarations): Remove all debug info flagging.
	This is now done by Debug_Private_Data_Declarations at the correct
	stage of expansion.
	(Build_Simple_Entry_Call): If the task name is a function call, expand
	the prefix into an object declaration, and make the surrounding block a
	task master.
	(Build_Master_Entity): An internal block is a master if it wraps a call.
	Code reformatting, update comments. Code clean up.
	(Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
	(Replicate_Entry_Formals): If the formal is an access parameter or
	anonymous access to subprogram, copy the original tree to create new
	entities for the formals of the subprogram.
	(Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
	for tasks to store the value passed using pragma Relative_Deadline.
	(Make_Task_Create_Call): Add the Relative_Deadline argument to the
	run-time call to create a task.
	(Build_Wrapper_Spec): If the controlling argument of the interface
	operation is an access parameter with a non-null indicator, use the
	non-null indicator on the wrapper.

	* sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
	present, which it may not be in the case where the type entity is an
	incomplete view brought in by a limited with.
	(Analyze_Task_Type): Only retrieve the full view when present, which it
	may not be in the case where the type entity is an incomplete view brought
	in by a limited with.
	(Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
	private components of a protected type, to prevent the generation of freeze
	nodes for which there is no proper scope of elaboration.

	* exp_util.ads, exp_util.adb
	(Remove_Side_Effects): If the expression is a function call that returns a
	task, expand into a declaration to invoke the build_in_place machinery.
	(Find_Protection_Object): New routine.
	(Remove_Side_Effects): Also make a copy of the value
	for attributes whose result is of an elementary type.
	(Silly_Boolean_Array_Not_Test): New procedure
	(Silly_Boolean_Array_Xor_Test): New procedure
	(Is_Volatile_Reference): New function
	(Remove_Side_Effects): Use Is_Volatile_Reference
	(Possible_Bit_Aligned_Component): Handle slice case properly

	* exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
	case test to Exp_Util
	(Expand_Packed_Xor): Move silly true/true case test to Exp_Util

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

	* exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
	in call
	(Add_RACW_Features): When processing an RACW in another unit than the
	main unit, set Body_Decls to No_List to indicate that the bodies of
	the type's TSS must not be generated.
	(GARLIC_Support.Add_RACW_Read_Attribute,
	GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
	Body_Decls is No_List.
	(PolyORB_Support.Add_RACW_Read_Attribute,
	PolyORB_Support.Add_RACW_Write_Attribute,
	PolyORB_Support.Add_RACW_From_Any,
	PolyORB_Support.Add_RACW_To_Any,
	PolyORB_Support.Add_RACW_TypeCode): Same.
	(Transmit_As_Unconstrained): New function.
	(Build_Ordered_Parameters_List): Use the above to order parameters.
	(GARLIC_Support.Build_General_Calling_Stubs):
	Use the above to determine which parameters to unmarshall using 'Input
	at the point where their temporary is declared (as opposed to later on
	with a 'Read call).
	(PolyORB_Support.Build_General_Calling_Stubs):
	Use the above to determine which parameters to unmarshall using From_Any
	at the point where their temporary is declared (as opposed to later on
	with an assignment).

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

	* exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
	an Input function for an access type, do not perform default
	initialization on the local variable that receives the value, to
	prevent spurious warnings when the type is null-excluding.

2008-04-08  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* freeze.adb (Freeze_Entity): Improve warnings on access types in pure
	units.
	(Size_Known): Generic formal scalar types have known at compile
	time size, so remove check.
	Fix casing error in formal parameter name in call
	(Freeze_Subprogram): If the subprogram is a user-defined operator,
	recheck its overriding indication.

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

	* gnat1drv.adb: Send all messages indicating an error to standard error

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

	* gnatbind.adb (Restriction_Could_Be_Set): New procedure
	(List_Applicable_Restrictions): Do not list existing restrictions

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

	* g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
	add a pointer to generic sockets literature
	do not mention that the given example is "typical" usage.
	Remove obsolete comment about multicast not being supported on Windows.
	(Connect_Socket): Make Server mode IN rather than IN OUT
	since this formal is never modified.

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

	* sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
	the declaration for some different entity.
	(Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
	list is precent (following the parent subtype indication), display
	appropriate "and" keyword.

	* itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
	Remove unnecessary calls to Init_Size_Align and Init_Esize.
	Add notes on use of Parent field of an Itype

2008-04-08  Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* lib-xref.adb (Is_On_LHS): Remove dead code
	(Output_Overriden_Op): If the overridden operation is itself inherited,
	list the ancestor operation, which is the one whose body or absstract
	specification is actually being overridden. For source navigation
	purposes.

	* sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
	operation is primitive for the type.
	(Declare_Inherited_Private_Subprograms): If the new operation overrides
	an inherited private subprogram, set properly the Overridden_Operation
	attribute, for better cross-reference information.
	(Analyze_Package_Specification): Do late analysis of spec PPCs
	(Install_Private_Declaration, Uninstall_Declarations): Save/restore
	properly the full view and underlying full views of a private type in a
	child unit, whose full view is derived from a private type in a parent
	unit, and whose own full view becomes visible in the child body.

	* sem_disp.adb (Check_Dispatching_Operation): When a body declares a
	primitive operation after the type has been frozen, add an explicit
	reference to the type and the operation, because other primitive
	references have been emitted already.
	(Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
	dispatching call on VM targets.

2008-04-08  Vincent Celier  <celier@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>

	* make.adb: (Gnatmake_Called): Remove, no longer necessary
	(Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
	is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
	(Insert_Project_Sources): Take into account index in multi-unit source
	files.
	After building a library project, delete all temporary files.
	(Initialize): Reset current output after parsing project file.
	(Collect_Arguments_And_Compile): Never insert in the queue the sources
	of library projects that are externally built.
	Put file name in error and inform messages if -df is used
	(Display): If invoked with -d7, do not display path names, but only
	file names.

	* makeutl.ads (Path_Or_File_Name): New function
	(Path_Or_File_Name): New function

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

	* Make-lang.in: Disable warnings during first stage of bootstrap
	Get rid of gnatbl.
	Update dependencies.

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

	* mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
	case to decide if ALI object file is included in library.
	(Build_Library): Never attempt to build a library if the project is
	externally built.

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

	* nlists.adb (Is_Non_Empty_List): Remove redundant test. First
	(No_List) is defined to return Empty.

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

	* osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
	documentation.
	Update comments.
	(Read_Default_Search_Dirs): Do not consider spaces as path separators
	because spaces may be part of legal paths.

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

	* par-ch11.adb (P_Exception_Handler): Check indentation level for
	handler

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

	* par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
	in a type declaration, if this is not an interface declaration or
	private type extension.

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

	* prj-util.adb (Executable_Of): New String parameter Language. When
	Ada_Main is False and Language is not empty, attempt to remove the body
	suffix or the spec suffix of the language to get the base of the
	executable file name.
	(Put): New Boolean parameter Lower_Case, defauilted to False. When
	Lower_Case is True, put the value in lower case in the name list.
	(Executable_Of): If there is no executable suffix in the configuration,
	then do not modify Executable_Extension_On_Target.

	* prj-util.ads (Executable_Of): New String parameter Language,
	defaulted to the empty string.
	(Put): New Boolean parameter Lower_Case, defauilted to False

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

	* scng.adb (Scan_Identifier): Handle case of identifier starting with
	wide character using UTF-8 encoding.

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

	* sem.adb (Analyze): Consider case in which we analyze an empty node
	that was generated by a call to a runtime function that is not
	available under the configurable runtime.

	* sem.ads (Inside_Freezing_Actions): New flag.
	(Save_Check_Policy_List): New field in scope stack entry

2008-04-08  Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
	the ancestor part of an extension aggregate for a limited type.
	(Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
	enumeration index bounds.
	(Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
	when array is too short.
	(Check_Expr_OK_In_Limited_Aggregate): Move function
	Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
	change name).
	(Resolve_Array_Aggregate.Resolve_Aggr_Expr):
	Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
	component associations.
	(Check_Non_Limited_Type): Moved to outer level and renamed.
	(Resolve_Record_Aggregate): In an extension aggregate, an association
	with a box initialization can only designate a component of the
	extension, not a component inherited from the given ancestor

	* sem_case.adb: Use new Is_Standard_Character_Type predicate

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

	* s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
	negative scale
	(Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
	Properly handle case where Aft > Scale and input number is less than
	one.

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

	* s-stoele.ads, s-soflin.ads: Move the location of
	Dummy_Communication_Block from System.Storage_Elements to
	System.Soft_Links.

	* s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
	emulate Communication_Block in certain scenarios.

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

	* s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
	subprogram.
	Add new subtype S_WWC, unchecked conversion routines From_WWC and
	To_WWC.
	(I_WWC, O_WWC): New routines for input and output of
	Wide_Wide_Character.

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

	* stringt.adb (Write_String_Table_Entry): Handle wide characters
	properly

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

	* styleg.adb (Check_Comment): Allow special char after -- in
	non-end-of-line case

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

	* stylesw.adb: Implement -gnaty + - y options
	(Set_GNAT_Style_Check_Options): Includ I in style check string

	* stylesw.ads: Add comments for new style switch options

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

	* tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
	to the set of the GNAT components needed by ASIS.

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

	* types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).

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

	* vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
	Improve error message generation.

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

	* a-direct.adb (Start_Search): Check for Name_Error before checking for
	Use_Error, as specified in the RM. Check if directory is open and raise
	Use_Error if it is not.

2008-04-08  Vincent Celier  <celier@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
	AAMP_On_Target is set.

	* vms_data.ads: Add NOxxx to style check switch list
	Add entry COMPONENTS for -gnatVe
	Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
	(/SUBDIRS=).
	(GCC_Switches): Add /ALL_BACK_END_WARNINGS.
	Add qualifiers for gnatmetric coupling options
	Add note that -gnata enables all checks
	Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
	Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
	New warning flag -gnatw.e

	* usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
	Add entry for -gnatyN (forgotten before)
	Line for new warning switch -gnatw.p
	New warning flag -gnatw.e

	* gnat_ugn.texi: Add documentation fpr project file switch -aP
	Document -gnaty - + y
	Replace occurences of "package specification" with "package spec"
	Define preprocessing symbols in documentation of gnatprep
	Clarify reason for distinguishing overflow checking
	Add documentation for project-aware tool switches -eL and --subdirs=
	Complete list of configuration pragmas
	Specify that, even when gnatmake switch -x is used, mains on the command
	line need to be sources of project files.
	Editing of gnatcheck/gnatmetric doc.
	Add documentation for -gnatw.p/-gnatw.P
	Add missing documentation for -fno-inline-functions.
	Add documentation for -gnatw.e

	* gnat_rm.texi: Add documentation for No_Default_Initialization
	Replace occurences of "package specification" with "package spec"
	Document use of * in Warnings Off string
	Update documentation of alignment/component clauses.
	Add documentation for Invalid_Value
	Document new consistency rule for Optimize_Alignment
	Add documentation for Precondition and Postcondition pragmas
	Add documentation for Check and Check_Policy pragmas
	Document new Enum_Val attribute
	Remove requirement for static string in pragma Assert
	Add documentation on GNAT.Time_Stamp

	* ug_words: add entry for -gnatVe
	Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
	Add entry for -gnatw.e

	* debug.adb: Add missing documentation for d.a flag
	Document new -gnatd.a switch.
	Add documentation for new gnatmake debug switch -df

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

	* gen-soccon.c: Bump year in copyright notices.

	* g-soccon-vxworks.ads: Add new constant IP_PKTINFO

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

	* ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
	Minor reformatting.

2008-04-08  Robert Dewar  <dewar@adacore.com>
	    Bob Duff  <duff@adacore.com>

	* impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
	Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp

	* s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly

	* g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly

	* g-trasym.ads: Minor comment improvements

	* s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly

	* a-sequio.ads, a-direio.ads: improve message for tagged type

	* a-strunb.ads: Minor reformatting

	* a-tifiio.adb: Minor reformatting

	* atree.adb (Fix_Parents): Use clearer names for formals
	Cleanup and simplify code
	Use named notation in calls

	* exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
	confusing calls

	* uintp.adb: Used named notation for some confusing calls

	* bindusg.adb: Minor change in one line of output

	* cstand.adb: Minor reformatting of src representation of Standard

	* a-assert.ads: Add comment.

	* g-decstr.adb: Fix bad indentation

	* expander.ads, expander.adb: Code clean up.

	* sem_dist.ads: Minor comment improvement

	* sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
	s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting

	* i-cstrin.adb: Fix casing error in formal parameter name in call

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

	* binde.adb (Gather_All_Links, Gather_Dependencies): units that are
	mentioned in limited_with_clauses to do create semantic dependencies
	even though they appear in the ali file.

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

	* g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
	statement.
	(Get_Configuration): New subprogram.

	* prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
	These optional parameters help preserve the casing of the project's name
	when pretty-printing.

2008-04-08  Jerome Lambourg  <lambourg@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
	then use __gnat_set_exit_status to report the returned status code.

	* comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
	messages on .NET, since some constructs of the language are not
	properly supported.

	* gnatlink.adb (Gnatlink): In case the command line is too long for the
	.NET linker, gnatlink now concatenate all .il files and pass this to
	ilasm.

2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
	    Xavier Grave  <grave@ipno.in2p3.fr>

	* Makefile.in: Add make ifeq define for mips/mipsel support.
	* g-soccon-linux-mips.ads, system-linux-mipsel.ads,
	system-linux-mips.ads: New files.

2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>

	* sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
	detect systems using GNU libc.
	* gsocket.h: ditto.
	* socket.c: ditto.
	* adaint.c: ditto.
	* link.c: ditto.

2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>

	* s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
	constant constant for sysconf call.
	(bit_field): New packed boolean type used by cpu_set_t.
	(cpu_set_t): New type corresponding to the C type with
	the same name. Note that on the Ada side we use a bit
	field array for the affinity mask. There is not need
	for the C macro for setting individual bit.
	(pthread_setaffinity_np): New imported routine.
	* Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
	on GNU/kFreeBSD.

2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>

	* utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.

2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>

	* gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
	* decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
	* utils.c (create_subprog_type): Remove returns_with_dsp parameter.
	* trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
	Return by Depressed Stack Pointer.

2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (is_variable_size): Do not unconditionally return false
	on non-strict alignment platforms.

2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (rest_of_type_decl_compilation_no_defer): New local function
	used to process all the variants of the specified type.
	(gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
	types too.  Call rest_of_type_decl_compilation_no_defer if undeferring.
	(rest_of_type_decl_compilation): Likewise.
	* utils.c (gnat_pushdecl): Propagate the name to all variants of type.

2008-04-03  Paolo Bonzini  <bonzini@gnu.org>

	* gigi.h (insert_block): Kill.
	* utils.c (insert_block): Kill.

2008-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
	type has self-referential size, get the size from the initializing
	expression directly if it is also a constant whose nominal type
	has self-referential size.

2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>

	PR ada/33688
	* g-soccon-darwin.ads: Define new constant IP_PKTINFO.

	PR ada/33857
	* env.c: Always include crt_externs.h if __APPLE__ is defined.
	(__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.

2008-04-01  Andreas Jaeger  <aj@suse.de>

	* g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
	IP_PKTINFO.

2008-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* g-table.adb, g-tasloc.adb, g-traceb.ads,
	g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
	gnatbind.adb, gnatchop.adb, gnatcmd.adb,
	gnatcmd.ads, gnatdll.adb, gnatfind.adb,
	gnatlink.adb, gnatmem.adb, gprep.adb,
	i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
	i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
	layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
	lib-xref.ads, lib.adb, link.c, live.ads,
	make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
	mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
	misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
	mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
	namet.adb, namet.h, nlists.adb, nlists.ads,
	nlists.h, opt.ads, osint-b.ads, osint-c.adb,
	osint-c.ads, osint.adb, osint.ads, output.ads,
	par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
	par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
	par-endh.adb, par-labl.adb, par-prag.adb,
	par-sync.adb, par-tchk.adb, par-util.adb,
	par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
	prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
	prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
	prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.

2008-03-31  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
	size if it has overflowed.

2008-03-31  Olivier Hainque  <hainque@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* utils2.c (find_common_type): Document assumption on t1/t2 vs
	lhs/rhs. Force use of lhs type if smaller, whatever the modes.

2008-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
	einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
	exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
	exp_pakd.ads, exp_prag.adb, exp_smem.adb,
	exp_tss.ads, exp_util.adb, exp_util.ads,
	exp_vfpt.adb, freeze.adb, freeze.ads,
	frontend.adb, g-alleve.adb, g-altcon.adb,
	g-altive.ads, g-alveop.ads, g-alvevi.ads,
	g-arrspl.adb, g-busorg.ads, g-calend.adb,
	g-calend.ads, g-casuti.ads, g-cgideb.adb,
	g-comlin.adb, g-comlin.ads, g-curexc.ads,
	g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
	g-dirope.adb, g-dirope.ads, g-dynhta.ads,
	g-dyntab.adb, g-encstr.ads, g-excact.ads,
	g-except.ads, g-expect.ads, g-heasor.adb,
	g-hesora.adb, g-hesorg.adb, g-htable.ads,
	g-locfil.ads, g-md5.adb, g-md5.ads,
	g-memdum.ads, g-moreex.ads, g-os_lib.adb,
	g-pehage.adb, g-pehage.ads, g-regexp.adb,
	g-regexp.ads, g-regpat.adb, g-regpat.ads,
	g-soccon-aix.ads, g-soccon-darwin.ads,
	g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
	g-soccon-hpux.ads, g-soccon-irix.ads,
	g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
	g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
	g-soccon-mingw.ads, g-soccon-solaris-64.ads,
	g-soccon-solaris.ads, g-soccon-tru64.ads,
	g-soccon-vms.ads, g-soccon-vxworks.ads,
	g-soccon.ads, g-socket.adb, g-socket.ads,
	g-socthi-mingw.adb, g-socthi-vms.adb,
	g-socthi-vxworks.adb, g-soliop-mingw.ads,
	g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
	g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
	typos.

2008-03-27  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
	if the procedure is imported.

2008-03-26  Arnaud Charlet  <charlet@adacore.com>

	* adaint.c: Fix warnings.

2008-03-26  Arnaud Charlet  <charlet@adacore.com>

	* g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.

2008-03-26  Arnaud Charlet  <charlet@adacore.com>

	* a-witeio.adb: Fix problem with Current_Output (introduce Self).
	Fix problem of status check for null file

2008-03-26  Arnaud Charlet  <charlet@adacore.com>

	* s-proinf-irix-athread.ads, s-vxwork-mips.ads,
	s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
	s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
	i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
	s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
	comments.

2008-03-26  Thomas Quinot  <quinot@adacore.com>

	PR ada/33688
	* g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
	Get_Socket_Option): Add support for Receive_Packet_Info.

	* g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
	g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
	g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
	g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
	g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
	new constants SO_REUSEPORT and IP_PKTINFO

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
	a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
	a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
	a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
	a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
	a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
	s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
	s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
	a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
	s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
	s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
	s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
	s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
	s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
	s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
	s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
	s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
	s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
	s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
	s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
	a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
	a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
	s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
	s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
	s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
	s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
	s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
	a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
	a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
	s-tasloc.adb: Minor reformatting.
	Update comments.
	Remove "used for" sections from comments.

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
	s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
	s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
	s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
	s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
	a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
	a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
	a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
	a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
	a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
	a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
	i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
	a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
	s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
	s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
	double spaced if it fits on one line and otherwise single spaced.

2008-03-26  Arnaud Charlet  <charlet@adacore.com>

	* s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
	s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
	s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
	or task info if the thread could not be created.

2008-03-26  Arnaud Charlet  <charlet@adacore.com>

	* gnatvsn.ads (Library_Version): Bump to 4.4.
	(Current_Year): Bump to 2008.

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record

	* bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure

	* debug.adb: Add debug flags d.r and d.v
	Add debug flag .T (Optimize_Alignment (Time))
	Add debug flag .S (Optimize_Alignment (Space))

	* freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
	depending on setting of relevant debug flags.
	Replace use of Warnings_Off by Has_Warnings_Off
	(Freeze_Entity): In circuit for warning on suspicious convention
	actuals, do not give warning if subprogram has same entity as formal
	type, or if subprogram does not come from source.
	(Freeze_Entity): Don't reset Is_Packed for fully rep speced record
	if Optimize_Alignment set to Space.

	* frontend.adb: Add call to Sem_Warn.Initialize
	Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
	Reset Optimize_Alignment mode from debug switches .S and .T

	* layout.adb (Layout_Composite_Object): Rewritten for
	Optimize_Aligment pragma.

	* lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
	mode.

	* opt.ads, opt.adb: (Optimize_Alignment): New global switch

	* par-prag.adb (N_Pragma): Chars field removed, use Chars
	(Pragma_Identifier (..  instead, adjustments throughout to accomodate
	this change. Add entry for pragma Optimize_Alignment

	* sem_prag.adb (N_Pragma): Chars field removed, use Chars
	(Pragma_Identifier (..
	instead, adjustments throughout to accomodate this change.
	(Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
	(Favor_Top_Level): Use new function Is_Access_Subprogram_Type
	Add implementation of pragma Optimize_Alignment

2008-03-26  Vincent Celier  <celier@adacore.com>

	* a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
	Improve memory usage to avoid use of stack.

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* a-teioed.ads: Correct value of Default_Fill

	* a-teioed.adb (Image): Use Fill_Character instead of '*' to fill

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
	with Current_Output (introduce Self).

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* checks.adb (Ensure_Valid): Capture valid status if possible
	(eliminate checks)

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* stand.ads: Deal with reordering of package standard declarations

	* cstand.adb: Put package Standard declarations in proper order

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
	(Pragma_Identifier (.. instead.
	(OK_To_Reorder_Components): New flag
	(Has_Entries): Code cleanup.
	(Warnings_Off_Used): New flag
	(Warnings_Off_Used_Unmodified): New flag
	(Warnings_Off_Used_Unreferenced): New flag
	(Has_Warnings_Off): New function
	(Has_Unmodified): New function
	(Has_Unreferenced): New function
	(Is_Trivial_Subprogram): New flag
	(Is_Static_Dispatch_Table_Entity): New attribute.
	Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
	(more consistent with other similar names)
	(Access_Subprogram_Type): New classification function

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* errout.ads: Document new !! insertion sequence

	* errout.adb (N_Pragma): Chars field removed, use Chars
	(Pragma_Identifier (..  instead.
	Replace use of Warnings_Off by Has_Warnings_Off
	(Error_Msg_Internal): Don't delete warning ending in !!

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* par.adb (Check_No_Right_Paren): Removed no longer used

	* par-ch10.adb (N_Pragma): Chars field removed, use Chars
	(Pragma_Identifier (..  instead.

	* par-ch10.adb (P_Subunit): Improvement in error recovery and message

	* par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
	par-ch4.adb: Minor improvements in error recovery and messages.

	* erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
	non-serious

	* par-ch9.adb: Minor improvements in error recovery and messages
	(P_Protected): Better error recovery for "protected type x;"

	* par-util.adb: Minor improvements in error recovery and messages
	(Check_No_Right_Paren): Removed no longer used

2008-03-26  Ed Schonberg  <schonberg@adacore.com>

	* exp_aggr.adb (Replace_Type): When checking for self-reference, verify
	that the prefix of an attribute is the type of the aggregate being
	expanded.

2008-03-26  Javier Miranda  <miranda@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* exp_attr.adb (N_Pragma): Chars field removed.
	(Expand_N_Attribute_Reference): If the designated type associated with
	attribute 'Unrestricted_Access is a subprogram entity then replace it
	by an E_Subprogram_Type itype.
	Implement attribute Old

	* sem_attr.ads (Attribute_Class_Array): Move to snames.ads

	* sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
	Replace call to
	New_Internal_Entity by call to Create_Itype to centralize calls
	building itypes, ad propagate the convention of the designated
	subprogram. In addition, disable the machinery cleaning constant
	indications from all entities in current scope when 'Unrestricted_Access
	corresponds with a node initializing a dispatch table slot.
	(Analyze_Attribute): Parameterless attributes returning a string or a
	type will not be called with improper arguments, so we can remove junk
	code that was dealing with this case.
	Implement attribute Old

	* snames.ads, snames.h, snames.adb: Add entries for attribute Old
	Add entry for pragma Optimize_Alignment
	New standard names Sync and Synchronize

2008-03-26  Robert Dewar  <dewar@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
	stmt.
	(No_Exception_Propagation_Active): New function.
	(Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
	Update comments, and review all uses of No_Exception_Propagation, which
	are now correct and in sync with what gigi expects.

	* restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
	function.
	(Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
	Update comments, and review all uses of No_Exception_Propagation, which
	are now correct and in sync with what gigi expects.

2008-03-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Access_Definition): If the access type is the return
	result of a protected function, create an itype reference for it
	because usage will be in an inner scope from the point of declaration.
	(Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
	OK_To_Reorder_Components.
	(Make_Index): If an overloaded range includes a universal integer
	interpretation, resolve to Standard.Integer.
	(Analyze_Subtype_Indication): Copy Convention to subtype
	(Check_Abstract_Interfaces): Complete semantic checks on the legality of
	limited an synchronized progenitors in type declaration and private
	extension declarations.

	* exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
	protected subprogram body, determine proper scope from subprogram
	declaration.

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
	No_Run_Time_Mode

2008-03-26  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
	of a heap allocator for a limited unconstrained function return when
	resstriction No_Allocators is active.
	(Analyze_Allocator): The restriction No_Allocators is now only checked
	on allocators that have Comes_From_Source set, as per RM-H.4(7).

	* sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
	of a heap allocator for a limited unconstrained function return when
	resstriction No_Allocators is active.
	(Analyze_Allocator): The restriction No_Allocators is now only checked
	on allocators that have Comes_From_Source set, as per RM-H.4(7).
	(Has_Fixed_Op):  If the name in a function call is Standard."*" and the
	operands are fixed-point types, the universal_fixed predefined operation
	is used, regardless of whether the operand type (s) have a primitive
	operation of the same name.

2008-03-26  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
	Is_Static_Dispatch_Table
	(Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
	to Exchange_Declarations to exchange the private and full-view. Bug
	found working in this issue.
	(Expand_Dispatching_Call): Propagate the convention of the subprogram
	to the subprogram pointer type.
	(Make_Secondary_DT): Replace generation of Prim'Address by
	Address (Prim'Unrestricted_Access)
	(Make_DT): Replace generation of Prim'Address by
	Address (Prim'Unrestricted_Access)
	(Make_Disp_*_Bodies): When compiling for a restricted profile, use
	simple call form for single entry.
	(Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
	tables of predefined primitives).
	(Make_Secondary_DT): Add support to handle access to dispatch tables of
	predefined primitives.
	(Make_Tags): Add entities to Access_Dispatch_Table associated with
	access to dispatch tables containing predefined primitives.

	* exp_ch6.adb (N_Pragma): Chars field removed, use Chars
	(Pragma_Identifier (..  instead, adjustments throughout to accomodate
	this change.
	(Register_Predefined_DT_Entry): Updated to handle the new contents
	of attribute Access_Disp_Table (pointers to dispatch tables containing
	predefined primitives).

	* exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
	subprogram.
	(Find_Interface_ADT): Updated to skip the new contents of attribute
	Access_Dispatch_Table (pointers to dispatch tables containing predefined
	primitives).

	* sem_util.adb (Has_Abstract_Interfaces): Add missing support for
	concurrent types.
	(Set_Convention): Use new function Is_Access_Subprogram_Type
	(Collect_Interfaces_Info): Updated to skip the new contents of attribute
	Access_Dispatch_Table (pointers to dispatch tables containing predefined
	primitives).

	* exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
	expanded code avoiding calls to Build_Predef_Prims.
	(Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
	call to Build_Get_Predefined_Prim_Op_Address.

2008-03-26  Javier Miranda  <miranda@adacore.com>

	* exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
	subprogram Corresponding_Runtime_Package to know the runtime package
	that will provide support to a given protected type.

	* exp_ch9.adb (Add_Private_Declarations,
	Build_Protected_Subprogram_Call,
	Build_Protected_Entry, Build_Simple_Entry_Call,
	Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
	Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
	cleanup using the new centralized subprogram Corresponding_Runtime
	Package to know the runtime package that provides support to
	a given protected type.

2008-03-26  Ed Schonberg  <schonberg@adacore.com>

	* exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
	assignment is within the initialization procedure for a packed array,
	and Initialize_Scalars is enabled, compile right-hand side with checks
	off, because the value is purposely out of range.

2008-03-26  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb: Add processing for GNAT SYNC

	* vms_conv.ads: (Command_Type): Add command Sync

	* vms_conv.adb (Initialize): Add Command_List data for new command Sync

	* vms_data.ads: Add entries for -gnatw.w
	Add qualifier for gnatstub --header-file option
	Add switches for GNAT SYNC

	* prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
	(Add_Package_Name): New procedure
	(Package_Name_List): New function
	(Initialize): Add known package names to the list
	(Register_New_Package): Add the new package name to the list

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
	s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
	Raise_Exception by "raise with" construct.

2008-03-26  Pascal Obry  <obry@adacore.com>

	* Makefile.in: Add proper GNAT.Serial_Communications implementation on
	supported platforms.

	* Makefile.rtl: Add g-sercom.o.

	* impunit.adb: Add g-sercom.adb.

	* s-crtl.ads (open): New routine.
	(close): Likewise.
	(write): Likewise.

	* s-osinte-mingw.ads (BYTE): New type.
	(CHAR): Likewise.
	(OVERLAPPED): Likewise.
	(GENERIC_READ): New constant.
	(GENERIC_WRITE): Likewise.
	(OPEN_EXISTING): Likewise.
	(PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
	type instead.
	(CreateFile): New routine.
	(WriteFile): Likewise.
	(ReadFile): Likewise.
	(CloseHandle): Move next to the other file oriented routines.

	* g-sercom.ads: New unit.

	* g-sercom.adb: Default implementation, calls to this unit will raise
	a program error exception.

	* g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
	GNU/Linux implementations.

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind

	* sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
	unchecked conversion for different conventions only for subprogram
	pointers or on VMS.

2008-03-26  Vincent Celier  <celier@adacore.com>

	* osint-c.adb (Set_Library_Info_Name): Use canonical case file names
	to check if the specified object file is correct.

2008-03-26  Thomas Quinot  <quinot@adacore.com>

	* sem_cat.adb (Validate_RACW_Primitives): Do not rely on
	Comes_From_Source to exclude primitives from being checked. We want to
	exclude predefined primitives only, so use the appropriate specific
	predicate. Also, flag a formal parameter of an anonymous
	access-to-subprogram type as illegal for a primitive operation of a
	remote access to class-wide type.

2008-03-26  Vincent Celier  <celier@adacore.com>

	* prj-dect.adb (Parse_Package_Declaration): When a package name is not
	known, check if it may be a missspelling of a known package name. In
	not verbose, not mode, issue warnings only if the package name is a
	possible misspelling.
	In verbose mode, always issue a warning for a not known package name,
	plus a warning if the name is a misspelling of a known package name.

	* prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
	limited withs or limited withs are parse during one call.
	(Parse_Single_Project): Post parse context clause in two passes: non
	limited withs before current project and limited withs after current
	project.

	* prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
	project with the name With_Name, even if it is only extended indirectly.
	(Recursive_Process): Process projects in order: first single withs, then
	current project, then limited withs.

	* prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
	project with the name With_Name, even if it is only extended indirectly.

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* scn.adb (Initialize_Scanner): Format messages belong on standard error

2008-03-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
	a generic subprogram that is imported, do not attempt to compile
	non-existent body.

	* sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
	imported, do not generate a raise_program_error for the non-existent
	body.
	(Pre_Analyze_Actuals): If an error is detected during pre-analysis,
	perform minimal name resolution on the generic to avoid spurious
	warnings.
	(Find_Actual_Type): the designated type of the actual in a child unit
	may be declared in a parent unit without being an actual.

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
	* sinfo.ads, sinfo.adb (From_At_End): New flag

2008-03-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
	operations that have an interface parameter.
	(Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
	Don't treat No_Return call as raise.

	* sem_disp.adb (Check_Dispatching_Operations): apply check for
	non-primitive interface primitives to access parameters, not to all
	parameters of an access type.

2008-03-26  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch7.adb (Install_Parent_Private_Declarations): If the private
	declarations of a parent unit are made visible when compiling a child
	instance, the parent is not a hidden open scope, even though it may
	contain other pending instance.

	* sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
	hidden open scope for some child instance, it does affect the
	visibility status of other stach entries.
	(Analyze_Object_Renaming): Check that a class-wide object cannot be
	renamed as an object of a specific type.

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
	recursion and raise SE directly.
	(Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
	set for formal type for IN mode parameter.

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
	(Initialize): New procedure
	(Output_Warnings_Off_Warnings): New procedure
	(Check_References): Suppress certain msgs if Is_Trivial_Subprogram
	(Output_Non_Modifed_In_Out_Warnings): Ditto
	(Warn_On_Unreferenced_Entity): Ditto

2008-03-26  Vincent Celier  <celier@adacore.com>

	* a-direct.adb (Start_Search): Raise Use_Error if the directory is not
	readable.

2008-03-26  Matthew Heaney  <heaney@adacore.com>

	* a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
	a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
	Marked with clauses as private, and controlled operations as overriding

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* back_end.adb, back_end.ads: Minor reformatting

	* bindgen.adb: Minor clarification of comments

	* fname.ads: Minor comment fixes

	* g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
	prj-nmsc.adb, sem_aggr.adb: Minor reformatting

	* xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
	xsnames.adb: Remove warnings off pragma no longer needed

	* a-catizo.ads, a-calari.ads, a-calfor.adb,
	a-calfor.ads: Fix header.

2008-03-26  Tristan Gingold  <gingold@adacore.com>

	* init.c: Do not adjust pc for HPARITH on alpha/vms.

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* lib-xref.adb: (OK_To_Set_Reference): New function
	(Generate_Reference): Don't set referenced from occurrence in Warnings,
	Unmodified, or Unreferenced pragma

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* alloc.ads: Add entries for Warnings_Off_Pragmas table

2008-03-26  GNAT Script  <nobody@adacore.com>

	* Make-lang.in: Makefile automatically updated

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
	par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
	removed, use Chars (Pragma_Identifier (..  instead, adjustments
	throughout to accomodate this change.

	* s-pooglo.ads, s-pooloc.ads: Minor comment updates

	* exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
	Einfo.Set_Needs_Debug_Info)

2008-03-26  Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
	Add description for the new gnatstub option '--header-file'
	clarification of -gnatwz/-gnatwZ
	Add a "Irix-Specific Considerations" section to document the need to
	set LD_LIBRARY_PATH when using the default shared runtime library.
	Added documentation for both gcov and gprof.

	* gnat_rm.texi: Document that pragma Compile_Time_Warning generates
	messages that are not suppressed when clients are compiled.
	Add documentation of s-pooglo s-pooloc
	Document the new GNAT.Serial_Communications API.
	Add documentation for 'Old attribute
	Add description of pragma Optimize_Alignment

	* ug_words: Add entries for -gnatw.w -gnatw.W

	* usage.adb: Add line for -gnatw.w (warn on warnings off)

2008-03-25  Eric Botcazou  <ebotcazou@adacore.com>

	Revert
	2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
	PR ada/35186
	* decl.c (maybe_pad_type): Avoid padding an integral type when
	bumping its alignment is sufficient.

2008-03-25  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch6.adb, exp_disp.adb: Update copyright notice.
	Fix wrong formatting (lines too long)

2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
	a-calend-vms.adb, a-calend.adb, a-calend.ads,
	a-calfor.adb, a-chahan.ads, a-chtgke.adb,
	a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
	a-cohama.ads, a-comlin.ads, a-coorse.adb,
	a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
	a-except-2005.ads, a-except.adb, a-except.ads,
	a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
	a-exextr.adb, a-filico.ads, a-finali.ads,
	a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
	a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
	a-sequio.ads, a-strbou.ads, a-strfix.adb,
	checks.adb, exp_ch3.adb, exp_ch4.adb,
	exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
	exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
	exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
	exp_dbug.ads, exp_disp.adb, exp_dist.adb,
	exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.

2008-03-24  Robert Dewar  <dewar@adacore.com>

	* s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
	s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
	s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
	s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
	s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
	a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
	a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
	a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
	a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
	a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
	a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
	i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
	a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
	s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
	s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
	double spaced if it fits on one line and otherwise single spaced.

2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR documentation/15479
	* Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
	(doc/gnat_ugn_unw.texi): ... this, and adjusted.
	(doc/gnat_ugn.info): Renamed from ...
	(doc/gnat_ugn_unw.info): ... this.
	(doc/gnat_ugn.dvi): Renamed from ...
	(doc/gnat_ugn_unw.dvi): ... this.
	(doc/gnat_ugn.pdf): Renamed from ...
	(doc/gnat_ugn_unw.pdf): ... this.
	(ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
	Adjusted.
	* gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
	unconditionally to gnat_ugn.info.  Fix cross references to the
	GNAT Reference Manual.  Convert links to the GCC, GDB, Emacs,
	and GNU make manuals to be proper texinfo links.
	* gnat_rm.texi: Fix cross references to the GNAT User's Guide.

2008-03-21  Olivier Hainque  <hainque@adacore.com>

	* trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
	? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).

2008-03-21  Eric Botcazou  <ebotcazou@adacore.com>

	* trans.c (addressable_p): Add notes on addressability issues.

2008-03-21  Olivier Hainque  <hainque@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* trans.c (addressable_p): Accept COND_EXPR when both arms
	are addressable.
	(gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
	(call_to_gnu): Do not use name reference in the error message
	for a misaligned by_reference_parameter. The actual may be a
	general expression.

2008-03-18  Paolo Bonzini  <bonzini@gnu.org>

	* misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.

2008-03-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* gnat_rm.texi (Implementation Defined Characteristics)
	(Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
	appropriate.
	* gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
	(Switches for gnatchop, Installing a library): Likewise.

2008-03-10  Eric Botcazou  <ebotcazou@adacore.com>

	* trans.c (emit_range_check): Do not emit the check if the base type
	of the expression is the type against which its range must be checked.

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

	* decl.c (maybe_pad_type): Use value_factor_p.

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

	* lang.opt (nostdlib): Move around.
	* misc.c (gnat_handle_option): Fix formatting.
	(gnat_dwarf_name): Move around.
	* trans.c (Case_Statement_to_gnu): Fix formatting.
	(gnat_to_gnu): Likewise.
	* utils.c (aggregate_type_contains_array_p): Likewise.
	(create_subprog_decl): Likewise.

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

	* decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
	bother propagating the TYPE_USER_ALIGN flag when creating a JM type.

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

	* decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
	BIGGEST_ALIGNMENT when capping the alignment of records with
	strict alignment and size clause.

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

	* lang-specs.h: Pass -gnatwa if -Wall is passed.
	* misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
	and -Wuninitialized.
	(gnat_post_options): Clear warn_unused_parameter.

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

	* utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
	aligned bit-fields, bumping the alignment of the record type if deemed
	profitable.
	(value_factor_p): Return false instead of 0.

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

	* decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
	for scalar types with small alignment.

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

	* trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
	from that of the front-end's end label.
	(gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
	from that of the loop label.

2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
	comment for the packed array type case.
	* utils.c (build_template): Use a loop to strip padding or
	containing records for justified modular types.

2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
	large alignments specified for types.
	(validate_alignment): Minor cleanup.

2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
	(gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
	the component for packing, if possible, as well as if a component
	size clause is specified.
	<E_Record_Subtype>: For an array type used to implement a packed
	array, get the component type from the original array type.
	Try to get a smaller form of the component for packing, if possible,
	as well as if a component size clause is specified.
	(round_up_to_align): New function.
	(make_packable_type): Add in_record parameter.
	For a padding record, preserve the size.  If not in_record and the
	size is too large for an integral mode, attempt to shrink the size
	by lowering the alignment.
	Ditch the padding bits of the last component.
	Compute sizes and mode manually, and propagate the RM size.
	Return a BLKmode record type if its size has shrunk.
	(maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
	Use Original_Array_Type to retrieve the type in case of an error.
	Adjust call to make_packable_type.
	(gnat_to_gnu_field): Likewise.
	(concat_id_with_name): Minor tweak.
	* trans.c (larger_record_type_p): New predicate.
	(call_to_gnu): Compute the nominal type of the object only if the
	parameter is by-reference.  Do the conversion actual type -> nominal
	type if the nominal type is a larger record.
	(gnat_to_gnu): Do not require integral modes on the source type to
	avoid the conversion for types with identical names.
	(addressable_p): Add gnu_type parameter.  If it is specified, do not
	return true if the expression is not addressable in gnu_type.
	Adjust recursive calls.
	* utils.c (finish_record_type): Remove dead code.

2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/35186
	* decl.c (maybe_pad_type): Avoid padding an integral type when
	bumping its alignment is sufficient.

2008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
	* s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
	statement.
	* a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
	gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
	sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
	code output strings.
	* sem_type.adb, system-vms-ia64.ads, system-vms.ads,
	system-vms_64.ads: Fix typos in ada source code comments.
	* sinfo-cn.adb: Remove incomplete sentence.

	PR documentation/15479
	* gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.

2008-02-27  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/22255
	* s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.

2008-02-27  Samuel Tardieu  <sam@rfc1149.net>

	PR ada/34799
	* sem_ch13.adb (Analyze_Record_Representation_Clause): Check
	that underlying type is present.

2008-02-26  Tom Tromey  <tromey@redhat.com>

	* misc.c (internal_error_function): Remove test of
	USE_MAPPED_LOCATION.
	* trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
	(Sloc_to_locus): Remove old location code.

2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	* gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
	`i.e.' by adding comma or `@:' as appropriate.
	* gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
	plain characters `C', use `@samp{C}'.
	* gnat_ugn.texi (File Naming Rules, About gnatkr)
	(Krunching Method): Likewise.

	* gnat_ugn.texi (Conventions): List environment variables and
	metasyntactic variables.
	(Compiling Programs): Fix notation of metasyntactic variables.
	Add @file where appropriate.  Use @file for file extensions,
	@samp for strings.
	* gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
	instead of @file, @env instead of @code.

2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR documentation/15479
	* gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
	and `...' with `@dots{}' or `@enddots{}'.

	PR documentation/15479
	* gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
	use @command instead of @code, @option instead of @samp or @code,
	@code instead of @var, @samp instead of @file.

	PR documentation/15479
	* gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
	in Makefile rules, by using `&&' rather than `;'.

2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

	PR documentation/15479
	* gnat_ugn.texi: In non-code, avoid space before colon.
	(Regular Expressions in gnatfind and gnatxref): Fix indentation.
	(Examples of gnatxref Usage): Use @command{vi} instead of
	@file{vi}.
	(Character Set Control): Do not use @code for UTF-8.
	(Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
	use @code for IEEE.
	* gnat_rm.texi (Aggregates with static bounds): Fix typo in code
	sample.
	* gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.

2008-02-11  Joel Sherrill  <joel.sherrill@oarcorp.com>

	PR ada/35143
	* env.c: Add __rtems__ to if defined.
	* s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
	* s-osinte-rtems.ads: Add To_Target_Priority prototype and
	PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
	pragma Convention as required.
	* gsocket.h: Make compile in and out of RTS.
	* Makefile.in: Add system-rtems.ads.  Build DEC extensions.
	Use g-soccon-rtems.ads.
	* g-soccon-rtems.ads, system-rtems.ads: New files.

2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	PR other/35107
	* Make-lang.in (gnat1): Add $(GMPLIBS).

2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (components_to_record): Improve comment.

2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (components_to_record): Do not reuse the empty union type
	if there is a representation clause on the record.
	* trans.c (addressable_p): Return true for INTEGER_CST.

2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>

	* trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
	in pointer arithmetics.
	* utils2.c (build_allocator): Likewise.

2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>

	* utils.c (build_function_stub): Properly build the call expression.

2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>

	* decl.c (gnat_to_gnu_entity) <object>: Process renamings
	before converting the expression to the type of the object.
	* trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
	Stabilize constructors for special wrapping types.

2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>

	* trans.c (call_to_gnu): Invoke the addressable_p predicate only
	when necessary.  Merge some conditional statements.  Update comments.
	Rename unchecked_convert_p local variable to suppress_type_conversion.
	Do not suppress conversions in the In case.
	(addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
	into account on non strict-alignment platforms.

2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>

	* utils.c (aggregate_type_contains_array_p): New predicate.
	(create_field_decl): In a packed record, force byte alignment
	for fields without specified position that contain an array.

2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>

	* utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.

2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>

	PR ada/34466
	* s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
	sysconf call.
	(bit_field): New packed boolean type used by cpu_set_t.
	(cpu_set_t): New type corresponding to the C type with
	the same name. Note that on the Ada side we use a bit
	field array for the affinity mask. There is not need
	for the C macro for setting individual bit.
	(pthread_setaffinity_np): New imported routine.

2008-01-03  Tero Koskinen  <tero.koskinen@iki.fi>

	PR ada/34647
	* adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
	on OpenBSD as is done on other BSD systems.

	PR ada/34645
	* sysdep.c (__gnat_ttyname, getc_immediate_nowait,
	getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
	I/O.

	PR ada/34644
	* env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
	clearenv().

	PR ada/34646
	* init.c (__gnat_error_handler, __gnat_install_handler,
	__gnat_init_float): Define for OpenBSD.

	* initialize.c (__gnat_initialize): Define for OpenBSD.



Copyright (C) 2008 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.