87437 Commits

Author SHA1 Message Date
Hristian Kirtchev
08de96f033 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".

From-SVN: r135634
2008-05-20 14:48:30 +02:00
Hristian Kirtchev
caebb7c302 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".

From-SVN: r135633
2008-05-20 14:48:03 +02:00
Robert Dewar
23e6615e0f opt.ads (Treat_Restrictions_As_Warnings): New switch
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

From-SVN: r135632
2008-05-20 14:47:49 +02:00
Arnaud Charlet
604b5bcb17 * 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.

From-SVN: r135631
2008-05-20 14:47:34 +02:00
Tristan Gingold
36cee502f3 init.c: Enable stack probing on ppc-linux.
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.

From-SVN: r135630
2008-05-20 14:47:13 +02:00
Vincent Celier
8bfa6c2fa3 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.

From-SVN: r135629
2008-05-20 14:47:03 +02:00
Ed Schonberg
d677afa958 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.

From-SVN: r135628
2008-05-20 14:46:54 +02:00
Kevin Pouget
7052f54e62 exp_smem.ads, [...]: Construction of access and assign routines has been replaced by an...
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.

From-SVN: r135627
2008-05-20 14:46:42 +02:00
Thomas Quinot
25e9b6fe27 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.

From-SVN: r135626
2008-05-20 14:46:31 +02:00
Javier Miranda
5b7dd52da8 exp_disp.adb (Make_DT, [...]): Avoid generating dispatch tables of locally defined tagged types statically.
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.

From-SVN: r135625
2008-05-20 14:46:19 +02:00
Hristian Kirtchev
d4817e3fbf exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent and the derived type are of the same kind.
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.

From-SVN: r135624
2008-05-20 14:46:06 +02:00
Vincent Celier
4f469be30b prj.adb (Hash (Project_Id)): New function
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

From-SVN: r135623
2008-05-20 14:45:54 +02:00
Ed Schonberg
3ddca46273 exp_ch5.adb (Expand_Assign_Record): Within an initialization procedure for a derived type retrieve the discriminant...
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.

From-SVN: r135622
2008-05-20 14:45:38 +02:00
Gary Dismukes
d70d147e3c 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.

From-SVN: r135621
2008-05-20 14:45:27 +02:00
Javier Miranda
7e5ce5a8c4 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.

From-SVN: r135620
2008-05-20 14:45:15 +02:00
Robert Dewar
685094bfde re PR ada/30740 (Improper semantics in gnat's compilation of certain expressions involving modular arithmetic)
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.

From-SVN: r135619
2008-05-20 14:44:55 +02:00
Tristan Gingold
e7841bacf5 decl.c: Do not emit a variable for a object that has an address representation clause...
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.

From-SVN: r135618
2008-05-20 14:44:43 +02:00
Vincent Celier
5b6a0e43da cstand.adb (Print_Standard): Issue the correct Size clause for type Wide_Wide_Character.
2008-05-20  Vincent Celier  <celier@adacore.com>

	* cstand.adb (Print_Standard): Issue the correct Size clause for type
	Wide_Wide_Character.

From-SVN: r135617
2008-05-20 14:44:33 +02:00
Robert Dewar
ec2dd67a4e checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate overflow if result converted to wider integer type.
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.

From-SVN: r135616
2008-05-20 14:44:23 +02:00
Robert Dewar
57f56c63cb ali.adb: Correct casing of ASCII.NUL
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.

From-SVN: r135615
2008-05-20 14:44:12 +02:00
Arnaud Charlet
0e5b1d0b49 re PR ada/24533 (FAIL: a85013b: *** glibc detected *** free(): invalid pointer: 0x00062a00 ***)
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

From-SVN: r135614
2008-05-20 14:43:59 +02:00
Santiago Uruena
342c987b28 i-cobol.ads: Interfaces.COBOL should be preelaborate.
2008-05-20  Santiago Uruena  <uruena@adacore.com>

	* i-cobol.ads: Interfaces.COBOL should be preelaborate.

From-SVN: r135613
2008-05-20 14:43:44 +02:00
Thomas Quinot
f983388f04 Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
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

From-SVN: r135612
2008-05-20 14:43:29 +02:00
Richard Guenther
0190265374 tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
2008-05-20  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-reassoc.c (fini_reassoc): Use the statistics
	infrastructure.
	* tree-ssa-sccvn.c (process_scc): Likewise.
	* tree-ssa-sink.c (execute_sink_code): Likewise.
	* tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
	* tree-vrp.c (process_assert_insertions): Likewise.
	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
	(perform_tree_ssa_dce): Likewise.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
	(dump_dominator_optimization_stats): Likewise.
	* tree-vectorizer.c (vectorize_loops): Likewise.

	* gcc.dg/tree-ssa/ssa-sink-1.c: Adjust.
	* gcc.dg/tree-ssa/ssa-sink-2.c: Likewise.
	* gcc.dg/tree-ssa/ssa-sink-3.c: Likewise.
	* gcc.dg/tree-ssa/ssa-sink-4.c: Likewise.

From-SVN: r135611
2008-05-20 12:34:06 +00:00
Sandra Loosemore
e13a4010af 20061214-1.c: New test.
2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/testsuite/
	* gcc.c-torture/compile/20061214-1.c: New test.

From-SVN: r135610
2008-05-20 08:14:02 -04:00
Kai Tietz
f680436bce Finally reverted parts of my escaped patch. (quilt sucks).
From-SVN: r135607
2008-05-20 12:24:43 +02:00
Kai Tietz
d29899bad2 2008-05-20 Kai Tietz <kai.tietz@onevision.com>
Reverted escaped patch.

From-SVN: r135606
2008-05-20 12:08:42 +02:00
Richard Guenther
4628e602be tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
2008-05-20  Richard Guenther  <rguenther@suse.de>

	* tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.

	* gcc.c-torture/execute/20080519-1.c: New testcase.

From-SVN: r135605
2008-05-20 10:03:27 +00:00
Kai Tietz
3b23a6d391 i386-protos.h (ix86_return_in_memory): Removed.
2008-05-20  Kai Tietz  <kai.tietz@onevision.com>

	* config/i386/i386-protos.h (ix86_return_in_memory): Removed.
	(ix86_i386elf_return_in_memory): Likewise.
	(ix86_i386interix_return_in_memory): Likewise.
	* config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
	(SUBTARGET_RETURN_IN_MEMORY): New.
	* config/i386/i386elf.h: Likewise.
	* config/i386/ptx4-i.h: Likewise.
	* config/i386/sol2-10.h: Likewise.
	* config/i386/sysv4.h: Likewise.
	* config/i386/vx-common.h: Likewise.
	* config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
	* config/i386/i386.c (ix86_return_in_memory): Made static and
	make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
	(ix86_i386elf_return_in_memory): Removed.
	(ix86_i386interix_return_in_memory): Removed.
	(TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
	* target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.

From-SVN: r135604
2008-05-20 12:00:20 +02:00
Alexandre Oliva
be9ed5d525 * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
From-SVN: r135601
2008-05-20 06:44:59 +00:00
Xinliang David Li
bc300fec9d Revert r135493 & r135463
From-SVN: r135599
2008-05-20 04:28:57 +00:00
GCC Administrator
0002cb2521 Daily bump.
From-SVN: r135596
2008-05-20 00:17:39 +00:00
Eric Botcazou
fa74fa3941 tree.c (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
From-SVN: r135591
2008-05-19 22:24:38 +00:00
H.J. Lu
9479cae3c3 Fix a typo.
From-SVN: r135589
2008-05-19 15:07:24 -07:00
Eric Botcazou
df8e1fdc2c tree.c (substitute_in_expr): Fix thinko.
* tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.

From-SVN: r135582
2008-05-19 21:42:48 +00:00
H.J. Lu
06a5f1ecae i386.c (ix86_expand_vector_init_concat): Change sizes of operand array from 8/4 to 4/2.
2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>

	* gcc/config/i386/i386.c (ix86_expand_vector_init_concat): Change
	sizes of operand array from 8/4 to 4/2.
	(ix86_expand_vector_init_general): Change size of operand array
	from 32 to 16.  Remove op0, op1 and half_mode.

From-SVN: r135579
2008-05-19 12:42:11 -07:00
H.J. Lu
63e46cceb6 i386.c (ix86_expand_vector_init_concat): New.
2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_vector_init_concat): New.
	(ix86_expand_vector_init_interleave): Likewise.
	(ix86_expand_vector_init_general): Use them.  Assert word_mode
	== SImode when n_words == 4.

From-SVN: r135578
2008-05-19 11:54:44 -07:00
Francois-Xavier Coudert
16a55411b4 re PR fortran/36265 (character issue with gfortran)
PR fortran/36265

	* trans-expr.c (gfc_conv_string_tmp): Pick the correct type for
	the temporary variable.

	* gfortran.dg/char_length_11.f90: New test.

From-SVN: r135576
2008-05-19 15:57:28 +00:00
Francois-Xavier Coudert
e7cb3dcf73 widechar_intrinsics_5.f90: Add dg-do directive and use -fbackslash option.
* gfortran.dg/widechar_intrinsics_5.f90: Add dg-do directive and
	use -fbackslash option.

From-SVN: r135575
2008-05-19 15:19:05 +00:00
Francois-Xavier Coudert
3e14097cbc char_cast_2.f90: Adjust count in scanning the tree dump file.
* gfortran.dg/char_cast_2.f90: Adjust count in scanning the tree
	dump file.

From-SVN: r135574
2008-05-19 14:28:19 +00:00
Francois-Xavier Coudert
2c0846e4f5 * gfortran.dg/bind_c_module.f90: Adjust expected error messages.
From-SVN: r135530
2008-05-19 14:01:40 +00:00
Kenneth Zadeck
bfe69700db forgot to save changelog back when updating the doc on saturday.
From-SVN: r135529
2008-05-19 14:01:28 +00:00
Francois-Xavier Coudert
9e23c1aa0d simplify.c (gfc_simplify_dble, [...]): Initialize result variable to avoid warnings.
* simplify.c (gfc_simplify_dble, gfc_simplify_real): Initialize
	result variable to avoid warnings.

From-SVN: r135528
2008-05-19 12:22:39 +00:00
Francois-Xavier Coudert
425d348e94 char_cast_1.f90: Adjust count in scanning the tree dump file.
* gfortran.dg/char_cast_1.f90: Adjust count in scanning the tree
	dump file.

From-SVN: r135527
2008-05-19 10:58:39 +00:00
Uros Bizjak
83689be0e3 i386.c (ix86_secondary_reload): New static function.
* config/i386/i386.c (ix86_secondary_reload): New static function.
        (TARGET_SECONDARY_RELOAD): New define.
        * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
        * config/i386/i386.md (reload_outqi): Remove.

From-SVN: r135526
2008-05-19 10:14:04 +02:00
Kaveh Ghazi
04cdd3c660 Add file omitted from last checkin.
From-SVN: r135525
2008-05-19 06:57:43 +00:00
GCC Administrator
678a51b378 Daily bump.
From-SVN: r135521
2008-05-19 00:17:38 +00:00
Kaveh R. Ghazi
05f41289d8 re PR middle-end/35509 (builtin isinf() mismatch to compile-time substitution)
PR middle-end/35509

	* builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
	Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
	(mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
	(fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
	(fold_builtin_1): Likewise.
	* builtins.def (BUILT_IN_ISINF_SIGN): New.
	c-common.c (check_builtin_function_arguments): Handle
	BUILT_IN_ISINF_SIGN.
	* doc/extend.texi: Document __builtin_isinf_sign.
	* fold-const.c (operand_equal_p): Handle COND_EXPR.

testsuite:
	* gcc.dg/builtins-error.c: Test __builtin_isinf_sign.
	* gcc.dg/tg-tests.h: Likewise.  Mark variables volatile.
	* gcc.dg/torture/builtin-isinf_sign-1.c: New test.

From-SVN: r135517
2008-05-18 23:19:38 +00:00
Francois-Xavier Coudert
d393bbd737 intrinsic.c (char_conversions, ncharconv): New static variables.
* intrinsic.c (char_conversions, ncharconv): New static variables.
	(find_char_conv): New function.
	(add_functions): Add simplification functions for ADJUSTL and
	ADJUSTR. Don't check the kind of their argument. Add checking for
	LGE, LLE, LGT and LLT.
	(add_subroutines): Fix argument type for SLEEP. Fix argument name
	for SYSTEM.
	(add_char_conversions): New function.
	(gfc_intrinsic_init_1): Call add_char_conversions.
	(gfc_intrinsic_done_1): Free char_conversions.
	(check_arglist): Use kind == 0 as a signal that we don't want
	the kind value to be checked.
	(do_simplify): Also simplify character functions.
	(gfc_convert_chartype): New function
	* trans-array.c (gfc_trans_array_ctor_element): Don't force the
	use of default character type.
	(gfc_trans_array_constructor_value): Likewise.
	(get_array_ctor_var_strlen): Use integer kind to build an integer
	instead of a character kind!
	(gfc_build_constant_array_constructor): Don't force the use of
	default character type.
	(gfc_conv_loop_setup): Likewise.
	* trans-expr.c (gfc_conv_string_tmp): Don't force the use of
	default character type. Allocate enough memory for wide strings.
	(gfc_conv_concat_op): Make sure operand kind are the same.
	(string_to_single_character): Remove gfc_ prefix. Reindent.
	Don't force the use of default character type.
	(gfc_conv_scalar_char_value): Likewise.
	(gfc_build_compare_string): Call string_to_single_character.
	(fill_with_spaces): New function
	(gfc_trans_string_copy): Add kind arguments. Use them to deal
	with wide character kinds.
	(gfc_conv_statement_function): Whitespace fix. Call
	gfc_trans_string_copy with new kind arguments.
	(gfc_conv_substring_expr): Call gfc_build_wide_string_const
	instead of using gfc_widechar_to_char.
	(gfc_conv_string_parameter): Don't force the use of default
	character type.
	(gfc_trans_scalar_assign): Pass kind args to gfc_trans_string_copy.
	* intrinsic.h (gfc_check_lge_lgt_lle_llt, gfc_convert_char_constant,
	gfc_resolve_adjustl, gfc_resolve_adjustr): New prototypes.
	* decl.c (gfc_set_constant_character_len): Don't assert the
	existence of a single character kind.
	* trans-array.h (gfc_trans_string_copy): New prototype.
	* gfortran.h (gfc_check_character_range, gfc_convert_chartype):
	New prototypes.
	* error.c (print_wide_char_into_buffer): New function lifting
	code from gfc_print_wide_char. Fix order to output '\x??' instead
	of 'x\??'.
	(gfc_print_wide_char): Call print_wide_char_into_buffer.
	(show_locus): Call print_wide_char_into_buffer with buffer local
	to this function.
	* trans-const.c (gfc_build_wide_string_const): New function.
	(gfc_conv_string_init): Deal with wide characters strings
	constructors.
	(gfc_conv_constant_to_tree): Call gfc_build_wide_string_const.
	* trans-stmt.c (gfc_trans_label_assign): Likewise.
	(gfc_trans_character_select): Deal with wide strings.
	* expr.c (gfc_check_assign): Allow conversion between character
	kinds on assignment.
	* trans-const.h (gfc_build_wide_string_const): New prototype.
	* trans-types.c (gfc_get_character_type_len_for_eltype,
	gfc_get_character_type_len): Create too variants of the old
	gfc_get_character_type_len, one getting kind argument and the
	other one directly taking a type tree.
	* trans.h (gfor_fndecl_select_string_char4,
	gfor_fndecl_convert_char1_to_char4,
	gfor_fndecl_convert_char4_to_char1): New prototypes.
	* trans-types.h (gfc_get_character_type_len_for_eltype): New
	prototype.
	* resolve.c (resolve_operator): Exit early when kind mismatches
	are detected, because that makes us issue an error message later.
	(validate_case_label_expr): Fix wording of error message.
	* iresolve.c (gfc_resolve_adjustl, gfc_resolve_adjustr): New
	functions.
	(gfc_resolve_pack): Call _char4 variants of library function
	when dealing with wide characters.
	(gfc_resolve_reshape): Likewise.
	(gfc_resolve_spread): Likewise.
	(gfc_resolve_transpose): Likewise.
	(gfc_resolve_unpack): Likewise.
	* target-memory.c (size_character): Take character kind bit size
	correctly into account (not that it changes anything for now, but
	it's more generic).
	(gfc_encode_character): Added gfc_ prefix. Encoding each
	character of a string by calling native_encode_expr for the
	corresponding unsigned integer.
	(gfc_target_encode_expr): Add gfc_ prefix to encode_character.
	* trans-decl.c (gfc_build_intrinsic_function_decls): Build
	gfor_fndecl_select_string_char4, gfor_fndecl_convert_char1_to_char4
	and gfor_fndecl_convert_char4_to_char1.
	* target-memory.h (gfc_encode_character): New prototype.
	* arith.c (gfc_check_character_range): New function.
	(eval_intrinsic): Allow non-default character kinds.
	* check.c (gfc_check_access_func): Only allow default
	character kind arguments.
	(gfc_check_chdir): Likewise.
	(gfc_check_chdir_sub): Likewise.
	(gfc_check_chmod): Likewise.
	(gfc_check_chmod_sub): Likewise.
	(gfc_check_lge_lgt_lle_llt): New function.
	(gfc_check_link): Likewise.
	(gfc_check_link_sub): Likewise.
	(gfc_check_symlnk): Likewise.
	(gfc_check_symlnk_sub): Likewise.
	(gfc_check_rename): Likewise.
	(gfc_check_rename_sub): Likewise.
	(gfc_check_fgetputc_sub): Likewise.
	(gfc_check_fgetput_sub): Likewise.
	(gfc_check_stat): Likewise.
	(gfc_check_stat_sub): Likewise.
	(gfc_check_date_and_time): Likewise.
	(gfc_check_ctime_sub): Likewise.
	(gfc_check_fdate_sub): Likewise.
	(gfc_check_gerror): Likewise.
	(gfc_check_getcwd_sub): Likewise.
	(gfc_check_getarg): Likewise.
	(gfc_check_getlog): Likewise.
	(gfc_check_hostnm): Likewise.
	(gfc_check_hostnm_sub): Likewise.
	(gfc_check_ttynam_sub): Likewise.
	(gfc_check_perror): Likewise.
	(gfc_check_unlink): Likewise.
	(gfc_check_unlink_sub): Likewise.
	(gfc_check_system_sub): Likewise.
	* primary.c (got_delim): Perform correct character range checking
	for all kinds.
	* trans-intrinsic.c (gfc_conv_intrinsic_conversion): Generate
	calls to library functions convert_char4_to_char1 and
	convert_char1_to_char4 for character conversions.
	(gfc_conv_intrinsic_char): Allow all character kings.
	(gfc_conv_intrinsic_strcmp): Fix whitespace.
	(gfc_conv_intrinsic_repeat): Take care of all character kinds.
	* intrinsic.texi: For all GNU intrinsics accepting character
	arguments, mention that they're restricted to the default kind.
	* simplify.c (simplify_achar_char): New function.
	(gfc_simplify_achar, gfc_simplify_char): Call simplify_achar_char.
	gfc_simplify_ichar): Don't error out for wide characters.
	(gfc_convert_char_constant): New function.

	* gfortran.dg/achar_3.f90: Adjust error messages.
	* gfortran.dg/achar_5.f90: New test.
	* gfortran.dg/achar_6.F90: New test.
	* gfortran.dg/widechar_1.f90: New test.
	* gfortran.dg/widechar_2.f90: New test.
	* gfortran.dg/widechar_3.f90: New test.
	* gfortran.dg/widechar_4.f90: New test.
	* gfortran.dg/widechar_intrinsics_1.f90: New test.
	* gfortran.dg/widechar_intrinsics_2.f90: New test.
	* gfortran.dg/widechar_intrinsics_3.f90: New test.
	* gfortran.dg/widechar_intrinsics_4.f90: New test.
	* gfortran.dg/widechar_intrinsics_5.f90: New test.
	* gfortran.dg/widechar_select_1.f90: New test.
	* gfortran.dg/widechar_select_2.f90: New test.

From-SVN: r135515
2008-05-18 22:45:05 +00:00
Eric Botcazou
45a7844faf tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need EH cleanup at the end of the pass...
* tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
	EH cleanup at the end of the pass, search for those that have been
	turned into forwarder blocks and do the cleanup on their successor.

From-SVN: r135514
2008-05-18 22:36:30 +00:00