gcc/gcc/ada checks.adb checks.ads einfo.ads ex ...

charlet@gcc.gnu.org charlet@gcc.gnu.org
Mon Mar 29 17:52:00 GMT 2004


CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	charlet@gcc.gnu.org	2004-03-29 12:03:31

Modified files:
	gcc/ada        : checks.adb checks.ads einfo.ads exp_ch3.adb 
	                 exp_ch5.adb exp_ch6.adb exp_ch9.adb 
	                 exp_util.ads fname.adb fname.ads fname-sf.adb 
	                 fname-uf.adb fname-uf.ads gnat1drv.adb lib.adb 
	                 lib.ads lib-load.adb lib-writ.adb Make-lang.in 
	                 memtrack.adb opt.ads osint.adb osint.ads 
	                 osint-c.adb par.adb par-ch10.adb par-ch3.adb 
	                 par-ch4.adb par-ch6.adb par-load.adb 
	                 par-prag.adb prj-makr.adb prj-part.adb 
	                 sem_aggr.adb sem_ch12.adb sem_ch3.adb 
	                 sem_ch4.adb sem_ch5.adb sem_ch6.adb 
	                 sem_prag.adb sem_res.adb sem_util.adb 
	                 sfn_scan.adb sfn_scan.ads sinfo.adb sinfo.ads 
	                 sinput-l.adb sinput-l.ads sprint.adb 
	                 switch-c.adb ChangeLog 

Log message:
	2004-03-29  Javier Miranda  <miranda@gnat.com>
	
	* checks.adb (Null_Exclusion_Static_Checks): New subprogram
	(Install_Null_Excluding_Check): Local subprogram that determines whether
	an access node requires a runtime access check and if so inserts the
	appropriate run-time check.
	(Apply_Access_Check): Call Install_Null_Excluding check if required
	(Apply_Constraint_Check): Call Install_Null_Excluding check if required
	
	* checks.ads: (Null_Exclusion_Static_Checks): New subprogram
	
	* einfo.ads: Fix typo in comment
	
	* exp_ch3.adb (Build_Assignment): Generate conversion to the
	null-excluding type to force the corresponding run-time check.
	(Expand_N_Object_Declaration): Generate conversion to the null-excluding
	type to force the corresponding run-time check.
	
	* exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
	the null-excluding type to force the corresponding run-time check.
	
	* exp_ch6.adb (Expand_Call): Do not generate the run-time check in
	case of access types unless they have the null-excluding attribute.
	
	* sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
	part.
	
	* exp_util.ads: Fix typo in comment
	
	* par.adb (P_Null_Exclusion): New subprogram
	(P_Subtype_Indication): New formal that indicates if the null-excluding
	part has been scanned-out and it was present
	
	* par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
	
	* sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
	(Aggregate_Constraint_Checks): Generate conversion to the null-excluding
	type to force the corresponding run-time check
	(Resolve_Aggregate): Propagate the null-excluding attribute to the array
	components
	(Resolve_Array_Aggregate): Carry out some static checks
	(Resolve_Record_Aggregate.Get_Value): Carry out some static check
	
	* sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
	attribute must be set only if specified by means of the null-excluding
	part. In addition, we must also propagate the access-constant attribute
	if present.
	(Access_Subprogram_Declaration, Access_Type_Declaration,
	Analyze_Component_Declaration, Analyze_Object_Declaration,
	Array_Type_Declaration, Process_Discriminants,
	Analyze_Subtype_Declaration): Propagate the null-excluding attribute
	and carry out some static checks.
	(Build_Derived_Access_Type): Set the null-excluding attribute
	(Derived_Type_Declaration, Process_Subtype): Carry out some static
	checks.
	
	* sem_ch4.adb (Analyze_Allocator): Carry out some static checks
	
	* sem_ch5.adb (Analyze_Assignment): Carry out some static checks
	
	* sem_ch6.adb (Process_Formals): Carry out some static checks.
	(Set_Actual_Subtypes): Generate null-excluding subtype if the
	null-excluding part was present; it is not required to be done here in
	case of anonymous access types.
	(Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
	value.
	
	* sem_res.adb (Resolve_Actuals): Carry out some static check
	(Resolve_Null): Allow null in anonymous access
	
	* sinfo.adb: New subprogram Null_Exclusion_Present
	All_Present and Constant_Present available on access_definition nodes
	
	* sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
	object_declaration, derived_type_definition, component_definition,
	discriminant_specification, access_to_object_definition,
	access_function_definition, allocator, access_procedure_definition,
	access_definition, parameter_specification, All_Present and
	Constant_Present flags available on access_definition nodes.
	
	2004-03-29  Robert Dewar  <dewar@gnat.com>
	
	* fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
	gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
	opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
	par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
	sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
	sem_prag.adb: Updates to handle multiple units/file
	
	* par.adb: Change test for s-rpc to s-rp for detecting rpc and children
	
	* par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
	sem_util.adb: Minor reformatting
	
	* sem_ch12.adb: Add comment for previous change
	
	2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
	
	* osint.adb (Executable_Prefix): Set Exec_Name to the current
	executable name when not initialized. Otherwise, use its current value.
	
	* osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
	initialize it to another executable name than the current one. This
	allows to configure paths for an executable name (gnatmake) different
	from the current one (gnatdist).
	
	2004-03-29  Ed Schonberg  <schonberg@gnat.com>
	
	* exp_ch6.adb (Expand_Call): A call to a function declared in the
	current unit cannot be inlined if it appears in the body of a withed
	unit, to avoid order of elaboration problems in gigi.
	
	* exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
	information for protected (wrapper) operation as well, to simplify gdb
	use.
	
	* sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
	protected body, indicate that the entity for the generated spec comes
	from source, to ensure that references are properly generated for it.
	(Build_Body_To_Inline): Do not inline a function that returns a
	controlled type.
	
	* sem_prag.adb (Process_Convention): If subprogram is overloaded, only
	apply convention to homonyms that are declared explicitly.
	
	* sem_res.adb (Make_Call_Into_Operator): If the operation is a function
	that renames an equality operator and the operands are overloaded,
	resolve them with the declared formal types, before rewriting as an
	operator.
	
	2004-03-29  GNAT Script  <nobody@gnat.com>
	
	* Make-lang.in: Makefile automatically updated

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/checks.adb.diff?cvsroot=gcc&r1=1.16&r2=1.17
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/checks.ads.diff?cvsroot=gcc&r1=1.7&r2=1.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/einfo.ads.diff?cvsroot=gcc&r1=1.19&r2=1.20
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/exp_ch3.adb.diff?cvsroot=gcc&r1=1.19&r2=1.20
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/exp_ch5.adb.diff?cvsroot=gcc&r1=1.17&r2=1.18
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/exp_ch6.adb.diff?cvsroot=gcc&r1=1.22&r2=1.23
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/exp_ch9.adb.diff?cvsroot=gcc&r1=1.19&r2=1.20
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/exp_util.ads.diff?cvsroot=gcc&r1=1.10&r2=1.11
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/fname.adb.diff?cvsroot=gcc&r1=1.5&r2=1.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/fname.ads.diff?cvsroot=gcc&r1=1.5&r2=1.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/fname-sf.adb.diff?cvsroot=gcc&r1=1.4&r2=1.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/fname-uf.adb.diff?cvsroot=gcc&r1=1.11&r2=1.12
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/fname-uf.ads.diff?cvsroot=gcc&r1=1.7&r2=1.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/gnat1drv.adb.diff?cvsroot=gcc&r1=1.11&r2=1.12
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/lib.adb.diff?cvsroot=gcc&r1=1.9&r2=1.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/lib.ads.diff?cvsroot=gcc&r1=1.10&r2=1.11
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/lib-load.adb.diff?cvsroot=gcc&r1=1.10&r2=1.11
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/lib-writ.adb.diff?cvsroot=gcc&r1=1.16&r2=1.17
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/Make-lang.in.diff?cvsroot=gcc&r1=1.80&r2=1.81
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/memtrack.adb.diff?cvsroot=gcc&r1=1.9&r2=1.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/opt.ads.diff?cvsroot=gcc&r1=1.13&r2=1.14
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/osint.adb.diff?cvsroot=gcc&r1=1.17&r2=1.18
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/osint.ads.diff?cvsroot=gcc&r1=1.12&r2=1.13
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/osint-c.adb.diff?cvsroot=gcc&r1=1.5&r2=1.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/par.adb.diff?cvsroot=gcc&r1=1.9&r2=1.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/par-ch10.adb.diff?cvsroot=gcc&r1=1.9&r2=1.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/par-ch3.adb.diff?cvsroot=gcc&r1=1.12&r2=1.13
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/par-ch4.adb.diff?cvsroot=gcc&r1=1.11&r2=1.12
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/par-ch6.adb.diff?cvsroot=gcc&r1=1.7&r2=1.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/par-load.adb.diff?cvsroot=gcc&r1=1.7&r2=1.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/par-prag.adb.diff?cvsroot=gcc&r1=1.10&r2=1.11
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/prj-makr.adb.diff?cvsroot=gcc&r1=1.7&r2=1.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/prj-part.adb.diff?cvsroot=gcc&r1=1.16&r2=1.17
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/sem_aggr.adb.diff?cvsroot=gcc&r1=1.12&r2=1.13
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/sem_ch12.adb.diff?cvsroot=gcc&r1=1.35&r2=1.36
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/sem_ch3.adb.diff?cvsroot=gcc&r1=1.33&r2=1.34
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/sem_ch4.adb.diff?cvsroot=gcc&r1=1.14&r2=1.15
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/sem_ch5.adb.diff?cvsroot=gcc&r1=1.12&r2=1.13
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/sem_ch6.adb.diff?cvsroot=gcc&r1=1.13&r2=1.14
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/sem_prag.adb.diff?cvsroot=gcc&r1=1.23&r2=1.24
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/sem_res.adb.diff?cvsroot=gcc&r1=1.22&r2=1.23
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/sem_util.adb.diff?cvsroot=gcc&r1=1.23&r2=1.24
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/sfn_scan.adb.diff?cvsroot=gcc&r1=1.5&r2=1.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/sfn_scan.ads.diff?cvsroot=gcc&r1=1.4&r2=1.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/sinfo.adb.diff?cvsroot=gcc&r1=1.15&r2=1.16
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/sinfo.ads.diff?cvsroot=gcc&r1=1.22&r2=1.23
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/sinput-l.adb.diff?cvsroot=gcc&r1=1.7&r2=1.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/sinput-l.ads.diff?cvsroot=gcc&r1=1.6&r2=1.7
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/sprint.adb.diff?cvsroot=gcc&r1=1.16&r2=1.17
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/switch-c.adb.diff?cvsroot=gcc&r1=1.10&r2=1.11
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/ChangeLog.diff?cvsroot=gcc&r1=1.469&r2=1.470



More information about the Gcc-cvs mailing list