Commit Graph

86771 Commits

Author SHA1 Message Date
Anatoly Sokolov
5d9b8bb411 avr.h (TARGET_CPU_CPP_BUILTINS): Define __AVR_HAVE_EIJMP_EICALL__ macro if...
* config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
	__AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
	instructions.
	* config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
	atmega103 device.

From-SVN: r134069
2008-04-08 11:00:50 +04:00
Arnaud Charlet
d563d3f0e6 Resync.
From-SVN: r134068
2008-04-08 09:00:08 +02:00
Arnaud Charlet
7053a60fd9 * Makefile.in: Remove handling of gnatbl.
From-SVN: r134067
2008-04-08 08:58:58 +02:00
Jerome Lambourg
c96597bfe5 bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function...
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.

From-SVN: r134066
2008-04-08 08:58:12 +02:00
Emmanuel Briot
77e5104283 g-comlin.ads, [...] (Expansion): Remove unreachable return statement.
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.

From-SVN: r134065
2008-04-08 08:58:02 +02:00
Ed Schonberg
7dbc8918c6 binde.adb (Gather_All_Links, [...]): units that are mentioned in limited_with_clauses to do create semantic...
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.

From-SVN: r134064
2008-04-08 08:57:48 +02:00
Robert Dewar
efde9617b1 impunit.adb: Add Interfaces.Java.JNI...
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, 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

From-SVN: r134063
2008-04-08 08:57:39 +02:00
Eric Botcazou
2fe53bf5a4 ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>

	* ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
	Minor reformatting.

From-SVN: r134062
2008-04-08 08:57:27 +02:00
Thomas Quinot
189e353b30 gen-soccon.c: Bump year in copyright notices.
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

From-SVN: r134061
2008-04-08 08:57:18 +02:00
Vincent Celier
1a5f40e1b8 vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when AAMP_On_Target is set.
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

From-SVN: r134060
2008-04-08 08:57:10 +02:00
Vincent Celier
daa5998b84 a-direct.adb (Start_Search): Check for Name_Error before checking for Use_Error, as specified in the RM.
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.

From-SVN: r134059
2008-04-08 08:56:58 +02:00
Tristan Gingold
0962490626 vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
2008-04-08  Tristan Gingold  <gingold@adacore.com>

	* vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
	Improve error message generation.

From-SVN: r134058
2008-04-08 08:56:49 +02:00
Bob Duff
1b449f6d98 types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
2008-04-08  Bob Duff  <duff@adacore.com>

	* types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).

From-SVN: r134057
2008-04-08 08:56:36 +02:00
Sergey Rybin
cd0463fef3 tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux to the set of the GNAT...
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.

From-SVN: r134056
2008-04-08 08:56:27 +02:00
Robert Dewar
3017937417 stylesw.adb: Implement -gnaty + - y options
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

From-SVN: r134055
2008-04-08 08:56:20 +02:00
Robert Dewar
5723833553 styleg.adb (Check_Comment): Allow special char after -- in non-end-of-line case
2008-04-08  Robert Dewar  <dewar@adacore.com>

	* styleg.adb (Check_Comment): Allow special char after -- in
	non-end-of-line case

From-SVN: r134054
2008-04-08 08:56:09 +02:00
Robert Dewar
54e1f2f0df stringt.adb (Write_String_Table_Entry): Handle wide characters properly
2008-04-08  Robert Dewar  <dewar@adacore.com>

	* stringt.adb (Write_String_Table_Entry): Handle wide characters
	properly

From-SVN: r134053
2008-04-08 08:55:57 +02:00
Hristian Kirtchev
9147cc0be7 s-strxdr.adb, [...] (Block_IO_OK): New subprogram.
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.

From-SVN: r134052
2008-04-08 08:55:45 +02:00
Hristian Kirtchev
7f8b32d541 s-stoele.ads, [...]: Move the location of Dummy_Communication_Block from System.Storage_Elements to...
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.

From-SVN: r134051
2008-04-08 08:55:36 +02:00
Robert Dewar
fc5c20afff s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with negative scale
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.

From-SVN: r134050
2008-04-08 08:55:17 +02:00
Ed Schonberg
ca44152fc5 sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for the ancestor part of an extension aggregate for a...
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

From-SVN: r134049
2008-04-08 08:55:06 +02:00
Javier Miranda
f89b7956cb sem.adb (Analyze): Consider case in which we analyze an empty node that was generated by a call to...
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

From-SVN: r134048
2008-04-08 08:54:53 +02:00
Robert Dewar
7f2401a678 scng.adb (Scan_Identifier): Handle case of identifier starting with wide character using UTF-8 encoding.
2008-04-08  Robert Dewar  <dewar@adacore.com>

	* scng.adb (Scan_Identifier): Handle case of identifier starting with
	wide character using UTF-8 encoding.

From-SVN: r134047
2008-04-08 08:54:43 +02:00
Vincent Celier
141e448f5e prj-util.adb (Executable_Of): New String parameter Language.
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

From-SVN: r134046
2008-04-08 08:54:31 +02:00
Ed Schonberg
8bc65441c9 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.

From-SVN: r134045
2008-04-08 08:54:13 +02:00
Robert Dewar
15bac09ddb par-ch11.adb (P_Exception_Handler): Check indentation level for handler
2008-04-08  Robert Dewar  <dewar@adacore.com>

	* par-ch11.adb (P_Exception_Handler): Check indentation level for
	handler

From-SVN: r134044
2008-04-08 08:54:03 +02:00
Jose Ruiz
c4dec83faf osint.ads, osint.adb (Get_Libraries_From_Registry): Improve documentation.
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.

From-SVN: r134043
2008-04-08 08:53:51 +02:00
Thomas Quinot
3f088c35ec nlists.adb (Is_Non_Empty_List): Remove redundant test.
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.

From-SVN: r134042
2008-04-08 08:53:42 +02:00
Vincent Celier
dba1712345 mlib-prj.adb (Build_Library): Compare with ALI file name in canonical case to decide if...
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.

From-SVN: r134041
2008-04-08 08:53:22 +02:00
Arnaud Charlet
4bb2bd7c0e Make-lang.in: Disable warnings during first stage of bootstrap Get rid of gnatbl.
* Make-lang.in: Disable warnings during first stage of bootstrap
	Get rid of gnatbl.
	Update dependencies.

From-SVN: r134040
2008-04-08 08:53:10 +02:00
Vincent Celier
189641a279 make.adb: (Gnatmake_Called): Remove, no longer necessary
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

From-SVN: r134039
2008-04-08 08:52:51 +02:00
Ed Schonberg
f7d5442e99 lib-xref.adb (Is_On_LHS): Remove dead code
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.

	* 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.

From-SVN: r134038
2008-04-08 08:52:41 +02:00
Robert Dewar
99cf6c77d0 sprint.adb (Write_Itype): Handle Itypes whose Parent field points to the declaration for some different...
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

From-SVN: r134037
2008-04-08 08:52:20 +02:00
Thomas Quinot
64f7d845ef g-socket.ads, [...]: Improve documentation of GNAT.Sockets...
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.

From-SVN: r134036
2008-04-08 08:52:09 +02:00
Robert Dewar
4dcfaf779c gnatbind.adb (Restriction_Could_Be_Set): New procedure
2008-04-08  Robert Dewar  <dewar@adacore.com>

	* gnatbind.adb (Restriction_Could_Be_Set): New procedure
	(List_Applicable_Restrictions): Do not list existing restrictions

From-SVN: r134035
2008-04-08 08:51:54 +02:00
Vincent Celier
8f3366c607 gnat1drv.adb: Send all messages indicating an error to standard error
2008-04-08  Vincent Celier  <celier@adacore.com>

	* gnat1drv.adb: Send all messages indicating an error to standard error

From-SVN: r134034
2008-04-08 08:51:42 +02:00
Robert Dewar
c6a9797ed4 freeze.adb (Freeze_Entity): Improve warnings on access types in pure units.
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.

From-SVN: r134033
2008-04-08 08:51:27 +02:00
Ed Schonberg
9cf50493b2 exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is an Input function for an access type...
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.

From-SVN: r134032
2008-04-08 08:51:16 +02:00
Thomas Quinot
7f0b5314c4 exp_dist.ads, [...]: Fix casing error in formal parameter name in call
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).

From-SVN: r134031
2008-04-08 08:51:05 +02:00
Hristian Kirtchev
65df5b7194 exp_ch9.ads, [...] (Build_Protected_Entry, [...]): Generate debug info for declarations related to the handling of private data in...
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

From-SVN: r134030
2008-04-08 08:50:51 +02:00
Gary Dismukes
dcfa065d7c exp_ch7.adb (Find_Final_List): Change the test for generating a selected component from an access type's...
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.

From-SVN: r134029
2008-04-08 08:50:34 +02:00
Robert Dewar
70f9118087 s-rident.ads: Add No_Default_Initialization restriction
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.

From-SVN: r134028
2008-04-08 08:50:21 +02:00
Hristian Kirtchev
45fc7ddb49 exp_ch2.adb: Minor reformatting.
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.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

From-SVN: r134027
2008-04-08 08:50:04 +02:00
Gary Dismukes
b459216877 sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of Has_Stream_Attribute_ Definition when...
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

From-SVN: r134026
2008-04-08 08:49:47 +02:00
Ed Schonberg
fc534c1c80 exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine whether an array aggregate with static bounds...
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.

From-SVN: r134025
2008-04-08 08:49:26 +02:00
Robert Dewar
2dcf2584db errout.ads: Update comments for new handling of info: messages
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

From-SVN: r134024
2008-04-08 08:49:13 +02:00
Vincent Celier
68c3f02a68 clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
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

From-SVN: r134023
2008-04-08 08:48:54 +02:00
Robert Dewar
a1e2130ca1 back_end.adb: Remove Big_String_Ptr declarations (now in Types)
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

From-SVN: r134022
2008-04-08 08:48:30 +02:00
Robert Dewar
2d7756fa26 a-ztdeau.adb, [...] (Puts_Dec): Fix error in computing Fore when Exp > 0
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

From-SVN: r134021
2008-04-08 08:48:07 +02:00
Javier Miranda
f2cbd97008 a-tags.adb (Register_Interface_Offset): New subprogram.
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

From-SVN: r134020
2008-04-08 08:47:55 +02:00