Commit Graph

84 Commits

Author SHA1 Message Date
Robert Dewar
910d20fcb8 decl.c (gnat_to_gnu_type, [...]): Wrap modular packed array types in both little- and big-endian cases.
2004-09-21  Robert Dewar  <dewar@gnat.com>

	* decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
	packed array types in both little- and big-endian cases. This change
	ensures that we no longer count on the unused bits being initialized
	for such types (and in particular ensures that equality testing will
	only read the relevant bits).
	Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
	These changes mean that we no longer need to initialize small packed
	arrays.
	(gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
	optimization to an LJM field as to its parent field.

	* ada-tree.h:, trans.c, utils.c, utils2.c:
	Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P

From-SVN: r87806
2004-09-21 17:31:03 +02:00
Jan Hubicka
8f2353433c re PR middle-end/16460 (ICE when compiling glibc (ld-ctype.c))
PR middle-end/16460

	* cgraph.c (cgraph_unnest_node): New function.
	(c_finalize): Rename to ....
	(c_warn_unused_result_recursivly): ... this one; do only the warning
	(finish_function): Finalize the toplevel function; do not lower nested tree.
	* cgraph.h (cgraph_unnest_node): Declare.
	* cgraphunit.c (decide_is_function_needed): Do not use cgraph
	nestedness datastructure.
	* cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs.
	* reload1.c (set_label_offsets): Fix call of set_label_offsets.
	* tree-nested.c (finlize_nesting_tree_1):  Use un-nesting code.

	* utils.c (gnat_finalize): Remove.
	(end_subprog_body): Directly call cgraph_finalize_function;
	do not lower the nested functions.

	* trans-decl.c (build_entry_thunks): Finalize the function; do not lower
	tree.
	(gfc_generate_function_code): Likewise.

From-SVN: r87770
2004-09-20 20:38:29 +00:00
Jeffrey D. Oldham
6615c44615 alias.c (find_base_decl): Remove unreachable case '3' block.
2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
	    Zack Weinberg  <zack@codesourcery.com>

	* alias.c (find_base_decl): Remove unreachable case '3' block.
	* expr.c (safe_from_p): Abort if passed a type.
	* tree-gimple.c (recalculate_side_effects): Abort if passed
	anything other than an expression.
	* tree-ssa-pre.c (phi_translate): Return expr immediately if
	is_gimple_min_invariant is true for it.  Reorder cases for clarity.
	Abort on un-handled tree classes.
	(valid_in_set): Likewise.
	* tree.c (tree_code_class_strings): New static data.

	* tree.h (enum tree_code_class): New.
	(tree_code_class_strings): Declare.
	(TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P)
	(REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P)
	(STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros.
	(TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS)
	(checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update.

	* tree.def, c-common.def, objc/objc-tree.def: Use
	tree_code_class enumeration constants instead of code letters.

	* alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c
	* c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c
	* emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c
	* langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c
	* tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c
	* tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c
	* tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c
	* tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c
	* tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c
	* tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c
	* tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c
	* config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c
	* config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c
	Update to match.

	* LANGUAGES: Add note about change.

ada:
	* ada-tree.def: Use tree_code_class enumeration constants
	instead of code letters.
	* ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
	Update for new tree-class enumeration constants.

cp:
	* cp-tree.def: Use tree_code_class enumeration constants
	instead of code letters.
	* call.c, class.c, cp-gimplify.c, cp-lang.c, cxx-pretty-print.c
	* mangle.c, pt.c, semantics.c, tree.c, typeck.c:
	Update for new tree-class enumeration constants.

fortran:
	* f95-lang.c, trans-expr.c, trans.c: Update for new tree-class
	enumeration constants.

java:
	* java-tree.def: Use tree_code_class enumeration constants
	instead of code letters.
	* java-gimplify.c, jcf-write.c, lang.c, parse.y: Update for
	new tree-class enumeration constants.

treelang:
	* treetree.c: Update for new tree-class enumeration constants.

From-SVN: r87675
2004-09-17 21:55:02 +00:00
Arnaud Charlet
c885d7a17a [multiple changes]
2004-09-09  Vincent Celier  <celier@gnat.com>

	* a-direct.ads: Add pragma Ada_05
	(Directory_Entry_Type): Give default value to component Kind to avoid
	not initialized warnings.

	* a-direct.adb (Current_Directory): Remove directory separator at the
	end.
	(Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
	an existing directory.
	(Fetch_Next_Entry): Give default value to variable Kind to avoid warning
	(Size (String)): Function C_Size returns Long_Integer, not File_Size.
	Convert the result to File_Size.

	* prj.ads: (Project_Error): New exception

	* prj-attr.adb: Except in procedure Initialize, Fail comes from
	Prj.Com, not from Osint.
	(Attrs, Package_Attributes): Tables moved to private part of spec
	(Add_Attribute, Add_Unknown_Package): Moved to new child package
	Prj.Attr.PM.
	(Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
	Prj.Project_Error after call to Fail.
	(Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
	Fail. Check that package name is not already in use.

	* prj-attr.ads: Comment updates to indicate that all subprograms may be
	used by tools, not only by the project manager, and to indicate that
	exception Prj.Prj_Error may be raised in case of problem.
	(Add_Unknown_Package, Add_Attribute): Moved to new child package
	Prj.Attr.PM.
	(Attrs, Package_Attributes): Table instantiations moved from the body to
	the private part to be accessible from Prj.Attr.PM body.

	* prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
	from new package Prj.Attr.PM.
	(Parse_Attribute_Declaration): Call Add_Attribute from new package
	Prj.Attr.PM.

	* Makefile.in: Add prj-attr-pm.o to gnatmake object list

	* gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
	instead of Elaboration_Checks).

	* a-calend.adb: Minor reformatting

2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* gigi.h (maybe_pad_type): New declaration.
	(create_subprog_type): New arg RETURNS_BY_TARGET_PTR.

	* ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.

	* cuintp.c: Convert to use buildN.

	* decl.c (maybe_pad_type): No longer static.
	(gnat_to_gnu_entity, case E_Function): Handle case of returning by
	target pointer.
	Convert to use buildN.

	* trans.c (call_to_gnu): Add arg GNU_TARGET; support
	TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
	(gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
	RHS.
	(gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
	(gnat_gimplify_expr, case ADDR_EXPR): New case.
	Convert to use buildN.

	* utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
	TREE_READONLY for const.
	Convert to use buildN.

	* utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
	(create_var_decl): Refine when TREE_STATIC is set.
	Convert to use buildN.

2004-09-09  Gary Dismukes  <dismukes@gnat.com>

	* gnat_ugn.texi: Delete text relating to checking of ali and object
	consistency.

	* a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
	routines.

2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>

	* gnat_ugn.texi: Add Detect_Blocking to the list of configuration
	pragmas recognized by GNAT.

	* gnat_rm.texi: Document pragma Detect_Blocking.

	* s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
	raise Program_Error if called from a protected operation.

	* s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
	the protected action nesting level.
	(Lock_Read_Only): When pragma Detect_Blocking is active increase the
	protected action nesting level.
	(Unlock): When pragma Detect_Blocking is active decrease the protected
	action nesting level.

	* s-taskin.adb (Initialize_ATCB): Initialize to 0 the
	Protected_Action_Nesting.

	* s-taskin.ads: Adding the field Protected_Action_Nesting to the
	Common_ATCB record. It contains the dynamic level of protected action
	nesting for each task. It is needed for checking whether potentially
	blocking operations are called from protected operations.
	(Detect_Blocking): Adding a Boolean constant reflecting whether pragma
	Detect_Blocking is active or not in the partition.

	* s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
	raise Program_Error if called from a protected operation.
	(Task_Entry_Call): When pragma Detect_Blocking is active, raise
	Program_Error if called from a protected operation.
	(Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
	Program_Error if called from a protected operation.

	* s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
	raise Program_Error if called from a protected operation.

	* s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
	raise Program_Error if called from a protected operation, and increase
	the protected action nesting level.
	(Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
	Program_Error if called from a protected operation, and increase the
	protected action nesting level.
	(Unlock_Entries): When pragma Detect_Blocking is active decrease the
	protected action nesting level.

	* s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
	raise Program_Error if called from a protected operation, and increase
	the protected action nesting level.
	(Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
	Program_Error if called from a protected operation, and increase the
	protected action nesting level.
	(Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
	raise Program_Error if called from a protected operation.
	(Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
	active, raise Program_Error if called from a protected operation.
	(Unlock_Entry): When pragma Detect_Blocking is active decrease the
	protected action nesting level.

	* sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
	insertion of the statement raising Program_Error. The run time
	contains the required machinery for handling that.

	* sem_util.ads: Change comment associated to procedure
	Check_Potentially_Blocking_Operation.
	This procedure does not insert a call for raising the exception because
	that is currently done by the run time.

	* raise.h (__gnat_set_globals): Pass the detect_blocking parameter.

	* init.c: Add the global variable __gl_detect_blocking that indicates
	whether pragma Detect_Blocking is active (1) or not (0). Needed for
	making the pragma available at run time.
	(__gnat_set_globals): Pass and update the detect_blocking parameter.

	* lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
	pragma Detect_Blocking is active.

	* lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.

	* ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
	DB is found in the ali file. Any unit compiled with pragma
	Detect_Blocking active forces its effect in the whole partition.

	* a-retide.adb (Delay_Until): Raise Program_Error if pragma
	Detect_Blocking is active and delay is called from a protected
	operation.

	* bindgen.adb (Gen_Adainit_Ada): When generating the call to
	__gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
	Detect_Blocking is active (0 otherwise).
	(Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
	as Detect_Blocking parameter if pragma Detect_Blocking is active (0
	otherwise).

2004-09-09  Thomas Quinot  <quinot@act-europe.fr>

	* gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
	GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
	package.

	* s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
	(Register_Receiving_Stub): Add Subp_Info formal parameter.
	Update API in placeholder implemetation of s-parint to reflect changes
	in distribution runtime library.

	* sem_ch3.adb (Expand_Derived_Record): Rename to
	Expand_Record_Extension.

	* sem_disp.adb (Check_Controlling_Formals): Improve error message for
	primitive operations of potentially distributed object types that have
	non-controlling anonymous access formals.

	* sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
	subprogram.
	New implementation of expansion for remote access-to-subprogram types,
	based on the RACW infrastructure.
	This version of sem_dist is compatible with PolyORB/DSA as well as
	GLADE.

	* sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
	Asynchrronous that applies to a remote access-to-subprogram type, mark
	the underlying RACW type as asynchronous.

	* link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
	 __gnat_using_gnu_linker to 1.

	* Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
	g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
	GNAT.Perfect_Hash_Generators, and remove the empty
	GNAT.Perfect_Hash package.

	* atree.adb: Minor reformatting

	* exp_ch3.adb (Expand_Derived_Record): Rename to
	Expand_Record_Extension.
	(Build_Record_Init_Proc.Build_Assignment): The default expression in
	a component declaration must remain attached at that point in the
	tree so New_Copy_Tree copies it if the enclosing record type is derived.
	It is therefore necessary to take a copy of the expression when building
	the corresponding assignment statement in the init proc.
	As a side effect, in the case of a derived record type, we now see the
	original expression, without any rewriting that could have occurred
	during expansion of the ancestor type's init proc, and we do not need
	to go back to Original_Node.

	* exp_ch3.ads (Expand_Derived_Record): Rename to
	Expand_Record_Extension.

	* exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
	Returns the RACW type used to implement a remote access-to-subprogram
	type.
	(Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
	New subprograms. Used to create a proxy tagged object for a remote
	subprogram. The proxy object is used as the designated object
	for RAS values on the same partition (unless All_Calls_Remote applies).
	(Build_Get_Unique_RP_Call): New subprogram. Build a call to
	System.Partition_Interface.Get_Unique_Remote_Pointer.
	(Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
	Renamed from Add_RAS_*_Attribute.
	(Add_Receiving_Stubs_To_Declarations): Generate a table of local
	subprograms.
	New implementation of expansion for remote access-to-subprogram types,
	based on the RACW infrastructure.

	* exp_dist.ads (Copy_Specification): Update comment to note that this
	function can copy the specification from either a subprogram
	specification or an access-to-subprogram type definition.

2004-09-09  Ed Schonberg  <schonberg@gnat.com>

	* sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
	in an instance, between an explicit subprogram an one inherited from a
	type derived from an actual.

	* exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
	add a polling call if the subprogram is to be inlined by the back-end,
	to avoid repeated calls with multiple inlinings.

	* checks.adb (Apply_Alignment_Check): If the expression in the address
	clause is a call whose name is not a static entity (e.g. a dispatching
	call), treat as dynamic.

2004-09-09  Robert Dewar  <dewar@gnat.com>

	* g-trasym.ads: Minor reformatting

	* exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
	packed arrays, since unused bits are expected to be zero for a
	comparison.

2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>

	* exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
	comment.

2004-09-09  Pascal Obry  <obry@gnat.com>

	* mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
	enable map file generation. Add the right option to generate the map
	file if Map_File is set to True.

	* gnatdll.adb (Gen_Map_File): New variable.
	(Syntax): Add info about new -m (Map_File) option.
	(Parse_Command_Line): Add support for -m option.
	(gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
	Minor reformatting.

2004-09-09  Laurent Pautet  <pautet@act-europe.fr>

	* gnatls.adb: Add a very verbose mode -V. Such mode is required by the
	new gnatdist implementation.
	Define a subpackage isolating the output routines specific to this
	verbose mode.

2004-09-09  Joel Brobecker  <brobecker@gnat.com>

	* Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.

	* gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.

2004-09-09  Cyrille Comar  <comar@act-europe.fr>

	* opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
	internal unit.

	* opt.ads: Add Ada_Version_Runtime constant used to decide which
	version of the language is used to compile the run time.

2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>

	* sem_util.adb (Requires_Transient_Scope): Re-enable handling
	of variable length temporaries for function return now that the
	back-end and gigi support it.

From-SVN: r87435
2004-09-13 12:18:42 +02:00
Arnaud Charlet
6cdb2c6e80 [multiple changes]
2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.

	* trans.c (struct stmt_group): Delete field GLOBAL.
	(gnat_init_stmt_group): Do not initialize it.
	(call_to_gnu): Use save_expr, not protect_multiple_eval.
	(Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
	(gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
	(gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
	(start_stmt_group): Likewise.
	(add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.

	* utils2.c (ggc.h): Include.
	(build_call_raise): Call build_int_cst, not build_int_2.

	* utils.c (gnat_init_decl_processing): Fix arg to
	build_common_tree_nodes.
	(create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
	(gnat_define_builtin): Set built_in_decls.
	(init_gigi_decls): Call build_int_cst, not build_int_2.

	* ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
	(GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
	(GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
	(TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
	SET_TYPE_MODULE): Use them.
	(TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
	(SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
	(SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
	SET_TYPE_ADA_SIZE): Likewise.
	(TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
	(DECL_CONST_CORRESPONDING_VAR,
	SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
	(DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
	(TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
	(TYPE_RM_SIZE_NUM): New macro.
	(TYPE_RM_SIZE): Modified to use above.

	* cuintp.c: (build_cst_from_int): New function.
	(UI_To_gnu): Use it.

	* decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
	(make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
	(gnat_substitute_in_type, case ARRAY_TYPE): If old had a
	MIN_EXPR for the size, copy it into new.

2004-08-31  Robert Dewar  <dewar@gnat.com>

	* exp_ch6.adb (Expand_Call): Properly handle validity checks for
	packed indexed component where array is an IN OUT formal. This
	generated garbage code previously.

	* gnat_ugn.texi: Document -fverbose-asm

	* gnat-style.texi: Minor updates (note that boolean constants and
	variables are joined with AND/OR rather than short circuit forms).

2004-08-31  Ed Schonberg  <schonberg@gnat.com>

	* exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
	it is an upward conversion of an untagged type with no representation
	change.

2004-08-31  Thomas Quinot  <quinot@act-europe.fr>

	* rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
	System.Partition_Interface.

	* checks.adb (Apply_Access_Checks): Do not generate checks when
	expander is not active (but check for unset reference to prefix of
	dereference).

	* sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
	pragma Debug as an if statement with a constant condition, for
	consistent treatment of entity references contained within the
	enclosed procedure call.

2004-08-31  Vincent Celier  <celier@gnat.com>

	* bindgen.adb: (Set_EA_Last): New procedure
	(Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
	Set_EA_Last.
	(Gen_Adafinal_Ada): If no finalization, adafinal does nothing
	(Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
	linked without errors.
	(Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
	ST and EA.
	(Gen_Exception_Table_C): Correct same bugs

	* vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches

	* g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
	on Windows, make sure that the drive letter is in upper case.

	* g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
	Windows, when the drive letter is added and Case_Sensitive is True, the
	drive letter is forced to upper case.

	* mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
	to Options_2 for the call to MLib.Utl.Gcc.

	* bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
	directory separator when defining BASE_DIR.

2004-08-19  Pascal Obry  <obry@gnat.com>

	* gprcmd.adb (Extend): Do not output trailing directory separator. This
	is not needed and it confuses Windows GNU/make which does not report
	directory terminated by a slash as a directory.
	(gprcmd): Idem for "pwd" internal command.

	* Makefile.generic: Use __GPRCOLON__ instead of pipe character in
	target names rewrite to fix regressions with recent version of
	GNU/make. Starting with GNU/make 3.80 the pipe character was not
	handled properly anymore.

From-SVN: r86883
2004-09-01 13:51:54 +02:00
Nathan Sidwell
6a6bfc8e70 * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
From-SVN: r86656
2004-08-27 10:02:30 +00:00
Nathan Sidwell
7d60be94d6 tree.h (build_int_cst): New, sign extended constant.
* tree.h  (build_int_cst): New, sign extended constant.
	(build_int_cstu): New, zero extended constant.
	(build_int_cst_wide): Renamed from build_int_cst.
	* tree.c (build_int_cst, build_int_cstu): New.
	(build_int_cst_wide): Renamed from build_int_cst.
	(make_vector_type, build_common_tree_nodes,
	build_common_tree_nodes_2): Adjust build_int_cst calls.
	* builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
	expand_builtin_strpbrk, expand_builtin_fputs,
	build_string_literal, expand_builtin_printf,
	expand_builtin_sprintf, fold_builtin_classify_type,
	fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
	fold_builtin_toascii, fold_builtin_isdigit,
	simplify_builtin_strstr, simplify_builtin_strpbrk,
	fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
	* c-common.c (start_fname_decls, fix_string_type, shorten_compare,
	DEF_ATTR_INT): Likewise.
	* c-decl.c (complete_array_type, check_bitfield_type_and_width):
	Likewise.
	* c-lex.c (interpret_integer, lex_charconst): Likewise.
	* c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
	* c-pretty-print.c (pp_c_integer_constant): Likewise.
	* c-typeck.c (really_start_incremental_init, push_init_level,
	set_nonincremental_init_from_string): Likewise.
	* calls.c (load_register_parameters): Likewise.
	convert.c (convert_to_pointer): Likewise.
	coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
	build_fn_info_type, build_fn_info_value, build_ctr_info_value,
	build_gcov_info): Likewise.
	* except.c (init_eh, assign_filter_values): Likewise.
	* expmed.c (store_fixed_bit_field, extract_bit_field,
	extract_fixed_bit_field, extract_split_bit_field, expand_shift,
	expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
	expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
	* expr.c (convert_move, emit_group_load, emit_group_store,
	expand_assignment, store_constructor, store_field,
	expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
	fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
	invert_truthvalue, optimize_bit_field_compare,
	decode_field_reference, all_ones_mask_p, constant_boolean_node,
	fold_div_compare, fold, fold_read_from_constant_string,
	fold_negate_const, fold_abs_const, fold_not_const, round_up,
	round_down): Likewise.
	* function.c (assign_parm_setup_block): Likewise.
	* stmt.c (shift_return_value, expand_case, estimate_case_costs):
	Likewise.
	* stor-layout.c (layout_type, initialize_sizetypes,
	set_min_and_max_values_for_integral_type): Likewise.
	* tree-chrec.c (chrec_fold_multiply_poly_poly,
	reset_evolution_in_loop): Likewise.
	* tree-chrec.h (build_polynomial_chrec): Likewise.
	* tree-complex.c (build_replicated_const): Likewise.
	* tree-eh.c (honor_protect_cleanup_actions,
	lower_try_finally_onedest, lower_try_finally_copy,
	lower_try_finally_switch): Likewise.
	* tree-mudflap.c (mf_build_string, mx_register_decls,
	mudflap_register_call, mudflap_enqueue_constant): Likewise.
	* tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	* tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
	Likewise.
	* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
	* tree-ssa-loop-niter.c (number_of_iterations_cond,
	loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
	Likewise.
	* tree-ssa-loop-ivcanon.c (create_canonical_iv,
	canonicalize_loop_induction_variables): Likewise.
	* tree-vectorizer.c (vect_create_index_for_array_ref,
	vect_transform_loop_bound, vect_compute_data_ref_alignment):
	Likewise.

	* config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
	alpha_gimplify_va_arg_1): Likewise.
	* config/arm/arm.c (arm_get_cookie_size): Likewise.
	* config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
	* config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
	* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
	* config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
	mips_gimplify_va_arg_expr): Likewise.
	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
	* config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
	add_compiler_branch_island): Likewise.
	* config/s390/s390.c (s390_va_start): Likewise.
	* config/sh/sh.c (sh_va_start): Likewise.
	* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
	Likewise.
	* config/xtensa/xtensa.c (xtensa_va_start,
	xtensa_gimplify_va_arg_expr): Likewise.

	* objc/objc-act.c (build_objc_string_object,
	build_objc_symtab_template, init_def_list, init_objc_symtab,
	init_module_descriptor, generate_static_references,
	build_selector_translation_table, get_proto_encoding,
	build_typed_selector_reference, build_selector_reference,
	build_next_objc_exception_stuff,
	build_method_prototype_list_template, generate_descriptor_table,
	generate_protocols, build_protocol_initializer,
	build_ivar_list_template, build_method_list_template,
	build_ivar_list_initializer, generate_ivars_list,
	generate_dispatch_table, generate_protocol_list,
	build_category_initializer, build_shared_structure_initializer,
	generate_shared_structures, handle_impent,
	generate_objc_image_info): Likewise.

2004-04-25  Paolo Bonzini  <bonzini@gnu.org>

	* cfglayout.c (duplicate_insn_chain): Remove references to
	NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
	* cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
	* cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
	* final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
	and NOTE_INSN_LOOP_CONT.
	* insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
	* jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
	and NOTE_INSN_LOOP_CONT.
	* loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
	check_dbra_loop, loop_dump_aux): Remove references to removed notes
	and fields.
	* reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
	* unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
	references to removed notes and fields.
	(subtract_reg_term, ujump_to_loop_cont): Remove.

From-SVN: r86544
2004-08-25 09:52:54 +00:00
Nathan Sidwell
8c1d6d62a6 c-decl.c (c_init_decl_processing): Adjust build_common_tree_nodes call.
* c-decl.c (c_init_decl_processing): Adjust
	build_common_tree_nodes call.
	* expmed.c (const_mult_add_overflow_p): Use
	build_distinct_type_copy.
	* stor-layout.c (early_type_list): Remove.
	(layout_type): Don't append to early_type_list.
	(initialize_sizetypes): Add signed_p argument.
	(set_sizetype): Overwrite the stub type nodes directly.
	* tree.c (copy_node_stat): Clear a type's value cache here ...
	(build_distinct_type): ... not here.
	(build_common_tree_nodes): Add signed_sizetype argument. Adjust.
	* tree.h (initialize_sizetypes): Add signed_p argument.
	(build_common_tree_nodes): Likewise.

	* ada/utils.c (gnat_init_decl_processing): Adjust
	build_common_tree_nodes call.

	* cp/decl.c (cxx_init_decl_processing): Adjust
	build_common_tree_nodes call.

	* fortran/f95-lang.c (gfc_init_decl_processing): Adjust
	build_common_tree_nodes call.

	* java/decl.c (java_init_decl_processing): Adjust
	initialize_sizetypes call.

	* objc/objc-act.c (get_static_reference): Use
	build_variant_type_copy.
	(get_protocol_reference): Likewise.
	* objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.

	* treelang/treetree.c (treelang_init_decl_processing): Adjust
	build_common_tree_nodes call.

From-SVN: r86493
2004-08-24 16:39:43 +00:00
Nathan Sidwell
4a90aeeb51 tree.h (build_int_cst): New.
.:	* tree.h (build_int_cst): New.
	(build_int_2): Remove.
	* tree.c (build_int_2): Remove.
	(build_int_cst): New.
	(make_vector_type, build_common_tree_nodes,
	build_common_tree_nodes_2): Use build_int_cst.
	* builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
	expand_builtin_strpbrk, expand_builtin_fputs,
	build_string_literal, expand_builtin_printf,
	expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
	fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
	fold_builtin_isdigit, simplify_builtin_strstr,
	simplify_builtin_strpbrk, fold_builtin_fputs,
	simplify_builtin_sprintf): Use build_int_cst.
	* c-common.c (start_fname_decls, fix_string_type,
	c_common_nodes_and_builtins, c_init_attributes,
	shorten_compare): Likewise.
	* c-decl.c (complete_array_type,
	check_bitfield_type_and_width): Likewise.
	* c-lex.c (interpret_integer, lex_charconst): Likewise.
	* c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
	* c-pretty-print.c (pp_c_integer_constant): Likewise.
	* c-typeck.c (really_start_incremental_init, push_init_level,
	set_nonincremental_init_from_string): Likewise.
	* calls.c (load_register_parameters): Likewise.
	* convert.c (convert_to_pointer): Likewise.
	* coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
	build_fn_info_type, build_ctr_info_value, build_gcov_info):
	Likewise.
	* except.c (init_eh, assign_filter_values, assign_filter_values):
	Likewise.
	* expmed.c (store_fixed_bit_field, extract_bit_field,
	extract_fixed_bit_field, extract_split_bit_field, expand_shift,
	expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
	expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
	* expr.c (convert_move, emit_group_load, emit_group_store,
	expand_assignment, store_constructor, store_field,
	expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
	* fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
	invert_truthvalue, optimize_bit_field_compare,
	decode_field_reference, all_ones_mask_p, constant_boolean_node,
	fold_div_compare, fold, fold_read_from_constant_string,
	fold_negate_const, fold_abs_const, fold_not_const): Likewise.
	* function.c (assign_parm_setup_block): Likewise.
	* stmt.c (shift_return_value, expand_end_case_type,
	estimate_case_costs): Likewise.
	* stor-layout.c (layout_type, initialize_sizetypes,
	set_min_and_max_values_for_integral_type): Likewise.
	* tree-chrec.c (chrec_fold_multiply_poly_poly,
	reset_evolution_in_loop): Likewise.
	* tree-chrec.h (build_polynomial_chrec): Likewise.
	* tree-complex.c (build_replicated_const): Likewise.
	* tree-eh.c (honor_protect_cleanup_actions,
	lower_try_finally_onedest, lower_try_finally_copy,
	lower_try_finally_switch): Likewise.
	* tree-mudflap.c (mf_build_string, mx_register_decls,
	mudflap_register_call, mudflap_enqueue_constant): Likewise.
	* tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	* tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
	Likewise.
	* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
	* tree-ssa-loop-niter.c (number_of_iterations_cond,
	loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
	Likewise.

	* config/alpha/alpha.c (alpha_initialize_trampoline,
	alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
	* config/arm/arm.c (arm_get_cookie_size): Likewise.
	* config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
	* config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
	* config/i860/i860.c (i860_va_start): Likewise.
	* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
	* config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
	mips_gimplify_va_arg_expr): Likewise.
	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
	* config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
	add_compiler_branch_island): Likewise.
	* config/s390/s390.c (s390_va_start): Likewise.
	* config/sh/sh.c (sh_va_start): Likewise.
	* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
	Likewise.
	* config/xtensa/xtensa.c (xtensa_va_start,
	xtensa_gimplify_va_arg_expr): Likewise.

	* objc/objc-act.c (build_objc_string_object,
	build_objc_symtab_template, init_def_list, init_objc_symtab,
	init_module_descriptor, generate_static_references,
	build_selector_translation_table, get_proto_encoding,
	build_typed_selector_reference, build_selector_reference,
	build_next_objc_exception_stuff,
	build_method_prototype_list_template, generate_descriptor_table,
	generate_protocols, build_protocol_initializer,
	build_ivar_list_template, build_method_list_template,
	build_ivar_list_initializer, generate_ivars_list,
	generate_dispatch_table, generate_protocol_list,
	build_category_initializer, build_shared_structure_initializer,
	generate_shared_structures, handle_impent,
	generate_objc_image_info): Use build_int_cst.
ada:
	* cuintp.c (UI_To_gnu): Use build_int_cst..
	* trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
	* utils.c (init_gigi_decls): Likewise.
	* utils2.c (build_call_raise): Likewise.
cp:
	* call.c (convert_class_to_reference,
	build_user_type_conversion_1, convert_like_real,
	build_java_interface_fn_ref, build_special_member_call): Use
	build_int_cst.
	* class.c (build_vtbl_initializer): Likewise.
	* cp-gimplify.c (cp_gimplify_expr): Likewise.
	* cvt.c (cp_convert_to_pointer): Likewise.
	* decl.c (cxx_init_decl_processing, complete_array_type): Likewise.
	* decl2.c (start_static_initialization_or_destruction,
	generate_ctor_or_dtor_function): Likewise.
	* except.c (build_throw): Likewise.
	* lex.c (cxx_init): Likewise.
	* mangle.c (write_integer_cst): Likewise.
	* rtti.c (build_headof, get_tinfo_decl_dynamic,
	build_dynamic_cast_1, ptr_initializer, ptm_initializer,
	get_pseudo_ti_init): Likewise.
	* search.c (get_dynamic_cast_base_type): Likewise.
	* tree.c (build_shared_int_cst): Likewise.
fortran:
	* trans-array.c (gfc_trans_array_constructor_value): Use
	build_int_cst.
	* trans-const.c (gfc_build_string_const,
	gfc_init_constants, gfc_conv_mpz_to_tree,
	gfc_conv_constant_to_tree): Likewise.
	* trans-decl.c (gfc_get_symbol_decl): Likewise.
	* trans-intrinsic.c (gfc_conv_intrinsic_ibits,
	gfc_conv_intrinsic_len, prepare_arg_info): Likewise.
	* trans-io.c (add_case, set_error_locus, build_dt,
	transfer_expr): Likewise.
	* trans-stmt.c (gfc_trans_label_assign, gfc_trans_pause,
	gfc_trans_stop, gfc_trans_character_select): Likewise.
	* trans-types.c (gfc_init_types, gfc_get_dtype): Likewise.
	* trans.c (gfc_trans_runtime_check): Likewise.
java:
	* boehm.c (get_boehm_type_descriptor): Use build_int_cst.
	* class.c (build_utf8_ref, build_static_field_ref,
	make_field_value, make_method_value, get_dispatch_table,
	make_class_data, emit_symbol_table, emit_catch_table): Likewise.
	* constants.c (get_tag_node,  build_ref_from_constant_pool,
	build_constants_constructor): Likewise.
	* decl.c (java_init_decl_processing): Likewise.
	* expr.c (build_java_array_length_access, build_newarray,
	expand_java_multianewarray, expand_java_pushc, expand_iinc,
	build_java_binop, build_field_ref, expand_java_add_case,
	expand_java_call, build_known_method_ref, build_invokevirtual,
	build_invokeinterface, build_jni_stub): Likewise.
	* java-gimplify.c (java_gimplify_new_array_init): Likewise.
	* jcf-parse.c (get_constant): Likewise.
	* lex.c (do_java_lex): Likewise.
	* parse.y (patch_binop, patch_unaryop, patch_cast,
	build_null_of_type, patch_newarray): Likewise.
	* resource.c (compile_resource_data): Likewise.
	* typeck.c (build_prim_array_type): Likewise.

From-SVN: r86022
2004-08-15 15:45:33 +00:00
Richard Henderson
1a186ec558 builtins.def (BUILT_IN_STACK_ALLOC): Remove.
* builtins.def (BUILT_IN_STACK_ALLOC): Remove.
        * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
        * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
        (add_location_or_const_value_attribute): ... not here.  Use
        loc_descriptor_from_tree if possible.
        (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
        Simplify address handling.  Handle DECL_VALUE_EXPR.  Handle register
        values specially.
        (loc_descriptor_from_tree): New.  Update callers.
        * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
        * gimplify.c (gimplify_decl_expr): Lower variable sized types to
        pointer plus dereference.  Set DECL_VALUE_EXPR.  Set save_stack.
        (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
        and BUILT_IN_STACK_RESTORE.
        (gimplify_expr): Lower DECL_VALUE_EXPR decls.
        * stmt.c (expand_stack_alloc): Remove.
        * tree-mudflap.c (mx_register_decls): Don't look for
        BUILT_IN_STACK_ALLOC.
        * tree-nested.c (convert_local_reference): Likewise.
        * tree.h (DECL_VALUE_EXPR): New.
ada/
        * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
        add __builtin_alloca.
fortran/
        * f95-lang.c (gfc_init_builtin_functions): Remove
         __builtin_stack_alloc, add __builtin_alloca.
        * trans-array.c (gfc_trans_auto_array_allocation): Use DECL_EXPR.
        * trans-decl.c (gfc_trans_auto_character_variable): Likewise.

From-SVN: r85794
2004-08-10 21:16:07 -07:00
Arnaud Charlet
5d09245e6a [multiple changes]
2004-08-09  Thomas Quinot  <quinot@act-europe.fr>

	* g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
	from complaining on potential uninitialized reference.
	Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
	new specification and test explicitly for non-zero return value.

	* g-socthi.ads (Is_Socket_In_Set): Declare imported function as
	returning C.int, to avoid using a derived boolean type.

	* exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
	Duplicate_Subexpr_No_Checks in preference to direct use of
	Remove_Side_Effects and New_Copy_Tree.
	Clear Comes_From_Source on prefix of 'Size attribute reference.

	* g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
	g-socthi-vxworks.adb: Change calls to
	GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
	and test explicitly for non-zero return value.

	* g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
	(Is_Socket_In_Set): Declare imported function as returning C.int, to
	avoid using a derived boolean type.

2004-08-09  Albert Lee  <lee@gnat.com>

	* system-irix-n32.ads: Refine tasking priority constants for IRIX.

2004-08-09  Pascal Obry  <obry@gnat.com>

	* gnat_ugn.texi: Document new way to build DLLs on Windows using
	GCC's -shared option.

	* mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
	Options_2 parameter (options put after object files).

2004-08-09  Olivier Hainque  <hainque@act-europe.fr>

	* decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
	ignore overflows on low and high bounds of an index to also account for
	differences in signedness between sizetype and gnu_index_subtype.
	These are as legitimate as the ones caused by a lower TYPE_PRECISION
	on sizetype.

2004-08-09  Robert Dewar  <dewar@gnat.com>

	* s-solita.ads, s-solita.adb: Minor reformatting

	* gnat_rm.texi: Add documentation for pragma Profile (Restricted)
	Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
	obsolescent section
	Add note that No_Implicit_Conditionals does not suppress
	run time constraint checks.

	* vms_conv.ads: Minor reformatting

	* s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
	and necessary for following change).
	(Mark): Return new format Mark_Id containing sec stack address
	(Release): Use sec stack address from Mark_Id avoiding Self call

	* s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
	pointer (cleanup and necessary for following change).
	Define Mark_Id as record containing address of secondary stack, that way
	Release does not need to find the stack again, decreasing the number of
	calls to Self and improving efficiency.

	* sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference

	* sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
	case variable into the individual case branches when possible.

	* sem_ch11.adb: Minor reformatting

	* prj.ads: Correct spelling of suffixs

	* prj-nmsc.adb: Minor reformatting
	Correct spelling suffixs throughout (also in identifiers)

	* freeze.adb: Minor spelling correction

	* exp_ch2.adb: Cleanups to handling of Current_Value
	(no functional effect).

	* bld.adb: Correct spelling of suffixs

	* einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument

2004-08-09  Ed Schonberg  <schonberg@gnat.com>

	PR ada/15408

	* sem_ch7.adb (Install_Private_Declarations): In the body of the
	package or of a child, private entities are both immediately_visible
	and not hidden.

2004-08-09  Ed Schonberg  <schonberg@gnat.com>

	* sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
	there are no range checks on the value of the literal.

	* exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
	wrapped is the triggering alternative of an asynchronous select, action
	statements mustbe inserted before the select itself.

	* sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
	case where the prefix is a protected function call.
	(Resolve_Attribute, case 'Access): The attribute reference on a
	subprogram is legal in a generic body if the subprogram is declared
	elsewhere.

2004-08-09  Vincent Celier  <celier@gnat.com>

	* makegpr.adb (Build_Library): Link with g++ if C++ is one of the
	languages, otherwise building the library may fail with unresolved
	symbols.
	(Compile_Sources): Do not build libraries if -c switch is used

	* gnatlink.adb (Process_Args): New switches -M and -Mmap
	(Write_Usage): If map file creation is supported, output new switches
	-M and -Mmap.
	(Gnatlink): When -M is specified, add the necessary switch(es) to the
	gcc call, when supported.

	* Makefile.in: Added indepsw.o to the object list for gnatlink
	Specified the AIX, GNU/Linux and Windows versions of indepsw.adb

	* indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
	indepsw.adb, indepsw.ads: New files.

2004-08-09  Bernard Banner  <banner@gnat.com>

	* system-vxworks-x86.ads, s-vxwork-x86.ads: New files.

	* Makefile.in: add section for vxworks x86

2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>

	* exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
	per-object constrained components where the discriminant is of an
	Access type.
	(Build_Record_Init_Proc): Add condition to prevent the inheritance of
	the parent initialization procedure for derived Unchecked_Unions.
	Instead, derived Unchecked_Unions build their own initialization
	procedure.
	(Build_Variant_Record_Equality): Implement Unchecked_Union equality.
	Check the body of the subprogram for details.
	(Freeze_Record_Type): Prevent the inheritance of discriminant checking
	functions for derived Unchecked_Union types by introducing a condition.
	Allow the creation of TSS equality functions for Unchecked_Unions.
	(Make_Eq_Case): Rename formal parameter Node to E in function signature.
	Add formal parameter Discr to function signature. Discr is used to
	control the generated case statement for Unchecked_Union types.
	(Make_Eq_If): Rename formal parameter Node to E in function signature.

	* exp_ch4.adb (Build_Equality_Call): Implement equality calls for
	Unchecked_Unions.
	Check the body of the subprogram for details.
	(Expand_Composite_Equality): Augment composite type equality to include
	correct handling of Unchecked_Union components.
	(Expand_N_In): Add condition to detect illegal membership tests when the
	subtype mark is a constrained Unchecked_Union and the expression lacks
	inferable discriminants, and build a Raise_Program_Error node.
	(Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
	to detect types that contain components of unconstrained Unchecked_Union
	subtype. Add condition to detect equality between types that have an
	unconstrained Unchecked_Union component, and build a Raise_Program_Error
	node. Add condition to detect equality between Unchecked_Union types
	that lack inferable discriminants, and build a Raise_Program_Error node.
	Otherwise build a TSS equality function call.
	(Expand_N_Type_Conversion): Add condition to detect illegal conversions
	from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
	with the operand lacking inferable discriminants, and build a Raise_
	Program_Error node.
	(Expand_Record_Equality): Remove guard that prevents Unchecked_Union
	composite equality.
	(Has_Inferable_Discriminants): Implement new predicate for objects and
	expressions of Unchecked_Union type. Check the body of subprogram for
	details.
	(Has_Unconstrained_UU_Components): Add function
	Component_Is_Unconstrained_UU. It is used to detect whether a single
	component is of an unconstrained Unchecked_Union subtype. Add function
	Variant_Is_Unconstrained_UU. It is used to detect whether a single
	component inside a variant is of an unconstrained Unchecked_Union type.

	* exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
	inferred discriminant values. Add condition to generate a case
	statement with an inferred discriminant as the switch.
	(Make_Component_List_Assign): Introduce a Boolean flag that determines
	the behaviour of the subprogram in the presence of an Unchecked_Union.
	Add condition to trigger the usage of the inferred discriminant value
	as the generated case statement switch.
	(Make_Field_Assign): Introduce a Boolean flag that determines the
	behaviour of the subprogram in the presence of an Unchecked_Union. Add
	condition to trigger the usage of the inferred discriminant value as
	the right-hand side of the generated assignment.

	* exp_ch6.adb (Expand_Call): Add condition to skip extra actual
	parameter generation when dealing with Unchecked_Unions.

	* checks.adb (Apply_Discriminant_Check): Do not apply discriminant
	checks for Unchecked_Unions.

	* einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint

	* exp_attr.adb (Expand_N_Attribute_Reference): Produce
	Raise_Program_Error nodes for the execution of Read and Write
	attributes of Unchecked_Union types and the execution of Input and
	Output attributes of Unchecked_Union types that lack default
	discriminant values.

	* sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
	Unchecked_Union. Add procedure Check_Component. It is used to inspect
	per-object constrained components of Unchecked_Unions for being
	Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
	check individual components withing a variant.

	* sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
	comparison of Unchecked_Unions.
	(Resolve_Equality_OP): Remove guard that prevents equality between
	Unchecked_Unions.

	* sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
	of component subtypes for Unchecked_Union components.
	(Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
	since it is the actual subtype.

	* sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
	pass of Unchecked_Union subtypes as generic actuals to formal types
	that lack known_discriminant_parts or that are derived Unchecked_Union
	types, and do nothing. In any other case, produce an error message.

	* sem_ch3.adb (Analyze_Component_Declaration): Add function
	Contains_POC. It determines whether a constraint uses the discriminant
	of an enclosing record type.
	Add condition to detect per-object constrained component and set the
	appropriate flag.
	(Derived_Type_Declaration): Remove guard that prevents derivation from
	Unchecked_Union types.
	(Process_Subtype): Remove quard that prevents the creation of Unchecked_
	Union subtypes.

	* sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
	references to Unchecked_Union discriminants.

	* sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
	formal generation when dealing with Unchecked_Unions.
	(Set_Actual_Subtypes): Add condition to prevent generation of actual
	subtypes for Unchecked_Unions.

	* sem_ch7.adb (Analyze_Package_Specification): Add procedure
	Inspect_Unchecked_Union_Completion. It is used to detect incorrect
	completions of discriminated partial views by Unchecked_Unions and
	produce an error message.

2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* trans.c (struct stmt_group): New field, GLOBAL.
	(global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
	(struct elab_info): New struct.
	(elab_info_list, gnu_elab_proc_stack): New variables.
	(Compilation_Unit_to_gnu): New procedure.
	(gigi): Call it and also handle elaboration procs we've saved.
	(gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
	global field from parent.
	(gnat_to_gnu): Get decl from gnu_elab_proc_stack.
	(gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
	(start_stmt_group): Initialize global field from parent.
	(add_decl_expr): Set to global for current statement group.
	(gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
	post.

	* utils.c (global_bindings_p): True when no current_function_decl; no
	longer check current_binding_level.

2004-08-09  Ben Brosgol  <brosgol@gnat.com>

	* xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
	choice.

	* gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.

From-SVN: r85714
2004-08-09 14:24:25 +02:00
Andreas Schwab
160ff372bd utils.c (gnat_define_builtin): Remove second parameter of make_decl_rtl.
* utils.c (gnat_define_builtin): Remove second parameter of
	make_decl_rtl.
	(begin_subprog_body): Likewise.

From-SVN: r85640
2004-08-06 14:21:54 +00:00
Geoffrey Keating
0e6df31e19 re PR c/14516 (-fleading-underscore does not work correctly for file static variables)
2004-08-04  Geoffrey Keating  <geoffk@apple.com>

	PR 14516
	* c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
	* c-common.h (make_rtl_for_local_static): Delete.
	* c-decl.c (shadow_tag_warned): Clean up comment.
	(finish_decl): Clean up spacing.  Use set_user_assembler_name when
	appropriate.  Don't pass asmspec to rest_of_decl_compilation.
	* c-semantics.c (make_rtl_for_local_static): Delete.
	* expr.c (init_block_move_fn): Use set_user_assembler_name.
	(init_block_clear_fn): Likewise.
	* passes.c (rest_of_decl_compilation): Remove asmspec parameter,
	expect it to be in DECL_ASSEMBLER_NAME.  Update callers in many files.
	* toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
	* tree.h (make_decl_rtl): Remove second parameter.
	(set_user_assembler_name): New.
	* varasm.c (set_user_assembler_name): New.
	(make_decl_rtl): Remove second parameter.  Update callers in many
	files.

Index: cp/ChangeLog
2004-08-04  Geoffrey Keating  <geoffk@apple.com>

	* decl.c (make_rtl_for_nonlocal_decl): Set DECL_ASSEMBLER_NAME rather
	than passing it as a parameter to rest_of_decl_compilation.
	* decl2.c (grokfield): Use set_user_assembler_name.

From-SVN: r85593
2004-08-05 05:52:01 +00:00
Arnaud Charlet
615cbd95bd [multiple changes]
2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>

	* sem_util.adb (Requires_Transient_Scope): Temporarily disable
	optimization, not supported by the tree-ssa back-end.

2004-07-26  Olivier Hainque  <hainque@act-europe.fr>

	* s-mastop-irix.adb: Update comments.

	* a-except.adb (Exception_Information): Raise Constraint_Error if
	exception Id is Null_Id.
	This is required behavior, which is more reliably and clearly checked
	at the top level interface level.

2004-07-26  Javier Miranda  <miranda@gnat.com>

	* exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
	call if a component has no default_expression and the box is used.

	* sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
	default_expression and you use box, it behaves as if you had declared a
	stand-alone object.
	(Resolve_Record_Aggregate): If a component has no default_expression and
	you use box, it behaves as if you had declared a stand-alone object.

	* sem_ch10.adb (Install_Siblings): Do not make visible the private
	entities of private-with siblings.

2004-07-26  Ed Schonberg  <schonberg@gnat.com>

	* sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
	for a component of an itype, set the parent pointer for analysis,
	there is no list in which to insert it.

	* sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
	bona-fide renamings, not for inherited operations.

	* exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
	actual for a formal that is an access parameter, create local
	finalization list even if the expression is not an aggregate.

2004-07-26  Ed Schonberg  <schonberg@gnat.com>

	PR ada/16213
	* sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
	Diagnose properly illegal subprogram renamings that are library units.

2004-07-26  Ed Schonberg  <schonberg@gnat.com>

	PR ada/15588
	* sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
	conversion rewritten as an unchecked conversion, check that original
	expression is a variable.

	* exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
	unchecked_conversion, create new node rather than rewriting in place,
	to preserve original construct.

2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* gigi.h (gnat_expand_body): Deleted.

	* Make-lang.in: (trans.o): Depends on function.h.

	* misc.c: (gnat_expand_body): Moved to here.

	* trans.c (gnat_expand_body_1): Deleted.
	(gnat_expand_body): Moved from here.
	(gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
	(add_stmt): Check for marked visited with global_bindings_p.
	(gnat_gimplify_expr, case COMPONENT_REF): New case.
	(gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.

	* utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
	VIEW_CONVERT_EXPR if not operation type.

	* utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
	fat pointer.

	* decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
	changes: reformatting of negation operators, removing unneeded
	inequality comparison with zero, converting equality comparisons with
	zero to negations, changing int/0/1 to bool/false/true, replace calls
	to gigi_abort with abort, and various other similar changes.

2004-07-26  Vincent Celier  <celier@gnat.com>

	* gnatcmd.adb (GNATCmd): Add processing for new built-in command
	"setup".

	* make.adb (Gnatmake): Fail when a library is not present and there is
	no object directory.

	* mlib-prj.adb (Check_Library): No need to check if the library needs
	to be rebuilt if there is no object directory, hence no object files
	to build the library.

	* opt.ads (Setup_Projects): New Boolean flag.

	* prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
	Location.
	Create directory when Kind /= "" and in "gnat setup". Report error if
	directory cannot be created.
	(Ada_Check): Create library interface copy dir if it does not exist
	and we are in "gnat setup".
	(Find_Sources): No error if in "gnat setup" and no Ada sources were
	found.
	(Language_Independent_Check): Create object directory, exec directory
	and/or library directory if they do not exist and we are in
	"gnat setup".

	* vms_conv.ads: (Command_Type): New command Setup.

	* vms_conv.adb (Initialize): Add Setup component of Cammand_List.

	* vms_data.ads: Add qualifiers/switches for new built-in command
	"setup".

From-SVN: r85188
2004-07-26 12:42:13 +02:00
Richard Henderson
b785f485ec c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P on the RESULT_DECL.
* c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
        on the RESULT_DECL.
        * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
        * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
        DECL_IGNORED_P to new decl.
ada/
        * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
        DECL_IGNORED_P on RESULT_DECL.
cp/
        * decl.c (start_preparsed_function): Set DECL_ARTIFICIAL and
        DECL_IGNORED_P on RESULT_DECL.
        * semantics.c (finalize_nrv): Copy them too.
fortran/
        * trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
        and DECL_IGNORED_P on RESULT_DECL.
        (gfc_generate_constructors): Likewise.
java/
        * decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P.

From-SVN: r85145
2004-07-25 01:10:28 -07:00
Richard Kenner
54805e134f trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
* trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
	* utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.

From-SVN: r84742
2004-07-14 23:17:42 -04:00
Arnaud Charlet
a5cb3b3025 [multiple changes]
2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
	object type.
	(gnat_to_gnu_entity, case E_Record_Subtype): Properly set
	TYPE_STUB_DECL.

	* misc.c (gnat_types_compatible_p): New function.
	(LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
	(LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.

	* trans.c (gigi): Move processing of main N_Compilation_Unit here.
	(gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
	(add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
	(mark_visited): Don't mark dummy type.
	(tree_transform <N_Procedure_Call_Statement>): Unless this is an In
	parameter, we must remove any LJM building from GNU_NAME.
	(gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
	(pos_to_constructor): Use int_const_binop.
	(gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
	PARM_DECL.

	* utils.c (gnat_init_decl_processing): Don't make two "void" decls.
	(gnat_pushlevel): Set TREE_USE on BLOCK node.
	(gnat_install_builtins): Add __builtin_memset.

2004-07-13  Olivier Hainque  <hainque@act-europe.fr>

	* decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
	for a renaming, stabilize the initialization expression if we are at a
	local level.  At the local level, uses of the renaming may be performed
	by a direct dereference of the initializing expression, and we don't
	want possible variables there to be evaluated for every use.

	* trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
	Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
	them on the way.  Account for the fact that we may introduce side
	effects in the process.

From-SVN: r84647
2004-07-13 23:40:51 +02:00
Richard Henderson
4dfa034295 tree.def (RTL_EXPR): Remove.
* tree.def (RTL_EXPR): Remove.
        * c-typeck.c (lvalue_p): Don't handle it.
        * expr.c (safe_from_p): Likewise.
        (expand_expr_real_1): Likewise.
        * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise.
        (fold_checksum_tree, tree_expr_nonnegative_p): Likewise.
        * gengtype.c (adjust_field_tree_exp): Likewise.
        * stmt.c (warn_if_unused_value): Likewise.
        * tree-gimple.c (recalculate_side_effects): Likewise.
        * tree-pretty-print.c (dump_generic_node): Likewise.
        * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise.
        (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise.
        * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove.

        * stmt.c (struct stmt_status): Remove x_last_expr_type,
        x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value.
        (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove.
        (expand_expr_stmt): Merge with expand_expr_stmt_value.  Remove
        all the bits that tracked last_expr.
        (expand_end_bindings): Don't track last_expr.
        (expand_start_stmt_expr, expand_end_stmt_expr): Remove.
        (clear_last_expr): Remove.
        (expand_asm): Don't call it.
        (expand_asm_operands, expand_end_cond): Likewise.
        (expand_naked_return, expand_null_return_1): Likewise.
        * c-typeck.c (c_begin_compound_stmt): Likewise.
        * cfgexpand.c (expand_block): Use expand_expr_stmt.
        * expr.c (expand_expr_real_1): Likewise.
        * tree.h: Update prototypes.

        * function.h (struct sequence_stack): Remove sequence_rtl_expr.
        (struct emit_status): Remove sequence_rtl_expr.
        (struct function): Remove x_rtl_expr_chain.
        (seq_rtl_expr, rtl_expr_chain): Remove.
        * function.c (struct temp_slot): Remove rtl_expr.
        (assign_stack_temp_for_type): Don't set it.
        (free_temp_slots, pop_temp_slots): Don't check it.
        (free_after_compilation): Don't clear x_rtl_expr_chain.
        (fixup_var_refs): Don't search it.
        (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove.
        * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr
        or seq_rtl_expr.
        (push_topmost_sequence): Likewise.
        (end_sequence, init_emit): Likewise.
        (start_sequence_for_rtl_expr): Remove.
        * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR.
        * rtl.h (preserve_rtl_expr_result): Remove.

ada/
        * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
        * utils.c (max_size): Likewise.

cp/
        * class.c (fixed_type_or_null): Don't handle RTL_EXPR.
        * method.c (synthesize_method): Don't clear_last_expr.
        * name-lookup.c (maybe_push_cleanup_level): Likewise.

From-SVN: r84009
2004-07-01 18:15:43 -07:00
Richard Kenner
909f21b39e decl.c: Remove calls to add_decl_expr...
* decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
	and rest_of_type_compilation; add arg to create_*_decl.
 	(annotate_decl_with_node): Deleted.
	(gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
	* gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
	(get_current_block_context, gnat_pushdecl): New declarations.
	(gnat_init_stmt_group): Likewise.
	(create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
	* misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
	(LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
	(gnat_init): Call gnat_init_stmt_group.
	* trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
	(gnu_pending_elaboration_list): Deleted.
	(mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
	(gigi): Rearrange initialization calls and move some to last above.
	(gnat_to_gnu): If statement and not in procedure, go into elab proc.
	Delete calls to add_decl_expr; add arg to create_*_decl.
	(gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
	(gnat_to_gnu, case N_Subprogram_Body): Move some code to
	begin_subprog_body and call it.
	Don't push and pop ggc context.
	(gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
	(add_stmt): Remove handling of DECL_EXPR from here.
	If not in function, mark visited.
	(add_decl_expr): Put global at top level.
	Check for cases of DECL_INITIAL we have to handle here.
	(process_type): Add extra arg to create_type_decl.
	(build_unit_elab): Rework to just gimplify.
	* utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
	(block_has_vars, mark_visited, add_pending_elaborations): Likewise.
	(get_pending_elaborations, pending_elaborations_p): Likewise.
	(push_pending_elaborations, pop_pending_elaborations): Likewise.
	(get_elaboration_location, insert_elaboration_list): Likewise.
	(gnat_binding_level): Renamed from ada_binding_level.
	(init_gnat_to_gnu): Don't clear pending_elaborations.
	(global_bindings_p): Treat as global if no current_binding_level.
	(set_current_block_context): New function.
	(gnat_pushdecl): Renamed from pushdecl; major rework.
	All callers changed.
	(create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
	(finish_record_type): Call call pushdecl for stub decl.
	(function_nesting_depth): Deleted.
	(begin_subprog_body): Delete obsolete code.
	* utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.

From-SVN: r83816
2004-06-28 17:37:16 -04:00
Richard Kenner
90c28d4836 ada-tree.def (DECL_STMT): Deleted.
2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

        * ada-tree.def (DECL_STMT): Deleted.
        * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
        (DECL_STMT_VAR): Deleted.
        * decl.c: add_decl_stmt now add_decl_expr.
        * gigi.h: Likewise.
        * trans.c: Likewise.
        (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
        (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
        (add_stmt): Only handle padded type here.
        (add_stmt_with_node): Allow gnat_node to not be present.
        (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
        (gnat_gimplify_stmt, case DECL_STMT): Deleted.
        (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
        make a SAVE_EXPR for the entire fat pointer.
        * utils.c (pushdecl): Walk a DECL_EXPR in global case.
        (create_index_type): Make a DECL_EXPR.
        (end_subprog_body): Don't call allocate_struct_function here but
        do clear cfn.

From-SVN: r83722
2004-06-26 17:30:01 -04:00
Richard Kenner
c0e3aa48e5 decl.c (elaborate_expression, [...]): Arguments now bool instead of int.
* decl.c (elaborate_expression, elaborate_expression_1): Arguments
	now bool instead of int.
	(gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
	* trans.c (gnu_switch_label_stack): New function.
	(gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
	elaboration of renamed entity returns.
	(gnat_to_gnu, case N_Case_Statement): Add branches to end label.
	(add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
	(gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
	(gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
	DECL_SIZE_UNIT and simplify variable-sized case.
	(gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
	Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
	(gnat_stabilize_reference): Add arg to COMPONENT_REF.
	(build_unit_elab): Disable for now.
	* utils.c (mark_visited): New function.
	(pushdecl): Walk tree to call it for global decl.
	(update_pointer_to): Update all variants of pointer and ref types.
	Add arg to COMPONENT_REF.
	(convert): Likewise.
	Move check for converting between variants lower down.
	* utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
	(build_allocator): Don't force type of MODIFY_EXPR.
	(gnat_mark_addressable, case VAR_DECL): Unconditionally call
	put_var_into_stack.

From-SVN: r83410
2004-06-20 07:19:47 -04:00
Richard Kenner
966389eeaa ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
* ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
	* ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
	* decl.c (gnat_to_gnu_entity): Also set force_global for imported
	subprograms.
	* trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
	all callers changed.
	(gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
	the way that EXIT_STMT finds the loop label.
	(gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
	(gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
	(add_stmt): Use annotate_with_locus insted of setting directly.
	(pos_to_construct): Set TREE_PURPOSE of each entry to index.
	(gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
	* utils.c (gnat_install_builtins): Install __builtin_memcmp.
	(build_vms_descriptor): Add extra args to ARRAY_REF.
	(convert): Use VIEW_CONVERT_EXPR between aggregate types.
	* utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
	New cases.
	(build_binary_op): Don't make explicit CONVERT_EXPR.
	Add extra rgs to ARRAY_REF.

From-SVN: r83103
2004-06-14 10:09:38 -04:00
Richard Kenner
821e1ea1b1 ada-tree.def (TRANSFORM_EXPR, [...]): Deleted.
* ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
	(GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
	(BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
	(ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
	(STMT_STMT, USE_STMT): New statement codes.
	(LOOP_STMT, EXIT_STMT): Make slight semantic changes.
	* ada-tree.h: Reflect above changes.
 	(struct tree_loop_id): Deleted.
	(union lang_tree_node, struct lang_decl, struct lang_type):
	Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
	and DECL_LANGUAGE_SPECIFIC to reflect these changes.
	(DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
	(IS_ADA_STMT): New macro.
	* decl.c (annotate_decl_with_node): New function.
	(gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
	(gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
	Call add_stmt_with_node to do needed assignments.
	Add call to update setjmp buffer directly, not via EXPR_STMT.
	(maybe_variable): Argment GNAT_NODE deleted.
	* gigi.h (maybe_variable): Likewise.
	(make_transform, add_stmt_with_node, set_block_for_group): New.
	(gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
	(set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
	(discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
	(set_lineno, set_lineno_from_sloc): Likewise.
	(record_code_position, insert_code_for): Likewise.
	(gnat_poplevel): Now returns void.
	(end_subprog_body): Now takes argument.
	* misc.c (cgraph.h, tree-inline.h): New includes.
	(gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
	(gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
	(LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
	(LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
	(gnat_parse_file): Don't set immediate_size_expand.
	Call cgraph functions.
	(gnat_expand_expr): Remove most cases.
	(record_code_position, insert_code_for): Remove from here.
	* trans.c (toplev.h, tree-gimple.h): Now included.
	(discard_file_names): Deleted.
	(gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
	(first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
	(struct stmt_group, current_stmt_group, stmt_group_free_list): New.
	(gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
	(add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
	(gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
	(gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
	(set_block_for_group, add_stmt_list): Likewise.
	(start_stmt_group): Renamed from start_block_stmt.
	(end_stmt_group): Likewise, from end_block_stmt.
	(build_stmt_group): Likewise, from build_block_stmt, also add arg.
	(gigi): Don't set discard_file_names or call set_lineno.
	Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
	(tree_transform): Deleted, now renamed to be gnat_to_gnu.
	Numerous changes throughout to reflect new names and complete
	function-at-a-time implementation.
	(gnat_expand_stmt): Delete or comment out all cases.
	(process_inlined_subprograms): Use add_stmt.
	(process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
	call set_lineno; also remove unneeded block handling.
	(process_type): Remove unneeded block handling.
	(build_unit_elab): Remove calls to deleted functions.
	* utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
	(tree-dump.h): Likewise.
	(struct ada_binding_level): Add field jmpbuf_decl.
	(gnat_define_builtin, gnat_install_builtins): New.
	(gnat_gimplify_function, gnat_finalize): Likewise.
	(gnat_poplevel): No longer return BLOCK, set it instead.
	Remove code dealing with nested functions.
	(gnat_init_decl_processing): Also set size_type_node.
	Call gnat_install_builtins.
	(create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
	(create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
	Remove special-case for "main".
	(end_subprog_body): Add arg and rework for tree-ssa.
	(convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
	Add case for BOOLEAN_TYPE.
	* utils2.c (rtl.h): Now include.
	(build_call_raise): Test Debug_Flag_NN directly.
	(build_call_alloc_dealloc): Don't use local stack allocation for now.
	(gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
	(gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.

From-SVN: r82714
2004-06-07 15:52:53 -04:00
Arnaud Charlet
0ab80019b6 [multiple changes]
2004-06-07  Robert Dewar  <dewar@gnat.com>

	* a-direct.ads, einfo.ads: Minor comment updates

	* s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
	s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
	s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
	s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
	s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.

	* s-interr-sigaction.adb: Remove unreferenced variable
	(Attached_Interrupts).  Minor reformatting.
	Avoid use of variable I (replace by J).

	* par-ch10.adb: Fix text of one error message

	* checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
	exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
	exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
	opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
	par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
	par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
        sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
	sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
	sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
	sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
	snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
	2005 support.

2004-06-07  Doug Rupp  <rupp@gnat.com>

	* mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb

	* s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb

	* mlib-tgt-vms-ia64.adb: New file.

	* Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
	Add mlib-tgt-vms-ia64.adb
	Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
	Move to alpha specific ifeq section.
	Add VMS specific versions of symbols.adb
	Renaming of 5q vms files.

	* 5qsystem.ads renamed to system-vms_64.ads.

2004-06-07  Vincent Celier  <celier@gnat.com>

	* a-calend.ads: Add a GNAT Note comment after function Time_Of to
	explain that when a time of day corresponding to the non existing hour
	on the day switching to DST is specified, Split may return a different
	value for Seconds.

	* gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
	to GNAT PRETTY.

	* g-os_lib.adb (OpenVMS): New Boolean value imported from System.
	(Normalize_Pathname): Only resolve VMS logical names when on VMS.

	* mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
	to False.
	If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
	the linking options.
	(Build_Library.Check_Libs): On VMS, if there is a dependency on
	g-trasym.ads, set Gtrasymobj_Needed to True.

	* prj-attr.adb: Add new package Metrics for gnatmetric

	* prj-nmsc.adb (Record_Other_Sources): Put source file names in
	canonical case to take into account files with upper case characters on
	Windows.
	(Ada_Check): Load the reference symbol file name in the name buffer to
	check it, not the symbol file name.

	* snames.ads, snames.adb: Add standard name Metrics (name of project
	file package for gnatmetric).

	* vms_conv.ads: Add Metric to Comment_Type

	* vms_conv.adb (Initialize): Add component dor Metric in Command_List

	* vms_data.ads: Add qualifiers for GNAT METRIC

	* makegpr.adb (Link_Executables): Take into account the switches
	specified in package Linker of the main project.

2004-06-07  Thomas Quinot  <quinot@act-europe.fr>

	* bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
	the index of the last element is Units.Last, not Units.Table'Last
	(which is usually not a valid index within the actually allocated
	storage for the table).

	* exp_ch4.adb (Insert_Dereference_Action): Change predicate that
	determines whether to generate a call to a checked storage pool
	Dereference action.
	Generate such a call only for a dereference that either comes from
	source, or is the result of rewriting a dereference that comes from
	source.

2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>

	* bindgen.adb (Gen_Output_File): Add support for GAP builds.

2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>

	(gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
	file level, elaborate the stride for inner dimensions in alignment
	units, not bytes.

	* exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
	in a comment.

2004-06-07  Javier Miranda  <miranda@gnat.com>

	* exp_ch6.adb: Correct wrong modification in previous patch

2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>

	* g-trasym.ads: Corrected comment to properly reflect level of support
	on VMS.

2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>

	* lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
	includes case of a variable referenced on the left hand side of an
	assignment, therefore remove redundant code. Variables and prefixes of
	indexed or selected components are now marked as referenced on left
	hand side. Warnings are now properly emitted when variables or prefixes
	are assigned but not read.

	* sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
	left hand side referenced variables. Private access types do not
	produce the warning "variable ... is assigned but never read".
	Add also additional checks to left hand side referenced variables.
	Aliased, renamed objects and access types do not produce the warning
	"variable ... is assigned but never read" since other entities may read
	the memory location.

2004-06-07  Jerome Guitton  <guitton@act-europe.fr>

	* Makefile.in: In the powerpc/vxworks-specific section, restore
	EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
	by mistake).

2004-06-07  Ed Schonberg  <schonberg@gnat.com>

	* sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
	predefined operators.
	Removes spurious type errors from g-trasym-vms.adb.

	* sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
	distinct from the operator appearing in the source, call appropriate
	routine to insert conversions when needed, and complete resolution of
	node.
	(Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
	interpretations for rewritten right operand.
	(Set_Mixed_Mode_Operand): Handle properly a universal real operand when
	the other operand is overloaded and the context is a type conversion.

2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* ada-tree.def (BLOCK_STMT): Now has two operands.
	(BREAK_STMT): New.

	* ada-tree.h: (BLOCK_STMT_BLOCK): New macro.

	* gigi.h: (gnat_poplevel): Now returns a tree.

	* trans.c (end_block_stmt): Add arg; all callers changed.
	(tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
	(start_block_stmt): Clear BLOCK_STMT_BLOCK.
	(add_stmt): Set TREE_TYPE.
	(gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
	(gnat_expand_stmt, case BREAK_STMT): New case.

	* utils.c (gnat_poplevel): Return a BLOCK, if we made one.

2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>

	* s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
	procedure Set_Stack_Size that is not needed.

2004-06-07  Sergey Rybin  <rybin@act-europe.fr>

	* gnat_ugn.texi: Clarify the case when non-standard naming scheme is
	used for gnatpp input file and for the files upon which it depends

2004-06-07  Ben Brosgol  <brosgol@gnat.com>

	* gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter

2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>

	* gnatvsn.ads: Bump version numbers appropriately.
	Add new build type.

2004-06-07  Pascal Obry  <obry@gnat.com>

	* gnat_ugn.texi: Improve comments about imported names and link names
	on Windows. Add a note about the requirement to use -k gnatdll's option
	when working with a DLL which has stripped stdcall symbols (no @nn
	suffix).

From-SVN: r82691
2004-06-07 16:16:34 +02:00
Arnaud Charlet
b5e792e209 [multiple changes]
2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	Part of function-at-a-time conversion

	* misc.c (adjust_decl_rtl): Deleted.
	(LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
	Define.

	* gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
	(add_decl_stmt, add_stmt, block_has_vars): New functions.
	(gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.

	* decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
	when making a decl.
	(gnat_to_gnu_entity): Likewise.
	Use add_stmt to update setjmp buffer.
	Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
	flush_addressof.
	No longer call adjust_decl_rtl.
	(DECL_INIT_BY_ASSIGN_P): New macro.
	(DECL_STMT_VAR): Likewise.

	* trans.c (gigi): Call start_block_stmt to make the outermost
	BLOCK_STMT.
	(gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
	Call start_block_stmt and end_block_stmt temporarily.
	Use gnat_expand_stmt instead of expand_expr_stmt.
	(add_decl_stmt): New function.
	(tree_transform): Call it.
	(add_stmt): Also emit initializing assignment for DECL_STMT if needed.
	(end_block_stmt): Set type and NULL_STMT.
	(gnat_expand_stmt): Make recursize call instead of calling
	expand_expr_stmt.
	(gnat_expand_stmt, case DECL_STMT): New case.
	(set_lineno_from_sloc): Do nothing if global.
	(gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
	(start_block_stmt, add_stmt, end_block_stmt): New functions.
	(build_block_stmt): Call them.
	(gnat_to_code): Don't expand NULL_STMT.
	(build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
	args.
	(tree_transform): Likewise.
	(tree_transform, case N_Null_Statement): Return NULL_STMT.
	(gnat_expand_stmt, case NULL_STMT): New case.
	(gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
	IF_STMT_TRUE.

	* utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
	TREE_ADDRESSABLE.

	* utils.c (create_var_decl): Do not call expand_decl or
	expand_decl_init.
	Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
	Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
	here.
	(struct e_stack): Add chain_next to GTY.
	(struct binding_level): Deleted.
	(struct ada_binding_level): New struct.
	(free_block_chain): New.
	(global_binding_level, clear_binding_level): Deleted.
	(global_bindings_p): Rework to see if no chain.
	(kept_level_p, set_block): Deleted.
	(gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
	new data structure and work directly on BLOCK node.
	(gnat_poplevel): Similarly.
	(get_decls): Look at BLOCK_VARS.
	(insert_block): Work directly on BLOCK node.
	(block_has_var): New function.
	(pushdecl): Rework for new binding structures.
	(gnat_init_decl_processing): Rename and rework calls to pushlevel and
	poplevel.
	(build_subprog_body): Likewise.
	(end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.

	* ada-tree.def (DECL_STMT, NULL_STMT): New codes.

	* ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
	(DECL_STMT_VAR): Likewise.

2004-05-17  Robert Dewar  <dewar@gnat.com>

	* restrict.ads, restrict.adb (Process_Restriction_Synonym): New
	procedure

	* sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
	of restriction synonyums by using
	Restrict.Process_Restriction_Synonyms.

	* snames.ads, snames.adb: Add entries for Process_Restriction_Synonym

	* s-restri.ads (Tasking_Allowed): Correct missing comment

	* s-rident.ads: Add entries for restriction synonyms

	* ali.adb: Fix some problems with badly formatted ALI files that can
	result in infinite loops.

	* s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
	s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
	s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
	s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
	s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
	s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
	s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
	s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
	s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
	a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
	exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
	s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
	s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
	s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
	s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
	s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
	s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
	s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
	s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
	s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
	to Task_Id (minor cleanup).

2004-05-17  Vincent Celier  <celier@gnat.com>

	* g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
	directory separator.

	* prj-proc.adb (Recursive_Process): Inherit attribute Languages from
	project being extended, if Languages is not declared in extending
	project.

2004-05-17  Javier Miranda  <miranda@gnat.com>

	* sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
	limited view of a visible sibling.

From-SVN: r81935
2004-05-17 15:20:48 +02:00
Arnaud Charlet
9bc856ddbf [multiple changes]
2004-05-14  Robert Dewar  <dewar@gnat.com>

	* gnat_ugn.texi: Minor change to -gnatS documentation

	* sprint.adb: Remove some instances of Assert (False) and for this
	purpose replace them by output of a ??? string.

	* checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
	Assert (False).

	* lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
	flag processing. This was suppressing required dependencies in
	No_Run_Time mode and is not needed since the binder does not generate
	references for things in libgnat anyway.

	* sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
	warning.

2004-05-14  Thomas Quinot  <quinot@act-europe.fr>

	* gnat_ugn.texi: Document AIX-specific issue with initialization of
	resolver library.

	* exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
	action for the case of an actual parameter in an init proc call.

2004-05-14  Ed Schonberg  <schonberg@gnat.com>

	* sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
	subtype, check visible entities in base type.

	* exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
	actions if the object is a renaming.

	* sem_ch12.adb (Same_Instantiated_Entity): Predicate for
	Check_Formal_Package_Instance, to determine more precisely when the
	formal and the actual denote the same entity.

2004-05-14  Javier Miranda  <miranda@gnat.com>

	* par-ch10.adb (P_Context_Clause): Complete documentation on AI-262

	* sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
	corresponding to a private_with must be removed from visibility; it
	will be made visible later, just before we analyze the private part of
	the package.
	(Check_Private_Child_Unit): Allow private_with clauses in public
	siblings.
	(Install_Siblings): Make visible the private entities of private-withed
	siblings.
	(Install_Withed_Unit): Do not install the private withed unit if we
	are compiling a package declaration and the Private_With_OK flag was
	not set by the caller. These declarations will be installed later,
	just before we analyze the private part of the package.

	* sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
	during the evaluation of the expression that initializes the object,
	decorate it with the expected type to avoid cascade errors.
	Code cleanup.

	* sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
	subprogram we have to install the private_with clauses after its
	specification has been analyzed (as documented in AI-262.TXT).

	* sem_ch8.adb (Has_Private_With): New function. Determines if the
	current compilation unit has a private with on a given entity.
	(Find_Direct_Name): Detect the Beaujolais problem described in
	AI-262.TXT

	* sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
	provides the functionality of the function Is_Ancestor that was
	previously available in sem_ch10. It has been renamed to avoid
	overloading.

	* sprint.adb (Sprint_Node_Actual): Print limited_with clauses

2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* utils.c (build_vms_descriptor): Use SImode pointers.

2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>

	* gnat_ugn.texi: Revised chapter "GNAT and Libraries".

2004-05-14  GNAT Script  <nobody@gnat.com>

	* Make-lang.in: Makefile automatically updated

From-SVN: r81844
2004-05-14 15:55:12 +02:00
Diego Novillo
6de9cd9a88 Merge tree-ssa-20020619-branch into mainline.
From-SVN: r81764
2004-05-13 02:41:07 -04:00
Roger Sayle
4413b636d9 utils.c (max_size): Use MIN_EXPR to find the minimum value of a COND_EXPR.
* utils.c (max_size): Use MIN_EXPR to find the minimum value of a
	COND_EXPR.

From-SVN: r81721
2004-05-11 22:54:55 +00:00
Arnaud Charlet
5950a3ac27 [multiple changes]
2004-05-10  Doug Rupp  <rupp@gnat.com>

	* 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
	system.aux_dec.

	* s-auxdec.ads: Add Short_Address subtype (moved here from System).

	* Makefile.in: [VMS]: Add translation for 5qauxdec.ads.

	* init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
	Fixes undefined symbols in IA64 gnatlib.

	* 5vinmaop.adb: Reference s-auxdec for Short_Address.

	* 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
	Short_Address). This will be moved to system.auxdec.

2004-05-10  Thomas Quinot  <quinot@act-europe.fr>

	* sem_util.adb: Replace test for presence of a node that is always
	present with a call to Discard_Node.

	* sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
	Analyze on the library unit node after generation of distribution stub
	constructs.  The call was a no-op because Unit_Node has already been
	Analyzed, and the tree fragments for the distribution stubs are
	analyzed as they are inserted in Exp_Dist.
	Update comment regarding to distribution stubs to reflect that we
	do not generate stub in separate files anymore.

	* einfo.ads: Clarify the fact that a tagged private type has the
	E_Record_Type_With_Private Ekind.

	* erroutc.adb: Minor reformatting

	* erroutc.ads (Max_Msg_Length): Increase to cover possible larger
	values if line length is increased using -gnatyM (noticed during code
	reading).

	* eval_fat.adb: Minor reformatting
	Put spaces around exponentiation operator

2004-05-10  Ed Schonberg  <schonberg@gnat.com>

	PR ada/15005
	* sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
	has been rewritten as an explicit dereference, retrieve type of
	original node to check for possibly unconstrained record type.

2004-05-10  Ed Schonberg  <schonberg@gnat.com>

	* exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
	overriding, use the operation of the parent unconditionally.

	* sem_ch4.adb (Remove_Address_Interpretations): Remove address
	operation when either operand is a literal, to avoid further
	ambiguities.

	* sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
	overridden by a previous explicit declaration, mark the previous entity
	as overriding.

	* sem_disp.adb (Check_Dispatching_Operation): New predicate
	Is_Visibly_Controlled, to determine whether a declaration of a
	primitive control operation for a derived type overrides an inherited
	one. Add warning if the explicit declaration does not override.

2004-05-10  Vincent Celier  <celier@gnat.com>

	* gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
	some cases when the sources are no longer present.

	* make.adb (Collect_Arguments): Fail if an external source, not part
	of any project need to be compiled, when switch -x has not been
	specified.

	* makeusg.adb: Document new switch -x

	* opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
	defaulted to False.

	* switch-m.adb (Scan_Make_Switches): New switch -x

	* vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
	gnatmake switch -x.

	* gnat_ugn.texi: Document new gnatmake switch -x

2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>

	* misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.

	* utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
	(process_attributes): Likewise.

2004-05-10  Joel Brobecker  <brobecker@gnat.com>

	* s-inmaop.ads: Fix spelling mistake in one of the comments.

2004-05-10  Robert Dewar  <dewar@gnat.com>

	* gnat_ugn.texi: Document that for config pragma files, the maximum
	line length is always 32767.

	* gnat_rm.texi: For pragma Eliminate, note that concatenation of string
	literals is now allowed.

	* gnat-style.texi: Remove statement about splitting long lines before
	an operator rather than after, since we do not follow this rule at all.
	Clarify rule (really lack of rule) for spaces around exponentiation

	* sem_elim.adb: Allow concatenation of string literals as well as a
	single string literal for pragma arguments.

	* sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function

	* a-textio.adb (Terminate_Line): Do not add line feed if nothing
	written for append case.

	* frontend.adb: Changes to avoid checking max line length in config
	pragma files.

	* g-os_lib.ads: Minor reformatting

	* mlib-utl.adb: Do not define Max_Line_Length locally (definition was
	wrong in any case. Instead use standard value. Noticed during code
	reading.

	* opt.ads (Max_Line_Length): New field, used to implement removal of
	limitation on length of lines when scanning config pragma files.

	* osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
	makeutl.ads, makeutl.adb: Minor reformatting

	* scn.adb: Do not check line length while scanning config pragma files
	Do not check line length while scanning out license information

	* scng.adb: Changes to avoid line length checks while parsing config
	pragma files.

2004-05-10  GNAT Script  <nobody@gnat.com>

	* Make-lang.in: Makefile automatically updated

From-SVN: r81671
2004-05-10 18:18:54 +02:00
Arnaud Charlet
f2c9e65ac5 [multiple changes]
2004-04-27  Ed Schonberg  <schonberg@gnat.com>

	* a-wtmoio.ads: Formal type must be a modular type, not a signed
	integer type.

2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* decl.c (gnat_to_gnu_entity, case object): Call
	__builtin_update_setjmp_buf.

	* gigi.h (update_setjmp_buf): Deleted.
	(ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.

	* misc.c: (update_setjmp_buf): Deleted.

	* trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
	around block of RTL.

	* utils.c (init_gigi_decls): Initialize update_setjmp_buf.

From-SVN: r81218
2004-04-27 12:49:37 +02:00
Arnaud Charlet
cc4f0de1aa [multiple changes]
2004-04-23  Emmanuel Briot  <briot@act-europe.fr>

	* adaint.c (__gnat_try_lock): No longer requires that the parent
	directory be writable, the directory itself is enough.
	(gnat_is_absolute_path): Change profile, so that the call from
	GNAT.OS_Lib can be made more efficient.

	* adaint.h (gnat_is_absolute_path): Change profile, so that the call
	from GNAT.OS_Lib can be made more efficient.

	* g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
	one copy of the file name. Found by code reading.

2004-04-23  Vincent Celier  <celier@gnat.com>

	* gnat_ugn.texi: Add documentation for gnatmake switch -eL
	Correct documentation on gnatmake switches transmitted to the compiler

	* ali.ads: Minor comment fix

2004-04-23  Javier Miranda  <miranda@gnat.com>

	* sem_ch6.adb: (Confirming Types): Code cleanup

	* decl.c (gnat_to_gnu_entity): Give support to anonymous access to
	subprogram types: E_Anonymous_Access_Subprogram_Type and
	E_Anonymous_Access_Protected_Subprogram_Type.

2004-04-23  Thomas Quinot  <quinot@act-europe.fr>

	* sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
	whether a pragma All_Calls_Remote applies to the subprogram on which
	'Access is taken.
	No functional change is introduced by this revision; the new parameter
	will be used to allow calls to local RCI subprograms to be optimized
	to not use the PCS in the case where no pragma All_Calls_Remote applies,
	as is already done in the PolyORB implementation of the DSA.

	* exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
	whether a pragma All_Calls_Remote applies to the subprogram on which
	'Access is taken.
	No functional change is introduced by this revision; the new parameter
	will be used to allow calls to local RCI subprograms to be optimized
	to not use the PCS in the case where no pragma All_Calls_Remote applies,
	as is already done in the PolyORB implementation of the DSA.

2004-04-23  Robert Dewar  <dewar@gnat.com>

	* Makefile.rtl: Add entry for s-addope.o in run time library list
	* Make-lang.in: Add entry for s-addope.o to GNAT1 objects
	* s-addope.ads, s-addope.adb: New files.

	* s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
	s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
	s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
	System.Address to be non-private and signed.

	* sem_elim.adb: Minor reformatting (fairly extensive)
	Some minor code reorganization from code reading
	Add a couple of ??? comments

2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* trans.c (tree_transform, build_unit_elab): Don't call getdecls.
        (tree_transform, case N_If_Statement): Remove non-determinism.

	* utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.

2004-04-23  Sergey Rybin  <rybin@act-europe.fr>

	* gnat_rm.texi: Small fixes in the changes made in the 'pragma
	Eliminate' section.

	* snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
	no longer used as a parameter name for Eliminate pragma).

From-SVN: r81086
2004-04-23 12:58:32 +02:00
Arnaud Charlet
af4b94345e [multiple changes]
2004-04-21  Pascal Obry  <obry@gnat.com>

	* adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
	passed to spawnvp() to properly handle program pathname with spaces on
	Win32.

2004-04-21  Emmanuel Briot  <briot@act-europe.fr>

	* g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
	(Allocate, Deallocate, Free_Physically): Make sure the tasks are
	unlocked in case of exceptions.

2004-04-21  Joel Brobecker  <brobecker@gnat.com>

	* gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
	This function does not exist anymore.

2004-04-21  Thomas Quinot  <quinot@act-europe.fr>

	* gnatbind.adb, gnatlink.adb: Update name of imported C symbol.

	* link.c: Move variables to the __gnat name space.

	* Makefile.in: list link.o explicitly when needed.

	* mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.

2004-04-21  Javier Miranda  <miranda@gnat.com>

	* einfo.adb (Original_Access_Type): New subprogram
	(Set_Original_Access_Type): New subprogram
	(Write_Field21_Name): Write the name of the new field

	* einfo.ads (Original_Access_Type): New field present in access to
	subprogram types.
	Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
	E_Anonymous_Access_Protected_Subprogram_Type.

	* lib-xref.adb (Output_One_Ref): Give support to anonymous access to
	subprogram types.

	* lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
	to anonymous access to subprogram types.

	* sem_attr.adb (Resolve_Attribute): Give support to anonymous access
	to subprogram types.

	* sem_ch3.adb (Access_Definition): Complete decoration of entities
	corresponding to anonymous access to subprogram types.
	(Analyze_Component_Declaration): Add new actual to the call to
	subprogram replace_anonymous_access_to_protected_subprogram.
	(Array_Type_Declaration): Add new actual to the call to subprogram
	replace_anonymous_access_to_protected_subprogram.
	(Process_Discriminants): Add new actual to the call to subprogram
	replace_anonymous_access_to_protected_subprogram.
	(Replace_Anonymous_Access_To_Protected_Subprogram): New formal.

	* sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
	formal.

	* sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
	access to subprogram types.

	* sem_util.adb (Has_Declarations): Addition of package_specification
	nodes.

2004-04-21  Ed Schonberg  <schonberg@gnat.com>

	* sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
	inlined flags to renamed entity only if in current unit.

2004-04-21  Thomas Quinot  <quinot@act-europe.fr>

	* s-parint.ads: Add DSA implementation marker.

	* rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
	value of System.Partition_Interface.DSA_Implementation to determine
	what version of the distributed systems annex is available (no
	implementation, GLADE, or PolyORB).

2004-04-21  Joel Brobecker  <brobecker@gnat.com>

	* targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.

2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
	with new type if alias sets differ.
	Fixes ACATS c41103b.

2004-04-21  Vincent Celier  <celier@gnat.com>

	* prj.ads: Remove FORTRAN as an accepted language: not tested yet.
	Add array Lang_Args for the language specific compiling argument
	switches.

	* gnat_ugn.texi: Explain in more details when a library is rebuilt.

2004-04-21  Sergey Rybin  <rybin@act-europe.fr>

	* gnat_rm.texi: Update the descripton of the Eliminate pragma
	according to the recent changes in the format of the parameters of the
	pragma (replacing Homonym_Number with Source_Location).

From-SVN: r80956
2004-04-21 12:10:33 +02:00
Arnaud Charlet
7324bf49ce [multiple changes]
2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>

	* 5isystem.ads: Removed, unused.

	* gnat_rm.texi: Redo 1.13 change.

2004-04-19  Robert Dewar  <dewar@gnat.com>

	* s-stoele.ads: Clean up definition of Storage_Offset (the new
	definition is cleaner, avoids the kludge of explicit Standard operator
	references, and also is consistent with a visible System.Address with
	no visible operations.

	* s-geveop.adb: Add declarations to avoid assumption of visible
	operations on type System.Address (since these might not be available
	if Address is a non-private type for which the operations
	are made abstract).

	* sem_eval.adb: Minor reformatting

	* s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
	s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
	reformatting (new function spec format).

	* s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
	s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
	s-caun64.adb: Add declarations to avoid assumption of visible
	operations on type System.Address (since these might not be available
	if Address is a non-private type for which the operations are made
	abstract).

	* lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.

	* exp_intr.adb: Minor comment update

	* exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.

	* 5omastop.adb: Add declarations to avoid assumption of visible
	operations on type System.Address (since these might not be available
	if Address is a non-private type for which the operations
	are made abstract).

2004-04-19  Vincent Celier  <celier@gnat.com>

	* switch-m.adb: (Scan_Make_Switches): Process new switch -eL

	* prj-pars.ads (Parse): New Boolean parameter Process_Languages,
	defaulted to Ada.

	* prj-proc.adb (Process): New Boolean parameter Process_Languages,
	defaulted to Ada.
	Call Check with Process_Languages.
	(Check): New Boolean parameter Process_Languages. Call Recursive_Check
	with Process_Languages.
	(Recursive_Check): New Boolean parameter Process_Languages. Call
	Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
	Process_Languages.

	* prj-proc.ads (Process): New Boolean parameter Process_Languages,

	* prj-util.ads, prj-util.adb (Executable_Of): New Boolean
	parameter Ada_Main, defaulted to True.
	Check for Ada specific characteristics only when Ada_Main is True.

	* opt.ads: (Follow_Links): New Boolean flag for gnatmake

	* prj.adb: (Project_Empty): Add new Project_Data components.

	* prj.ads: New types and tables for non Ada languages.
	(Project_Data): New components Languages, Impl_Suffixes,
	First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
	Include_Path, Include_Data_Set.

	* prj-env.ads, prj-env.adb: Minor reformatting

	* prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
	Put subprograms in alphabetical order

	* prj-pars.adb (Parse): New Boolean parameter Process_Languages,
	defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
	Opt.Follow_Links.

	* mlib-prj.adb: Back out modification in last version, as they are
	incorrect.
	(Build_Library.Check_Libs): Remove useless pragma Warnings (Off)

	* make.adb: (Mains): Moved to package Makeutl
	(Linker_Opts): Moved to package Makeutl
	(Is_External_Assignment): Moved to package Makeutl
	(Test_If_Relative_Path): Moved to package Makeutl
	(Gnatmake): Move sorting of linker options to function
	Makeutl.Linker_Options_Switches.

	* Makefile.in: Add makeutl.o to the object files for gnatmake

	* makeusg.adb: Add line for new switch -eL.

	* gnatls.adb (Image): New function.
	(Output_Unit): If in verbose mode, output the list of restrictions
	specified by pragmas Restrictions.

	* 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
	Text_IO.

	* a-calend.adb (Split): Shift the date by multiple of 56 years, if
	needed, to put it in the range 1970 (included) - 2026 (excluded).
	(Time_Of): Do not shift Unix_Min_Year (1970).
	Shift the date by multiple of 56 years, if needed, to put it in the
	range 1970 (included) - 2026 (excluded).

	* adaint.h, adaint.c (__gnat_set_executable): New function.

2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
	and pop GC context.
	(tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
	(tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
	(tree_transform, case N_Procedure_Call_Statement): Build a tree.
	(tree_transform, case N_Code_Statement): Likewise.
	(gnat_expand_stmt, case LABEL_STMT): Don't look at
	LABEL_STMT_FIRST_IN_EH.
	(gnat_expand_stmt, case ASM_STMT): New case.

	* utils2.c (build_unary_op): Properly set TREE_READONLY of
	UNCONSTRAINED_ARRAY_REF.

	* utils.c (poplevel): Temporarily push/pop GC context around inline
	function expansion.

	* decl.c (maybe_variable): Properly set TREE_READONLY of
	UNCONSTRAINED_ARRAY_REF.
	(make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.

	* ada-tree.def: (ASM_STMT): New.

	* ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
	(ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
	ASM_STMT_INPUT): New.
	(ASM_STMT_CLOBBER): Likewise.

2004-04-19  Thomas Quinot  <quinot@act-europe.fr>

	* a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
	general rcheck mechanism to raise Program_Error for E.4(18), instead
	of a custom raiser in System.Partition_Interface.
	Part of general cleanup work before PolyORB integration.

	* snames.ads, snames.adb: Add new runtime library entities and names
	for PolyORB DSA.

	* sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
	exp_dist.
	(Build_Subprogram_Id): New subprogram provided by exp_dist
	Code reorganisation in preparation for PolyORB integration.

	* exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
	exp_dist.
	(Build_Subprogram_Id): New subprogram provided by exp_dist

	* sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
	actual parameter types for call to dereference of an
	access-to-subprogram type.

	* rtsfind.ads: Add new runtime library entities and names for PolyORB
	DSA.

	* gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
	instead, which has the same behaviour here since we never pass it a
	NULL pointer.

	* link.c (run_path_option, Solaris case): Use -Wl, as for other
	platforms.

	* Makefile.in: adjust object file lists for gnatlink and gnatmake
	to account for new dependency upon Interfaces.C.Strings + link.o
	For x86 FreeBSD, use 86numaux.

	* make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
	from Mlib.Tgt to Mlib.

	* mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
	target-independent.

	* mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
	target-specific versions of this subprogram, now implemented as a
	target-independent function in Mlib.

	* 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
	5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
	(Linker_Library_Path_Option): Remove target-specific versions of this
	subprogram, now implemented as a target-independent function in Mlib.

	* atree.adb: (Allocate_Initialize_Node): New subprogram.
	Factors out node table slots allocation.
	(Fix_Parents): New subprogram.
	Encapsulate the pattern of fixing up parent pointers for syntactic
	children of a rewritten node.
	(New_Copy_Tree): Use New_Copy to copy non-entity nodes.
	(Rewrite): Use New_Copy when creating saved copy of original node.
	(Replace): Use Copy_Node to copy nodes.

2004-04-19  Javier Miranda  <miranda@gnat.com>

	* sprint.adb (Sprint_Node_Actual): Give support to the new
	Access_To_Subprogram node available in Access_Definition nodes. In
	addition, give support to the AI-231 node fields: null-exclusion,
	all-present, constant-present.

	* sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram

	* sinfo.ads, sinfo.adb:
	New field Access_To_Subprogram_Definition in Access_Definition nodes

	* sem_ch6.adb (Process_Formals): Move here the code that creates and
	decorates internal subtype declaration corresponding to the
	null-excluding formal. This code was previously in Set_Actual_Subtypes.
	In addition, carry out some code cleanup on this code. In case of
	access to protected subprogram call
	Replace_Anonymous_Access_To_Protected_Subprogram.
	(Set_Actual_Subtypes): Code cleanup.

	* sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
	Find_Type in case of anonymous access renamings. Add warning in case of
	null-excluding attribute used in anonymous access renaming.

	* sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
	subprogram

	* sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
	subprogram.
	(Access_Definition): In case of anonymous access to subprograms call
	the corresponding semantic routine to decorate the node.
	(Access_Subprogram_Declaration): Addition of some comments indicating
	some code that probably should be added here. Detected by comparison
	with the access_definition subprogram.
	(Analyze_Component_Declaration): In case of access to protected
	subprogram call Replace_Anonymous_Access_To_Protected.
	(Array_Type_Declaration): In case of access to protected subprogram call
	Replace_Anonymous_Access_To_Protected_Subprogram.
	(Process_Discriminants): In case of access to protected subprogram call
	Replace_Anonymous_Access_To_Protected_Subprogram.

	* par.adb (P_Access_Definition): New formal that indicates if the
	null-exclusion part was present.
	(P_Access_Type_Definition): New formal that indicates if the caller has
	already parsed the null-excluding part.

	* par-ch3.adb (P_Subtype_Declaration): Code cleanup.
	(P_Identifier_Declarations): Code cleanup and give support to renamings
	of anonymous access to subprogram types.
	(P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
	(P_Array_Type_Definition): Give support to AI-254.
	(P_Component_Items): Give support to AI-254.
	(P_Access_Definition): New formal that indicates if the header was
	already parsed by the caller.
	(P_Access_Type_Definition): New formal that indicates if the caller has
	already parsed the null-excluding part.

	* par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
	call to P_Access_Definition.

2004-04-19  Geert Bosch  <bosch@gnat.com>

	* checks.adb (Apply_Float_Conversion_Check): New procedure to implement
	the delicate semantics of floating-point to integer conversion.
	(Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.

	* eval_fat.adb (Machine_Mantissa): Moved to spec.
	(Machine_Radix): New function.

	* eval_fat.ads (Machine_Mantissa): Moved from body for use in
	conversion checks.
	(Machine_Radix): New function also for use in conversion checks.

2004-04-19  Ed Schonberg  <schonberg@gnat.com>

	* par-prag.adb (Source_File_Name_Project): Fix typo in error message.

	* exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
	to decorate the access-to-protected subprogram and the equivalent type.

	* checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
	to anonymous access to subprogram types.

	* exp_ch4.adb (Expand_N_In): Preserve Static flag before
	constant-folding, for legality checks in contexts that require an RM
	static expression.

	* exp_ch6.adb (Expand_N_Function_Call): If call may generate large
	temporary but stack checking is not enabled, increment serial number
	to so that symbol generation is consistent with and without stack
	checking.

	* exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
	independent on whether stack checking is enabled, caller must check
	the corresponding flag.

	* sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
	range checks.
	(Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
	parent if it has discriminants.
	(Build_Derived_Private_Type): Constructed full view does
	not come from source.
	(Process_Discriminants): Default discriminants on a tagged type are
	legal if this is the internal completion of a private untagged
	derivation.

	* sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
	no constraint checks, because it corresponds to an existing object.

	* sem_prag.adb (Process_Convention): Pragma applies
	only to subprograms in the same declarative part, i.e. the same unit,
	not the same scope.

	* sem_res.adb (Valid_Conversion): In an instance or inlined body,
	ignore type mismatch on a numeric conversion if expression comes from
	expansion.

2004-04-19  Sergey Rybin  <rybin@act-europe.fr>

	* sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
	Homonym_Number parameter, add processing for Source_Location parameter
	corresponding.
	(Check_Eliminated): Remove the check for homonym numbers, add the check
	for source location traces.

	* sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
	with Arg_Source_Location corresponding to the changes in the format of
	the pragma.

	* sem_prag.adb: (Analyze_Pragma): Changes in the processing of
	Eliminate pragma corresponding to the changes in the format of the
	pragma: Homonym_Number is replaced with Source_Location, two ways of
	distinguishing homonyms are mutially-exclusive.

2004-04-19  Joel Brobecker  <brobecker@gnat.com>

	* get_targ.ads (Get_No_Dollar_In_Label): Remove.

	* exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
	No_Dollar_In_Label, no longer necessary, as it is always True.
	(Strip_Suffixes): Likewise.

2004-04-19  Gary Dismukes  <dismukes@gnat.com>

	* s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
	modulus for compatibility with size clause on targets with 16-bit
	Integer.

	* layout.adb (Discrimify): In the case of private types, set Vtyp to
	full type to fix type mismatches on calls to size functions for
	discriminant-dependent array components.

2004-04-19  Jerome Guitton  <guitton@act-europe.fr>

	* Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
	lib.

2004-04-19  Pascal Obry  <obry@gnat.com>

	* mdll-utl.adb (Locate): New version is idempotent.

From-SVN: r80856
2004-04-19 17:20:16 +02:00
Arnaud Charlet
af15298919 [multiple changes]
2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* trans.c (tree_transform): Shortcut returning error_mark_node for
	statements in annotate_only_mode.
	(tree_transform, case N_Label, case N_Return_Statement,
	N_Goto_Statement): Make statement tree instead of generating code.
	(tree_transform, case N_Assignment_Statement): No longer check
	type_annotate_only.
	(gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
	RETURN_STMT): New.
	(first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
	New fcns.
	(gnat_to_gnu): Collect any RTL generated and deal with it.
	(tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
	(tree_transform case N_If_Statement): Rewrite to make IF_STMT.
	(gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.

	* ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.

	* ada-tree.def (EXPR_STMT): Fix typo in name.
	(BLOCK_STMT, IF_STMT): New nodes.

	* ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
	LABEL_STMT_FIRST_IN_EH): New macros.
	(RETURN_STMT_EXPR): Likewise.

	* ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
	IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.

2004-04-08  Thomas Quinot  <quinot@act-europe.fr>

	* atree.ads: Correct documentation on extended nodes.

	* link.c: Set run_path_option for FreeBSD.

2004-04-08  Vincent Celier  <celier@gnat.com>

	* mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
	one of the ALI file, do not link with DEC lib.

	* par.adb Remove the last two characters ("%s" or "%b") when checking
	if a language defined unit may be recompiled.

2004-04-08  Ed Schonberg  <schonberg@gnat.com>

	* sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
	removal of abstract operation leaves no possible interpretation for
	expression.

	* sem_eval.adb (Eval_Qualified_Expression): Use
	Set_Raises_Constraint_Error on node when needed, so that it does not
	get optimized away by subsequent optimizations.

	* sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
	operands even when they are not wrapped in a type conversion.

2004-04-08  Olivier Hainque  <hainque@act-europe.fr>

	* sem_prag.adb (Set_Exported): Warn about making static as result of
	export only when the export is coming from source. This may be not
	be true e.g. on VMS where we expand export pragmas for exception codes
	together with imported or exported exceptions, and we don't want the
	user to be warned about something he didn't write.

2004-04-08  Thomas Quinot  <quinot@act-europe.fr>

	* sem_util.adb (Note_Possible_Modification): Reorganize to remove code
	duplication between normal entities and those declared as renamings.
	No functional change.

	* s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
	inline functions returning an unconstrained result.

2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>

	* utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
	conform to what other front-ends do.

2004-04-08  Doug Rupp  <rupp@gnat.com>

	* 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
	libraries.

From-SVN: r80504
2004-04-08 15:23:50 +02:00
Richard Kenner
4f976745b7 c-decl.c (build_compound_literal): Use TYPE_READONLY.
* c-decl.c (build_compound_literal): Use TYPE_READONLY.
	* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
	* objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
	* c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
	PARM_DECL.
	* calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
	for a type.
	* print-tree.c (print_node): Properly handle side-effects, readonly,
	and constant flags.
	* tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
	and TREE_CONSTANT if not a type.
	* tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
	(IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
	(NON_TYPE_CHECK): New macro.
	(TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.

	* cp/init.c (decl_constant_value): Don't look at DECL_INITIAL
	of PARM_DECL.
	* cp/tree.c (bot_manip, build_min): Don't look at TREE_CONSTANT
	or TREE_SIDE_EFFECTS of a type.

	* ada/decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
	* ada/utils.c (create_field_decl): Likewise.
	* ada/utils2.c (build_unary_op, gnat_build_constructor): Likewise.

From-SVN: r80430
2004-04-05 08:25:26 -04:00
Jan Hubicka
18c6ada9b2 cgraph.c: Add overall comment.
* cgraph.c: Add overall comment.
	(cgraph_inline_hash): New global variable.
	(cgraph_create_node): Break out from ...
	(cgraph_node): ... here.
	(cgraph_edge): New function.
	(cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
	(cgraph_remove_edge): Accept edge, intead of source and destination.
	(cgraph_redirect_edge_callee): New.
	(cgraph_remove_node): Update all new datastructures.
	(cgraph_record_call, cgraph_remove_call): Kill.
	(dump_cgraph_node): Break out from ... ; dump new datastructures.
	(dump_cgraph): ... here.
	(cgraph_function_possibly_inlined_p): Use new hashtable.
	(cgraph_clone_edge, cgraph_clone_node): New.
	* cgraph.h: Include hashtab.h
	(struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
	fields, add inlined_to pointer.
	(cgraph_node): Add pointer to next_clone.
	(cgraph_remove_edge, cgraph_create_edge): Update prototype.
	(cgraph_remove_call, cgraph_record_call): Kill.
	(cgraph_inline_hash): Declare.
	(dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
	cgraph_redirect_edge_callee): Declare.
	(cgraph_create_edges, cgraph_inline_p): Update prorotype.
	(cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
	cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
	* cgraphunit.c: Add overall comment.
	(cgraph_optimize_function): Kill.
	(cgraph_assemble_pending_functions): Do not assemble inline clones.
	(cgraph_finalize_function): Update call of cgraph_remove_node
	(record_call_1): Record call sites.
	(cgraph_create_edges): Accept node instead of decl argument.
	(error_found): New static variable.
	(verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
	(cgraph_analyze_function): Update for new datastructures.
	(cgraph_finalize_compilation_unit): Plug memory leak.
	(cgraph_optimize_function): Kill.
	(cgraph_expand_function): Do not use cgraph_optimize_function.
	(INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
	cgraph_inlined_callees): Kill.
	(cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
	clones.
	(estimate_growth): Simplify.
	(cgraph_clone_inlined_nodes): New function.
	(cgraph_mark_inline_edge): Re-implement.
	(cgraph_mark_inline): Likewise.
	(cgraph_check_inline_limits): Simplify.
	(cgraph_recursive_inlining_p): New.
	(update_callee_keys): Break out from ...
	(cgraph_decide_inlining_of_small_functions): ... here; simplify.
	(cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
	Likewise.
	(cgraph_expand_all_functions):  Remove inline clones from the ordered
	list.
	(cgraph_preserve_function_body_p): New predicate.
	(cgraph_optimize): Verify cgraph.
	* function.h (struct function): Add fields saved_tree/saved_args.
	* timevar.def (TV_CGRAPH_VERIFY): Use verifier.
	* toplev.c (rest_of_compilation): Do not free cfun.
	* tree-inline.c: Include function.h
	(struct inline_data): Add saving_p field; replace decl/current_decl by
	node/current_node.
	(insert_decl_map): New function.
	(copy_body_r): Handle saving; update cgraph datastructure.
	(copy_body): Handle recursive inlining.
	(initialize_inlined_parameters): Likewise.
	(expand_call_inline): Propagate node attributes; update cgraph.
	(optimize_inline_calls): Verify that datastructure still match.
	(save_body): New function.
	* tree-inline.h (save_body): New.
	* tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
	* langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
	* langhooks.c (lang_hooks): Add update_decl_after_saving.

	* cp-lang. (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): Define.
	* cp-tree.h (cp_update_decl_after_saving): Declare.
	* tree.c (cp_update_decl_after_saving): Define.

	* Make-lang.in (com.o): Add dependnecy on function.h
	* com.c: Include function.h
	(finish_function): Clear DECL_STRUCT_FUNCTION.

	* utils.c: Include function.h
	(end_subprog_body): Clear DECL_STRUCT_FUNCTION.

From-SVN: r80334
2004-04-01 23:28:15 +00:00
Richard Kenner
8df83eae1e builtins.c, [...]: Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
* builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
	Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
	* c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
	* calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
	* expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
	* optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
	* tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
	* config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
	* config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
	* stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
	REAL_TYPE, not INTEGER_TYPE.
	(layout_type, case VECTOR_TYPE): Simplify code.
	* tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
	* tree.h: Update comments.
	(STRIP_NOPS): Use TYPE_UNSIGNED.
	(TYPE_UNSIGNED): New macro.
	(TYPE_TRAP_SIGNED): Remove now redundant check.
	(SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.

	* cp/call.c (joust): Use TYPE_UNSIGNED, not TREE_UNSIGNED.
	* cp/class.c (check_bitfield_decl): Likewise.
	* cp/cvt.c (type_promotes_to): Likewise.
	* cp/decl.c (finish_enum): Likewise.
	* cp/mangle.c (write_builtin_type): Likewise.
	* cp/semantics.c (finish_switch_cond, finish_unary_op_expr): Likewise.
	* cp/typeck.c (type_after_usual_arithmetic_conversions): Likewise.
	(build_binary_op): Likewise.

	* f/com.c (ffecom_arrayref_): Use TYPE_UNSIGNED, not TREE_UNSIGNED.
	(ffecom_expr_): Likewise.

	* java/jcf-write.c (generate_bytecode_insns): Use TYPE_UNSIGNED.

	* treelang/treetree.c (tree_lang_signed_or_unsigned_type):
	Use TYPE_UNSIGNED, not TREE_UNSIGNED.

	* ada/decl.c (gnat_to_gnu_entity, make_type_from_size):
	Use TYPE_UNSIGNED, not TREE_UNSIGNED.
	* ada/trans.c (tree_transform, convert_with_check): Likewise.
	* ada/utils.c (gnat_signed_or_unsigned_type): Likewise.
	(build_vms_descriptor, unchecked_convert): Likewise.
	* ada/utils2.c (nonbinary_modular_operation): Likewise.

From-SVN: r80287
2004-03-31 22:50:43 -05:00
Richard Kenner
22421b79c8 alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
* alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
	* c-common.c (handle_mode_attribute): Add extra arg to
	build_pointer_type_for_mode and build_reference_type_for_mode.
	* c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
	for INTEGER_CST.
	* tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
	Chain pointers via TYPE_NEXT_PTR_TO.
	(build_reference_type_for_mode): Similarly.
	(build_type_no_quals): Add extra arg to build_pointer_type_for_mode
	and build_reference_type_for_mode.
	(tree_check4_failed): New function.
	* tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
	(TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
	(TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
	Add check.

	* cp/typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
	for INTEGER_CST.

	* ada/decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
	of No_Strict_Aliasing to build_pointer_type_for_mode.
	* ada/utils.c (update_pointer_to): Walk pointer and ref chains.

From-SVN: r79873
2004-03-23 15:43:44 -05:00
Richard Kenner
6fce44af56 alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
* alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
	* emit-rtl.c (component_ref_for_mem_expr): Likewise.
	(set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
	* explow.c (expr_size): Likewise.
	* expr.h (placeholder_list, find_placeholder): Deleted.
	* expr.c (store_constructor): Likewise.
	(get_inner_reference): Likewise.  Also don't call find_placeholder.
	(placeholder_list, find_placeholder): Deleted.
	(is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
	(expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
	(highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
	* dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
	* dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
	Likewise.
	* fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
	(extract_muldiv, case WITH_RECORD_EXPR): Likewise.
	* tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
	(contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
	Clean up by using first_rtl_op.
	(substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
	(substitute_placeholder_in_expr): New function.
	* tree.def (WITH_RECORD_EXPR): Deleted.
	* tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
	(substitute_placeholder_in_expr): New.

	* ada/decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
	* ada/trans.c (tree_transform, emit_index_check): Likewise.
	* ada/utils.c (build_template): Likewise.
	(max_size, convert): Remove handling of WITH_RECORD_EXPR.
	(maybe_unconstrained_array, unchecked_convert): Likewise.
	* ada/utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
	(build_unary_op): Likewise.
	(compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
	(fill_vms_descriptor): Likewise.
	(build_call_alloc_dealloc): Likewise.
	ALIGN is unsigned.
	* ada/gigi.h (build_call_alloc_dealloc): Alignment is unsigned.

From-SVN: r79789
2004-03-21 13:09:20 -05:00
Arnaud Charlet
555360a506 [multiple changes]
2004-03-02  Emmanuel Briot  <briot@act-europe.fr>

	* ali.adb (Read_Instantiation_Instance): Do not modify the
	current_file_num when reading information about instantiations, since
	this corrupts files in later references.

2004-03-02  Vincent Celier  <celier@gnat.com>

	* bcheck.adb (Check_Consistency): Get the full path of an ALI file
	before checking if it is read-only.

	* bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
	of SRC_DIRS and eliminate duplicates.

	* gprcmd.adb: Replace command "path" with command "path_sep" to return
	the path separator.
	(Usage): Document path_sep

	* Makefile.generic: For Ada and GNU C++ cases, link directly with the
	C++ compiler. No need for a script.
	Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
	Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
	subst.

	* prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
	where there are Ada sources.
	(Set_Ada_Paths): Only add to the include path the source dirs of project
	with Ada sources.
	(Add_To_Path): Add the Display_Values of the directories, not their
	Values.

	* prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
	data.

	* prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
	is not No_Name.
	(Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
	Value is canonicalized.
	(Language_Independent_Check): Do not copy Value to Display_Value when
	canonicalizing Value.

	* prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
	path to find limited with cycles.
	(Parse_Single_Project): Use canonical cased path to find the end of a
	with cycle.

2004-03-02  Ed Schonberg  <schonberg@gnat.com>

	* sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
	and not a child unit.

	* sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
	appear in a with_clause.

	* decl.c (gnat_to_gnu_type): If entity is a generic type, which can
	only happen in type_annotate mode, do not try to elaborate it.

	* exp_util.adb (Force_Evaluation): If expression is a selected
	component on the left of an assignment, use a renaming rather than a
	temporary to remove side effects.

	* freeze.adb (Freeze_Entity): Do not freeze a global entity within an
	inlined instance body, which is analyzed before the end of the
	enclosing scope.

2004-03-02  Robert Dewar  <dewar@gnat.com>

	* par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
	sem_ch4.adb: Use new feature for substitution of keywords in VMS

	* errout.ads, errout.adb: Implement new circuit for substitution of
	keywords in VMS.

	* sem_case.adb (Analyze_Choices): Place message properly when case is
	a subtype reference rather than an explicit range.

	* sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting

2004-03-02  Doug Rupp  <rupp@gnat.com>

	* init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.

2004-03-02  Thomas Quinot  <quinot@act-europe.fr>

	* s-tporft.adb: Add missing locking around call to Initialize_ATCB.

2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
	BLKmode bitfield.

From-SVN: r78758
2004-03-02 14:50:15 +01:00
Steven Bosscher
1da326c335 (c-decl.c, [...]): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
* (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
        function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
        tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
        * ada/utils.c: Likewise.
        * cp/decl.c: Likewise.
        * f/com.c: Likewise.
        * java/class.c: Likewise.

From-SVN: r77985
2004-02-17 21:33:43 +00:00
Kazu Hirata
136e64db5e utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES with targetm.calls.promote_prototypes.
ada/
	* ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
	with targetm.calls.promote_prototypes.

	gcc/
	* config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
	TARGET_PROMOTE_PROTOTYPES.

	cp/
	* call.c (type_passed_as): Replace PROMOTE_PROTOTYPES with
	targetm.calls.promote_prototypes.

	java/
	* Make-lang.in (java/decl.o, java/expr.o, java/parse.o):
	Depend on target.h.
	* decl.c: Include target.h.
	(start_java_method): Replace PROMOTE_PROTOTYPES with
	targetm.calls.promote_prototypes.
	* expr.c: Include target.h.
	(pop_arguments): Replace PROMOTE_PROTOTYPES with
	targetm.calls.promote_prototypes.
	* parse.y: Include target.h.
	(start_complete_expand_method): Replace PROMOTE_PROTOTYPES
	with targetm.calls.promote_prototypes.

From-SVN: r77345
2004-02-05 22:07:33 +00:00
Arnaud Charlet
6e937c1c5c [multiple changes]
2004-02-02  Vincent Celier  <celier@gnat.com>

	* gprcmd.adb (Check_Args): If condition is false, print the invoked
	comment before the usage.
	Gprcmd: Fail when command is not recognized.
	(Usage): Document command "prefix"

	* g-md5.adb (Digest): Process last block.
	(Update): Do not process last block. Store remaining characters and
	length in Context.

	* g-md5.ads (Update): Document that several call to update are
	equivalent to one call with the concatenated string.
	(Context): Add fields to allow new Update behaviour.

	* fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
	defaulted to False.
	When May_Fail is True and no existing file can be found, return No_File.

	* 6vcstrea.adb: Inlined functions are now wrappers to implementation
	functions.

	* lib-writ.adb (Write_With_Lines): When body file does not exist, use
	spec file name instead on the W line.

2004-02-02  Robert Dewar  <dewar@gnat.com>

	* ali.adb: Read and acquire info from new format restrictions lines

	* bcheck.adb: Add circuits for checking restrictions with parameters

	* bindgen.adb: Output dummy restrictions data
	To be changed later

	* ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
	exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
	freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
	sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
	sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.

	* exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
	the warning message on access to possibly uninitialized variable S)
	Minor changes for new restrictions handling.

	* gnatbind.adb: Minor reformatting
	Minor changes for new restrictions handling
	Move circuit for -r processing here from bcheck (cleaner)

	* gnatcmd.adb, gnatlink.adb: Minor reformatting

	* lib-writ.adb: Output new format restrictions lines

	* lib-writ.ads: Document new R format lines for new restrictions
	handling.

	* s-restri.ads/adb: New files

	* Makefile.rtl: Add entry for s-restri.ads/adb

	* par-ch3.adb: Fix bad error messages starting with upper case letter
	Minor reformatting

	* restrict.adb: Major rewrite throughout for new restrictions handling
	Major point is to handle restrictions with parameters

	* restrict.ads: Major changes in interface to handle restrictions with
	parameters. Also generally simplifies setting of restrictions.

	* snames.ads/adb: New entry for proper handling of No_Requeue

	* sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
	restriction counting.
	Other minor changes for new restrictions handling

	* sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
	Restriction_Warnings now allows full parameter notation
	Major rewrite of Restrictions for new restrictions handling

2004-02-02  Javier Miranda  <miranda@gnat.com>

	* par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
	syntax rule for object renaming declarations.
	(P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
	component definitions.

	* sem_ch3.adb (Analyze_Component_Declaration): Give support to access
	components.
	(Array_Type_Declaration): Give support to access components. In addition
	it was also modified to reflect the name of the object in anonymous
	array types. The old code did not take into account that it is possible
	to have an unconstrained anonymous array with an initial value.
	(Check_Or_Process_Discriminants): Allow access discriminant in
	non-limited types.
	(Process_Discriminants): Allow access discriminant in non-limited types
	Initialize the new Access_Definition field in N_Object_Renaming_Decl
	node.  Change Ada0Y to Ada 0Y in comments

	* sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
	equality operators.
	Change Ada0Y to Ada 0Y in comments

	* sem_ch8.adb (Analyze_Object_Renaming): Give support to access
	renamings Change Ada0Y to Ada 0Y in comments

	* sem_type.adb (Find_Unique_Type): Give support to the equality
	operators for universal access types
	Change Ada0Y to Ada 0Y in comments

	* sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms

	* sinfo.ads (N_Component_Definition): Addition of Access_Definition
	field.
	(N_Object_Renaming_Declaration): Addition of Access_Definition field
	Change Ada0Y to Ada 0Y in comments

	* sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
	component definition and object renaming nodes
	Change Ada0Y to Ada 0Y in comments

2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>

	* restrict.adb: Use the new restriction identifier
	No_Requeue_Statements instead of the old No_Requeue for defining the
	restricted profile.

	* sem_ch9.adb (Analyze_Requeue): Check the new restriction
	No_Requeue_Statements.

	* s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
	that supersedes the GNAT specific restriction No_Requeue. The later is
	kept for backward compatibility.

2004-02-02  Ed Schonberg  <schonberg@gnat.com>

	* lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
	5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
	pragma and fix incorrect ones.

	* sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
	warning if the pragma is redundant.

2004-02-02  Thomas Quinot  <quinot@act-europe.fr>

	* 5staprop.adb: Add missing 'constant' keywords.

	* Makefile.in: use consistent value for SYMLIB on
	platforms where libaddr2line is supported.

2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* utils.c (end_subprog_body): Do not call rest_of_compilation if just
	annotating types.

2004-02-02  Olivier Hainque  <hainque@act-europe.fr>

	* init.c (__gnat_install_handler): Setup an alternate stack for signal
	handlers in the environment thread. This allows proper propagation of
	an exception on stack overflows in this thread even when the builtin
	ABI stack-checking scheme is used without support for a stack reserve
	region.

	* utils.c (create_field_decl): Augment the head comment about bitfield
	creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
	here, because the former is not accurate enough at this point.
	Let finish_record_type decide instead.
	Don't make a bitfield if the field is to be addressable.
	Always set a size for the field if the record is packed, to ensure the
	checks for bitfield creation are triggered.
	(finish_record_type): During last pass over the fields, clear
	DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
	not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
	from DECL_BIT_FIELD.

From-SVN: r77110
2004-02-02 13:32:01 +01:00
Arnaud Charlet
c01a939151 [multiple changes]
2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>

	* utils.c: Update copyright notice, missed in previous change.

2004-01-19  Vincent Celier  <celier@gnat.com>

	* mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
	args if Bind is True. Set First_ALI, if not already done.
	(Build_Library): For Stand Alone Libraries, extract from one ALI file
	an eventual --RTS switch, for gnatbind, and all backend switches +
	--RTS, for linking.

2004-01-19  Robert Dewar  <dewar@gnat.com>

	* sem_attr.adb, memtrack.adb: Minor reformatting

2004-01-19  Ed Schonberg  <schonberg@gnat.com>

	* exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
	that rename enumeration literals. This is properly done in sem_eval.

	* sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
	to functions that rename enumeration literals.

	* sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
	functions that rename enumeration literals.

From-SVN: r76146
2004-01-19 11:37:59 +01:00
Kazu Hirata
510d1e8047 system.h (ASM_OUTPUT_SECTION_NAME): Poison.
gcc/
	* system.h (ASM_OUTPUT_SECTION_NAME): Poison.
	* config/alpha/unicosmk.h: Remove a commented-out definition
	of ASM_OUTPUT_SECTION_NAME.
	* config/stormy16/stormy16.h: Likewise.

	gcc/ada/
	* Make-lang.in (utils.o): Depend on target.h.
	* utils.c: Include target.h.
	(process_attributes): Use targetm.have_named_sections instead
	of ASM_OUTPUT_SECTION_NAME.

From-SVN: r75995
2004-01-16 21:19:07 +00:00
Arnaud Charlet
75baf5b2e0 re PR ada/13142 (gnat1 generating call to library 'setjmp', not using __buitin_setjmp)
PR ada/13142
	* utils.c (init_gigi_decls): Change name of built-in setjmp to
	__builtin_setjmp, since this is apparently needed by recent
	non Ada changes.

From-SVN: r73881
2003-11-24 18:18:19 +01:00
Arnaud Charlet
d05ef0ab60 [multiple changes]
2003-11-17  Jerome Guitton  <guitton@act-europe.fr>

	* 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
	already called in System.Threads.

	* 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
	environment task, as it has been moved to System.Threads.Initialization.

2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>

	* adaint.c (__gnatlib_install_locks): Only reference
	__gnat_install_locks on VMS, since other platforms can avoid using
	--enable-threads=gnat

2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.

	* decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
	TYPE_PACKED_ARRAY_TYPE_P.
	(validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.

	Part of PR ada/12806
	* utils.c (float_type_for_precision): Renamed from float_type_for_size.
	Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.

2003-11-17  Vincent Celier  <celier@gnat.com>

	* gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
	to False.
	Do not set exit status to Failure when Warning is True.
	(Gnatchop): Make errors "no compilation units found" and
	"no source files written" warnings only.

	* make.adb (Gnatmake): When using a project file, set
	Look_In_Primary_Dir to False.
	(Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
	and Local_Configuration_Pragmas in the project where they are declared
	not an extending project which might have inherited them.

	* osint.adb (Locate_File): If Name is already an absolute path, do not
	look for a directory.

	* par-ch10.adb (P_Compilation_Unit): If source contains no token, and
	-gnats (Check_Syntax) is used, issue only a warning, not an error.

	* prj.adb (Register_Default_Naming_Scheme): Add new component Project
	in objects of type Variable_Value.

	* prj.ads: (Variable_Value): New component Project

	* prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
	is in a project extended by Project.

	* prj-proc.adb (Add_Attributes): New parameter Project. Set component
	Project of Variable_Values to this new parameter value.
	(Expression): Set component Project of Variable_Values.
	(Process_Declarative_Items): Call Add_Attributes with parameter Project.
	Set the component Project in array elements.

2003-11-17  Sergey Rybin  <rybin@act-europe.fr>

	* errout.adb: (Initialize): Add initialization for error nodes.

	* sem_ch12.adb (Initialize): Add missing initializations for
	Exchanged_Views and Hidden_Entities.

2003-11-17  Ed Schonberg  <schonberg@gnat.com>

	* sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
	already instantiated tree for use in subsequent inlining.
	(Analyze_Associations, Instantiate_Formal_Subprogram,
	Instantiate_Object): improve error message for mismatch in
	instantiations.

	* sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
	instantiations of subprograms declared in instances.

2003-11-17  Javier Miranda  <miranda@gnat.com>

	* sem_ch4.adb (Analyze_Allocator): Previous modification must be
	executed only under the Extensions_Allowed flag.

2003-11-17  Robert Dewar  <dewar@gnat.com>

	* a-exexda.adb (Address_Image): Fix documentation to indicate leading
	zeroes suppressed.
	(Address_Image): Fix bug of returning 0x instead of 0x0
	Minor reformatting (function specs).

	* einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
	(missed case of 33-63)

	* freeze.adb, sem_ch13.adb: Properly check size of packed bit array

	* s-thread.adb: Add comments for pragma Restriction

	* exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
	sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting

2003-11-17  Ed Falis  <falis@gnat.com>

	* s-thread.adb: Added No_Tasking restriction for this implementation.

2003-11-17  Emmanuel Briot  <briot@act-europe.fr>

	* xref_lib.adb (Parse_Identifier_Info): Add handling of generic
	instanciation references in the parent type description.

2003-11-17  GNAT Script  <nobody@gnat.com>

	* Make-lang.in: Makefile automatically updated

From-SVN: r73672
2003-11-17 15:58:17 +01:00
Arnaud Charlet
12e0c41c11 re PR ada/12806 (Program_Error sinput.adb:397)
* sysdep.c: Problem discovered during IA64 VMS port.
	[VMS] #include <unixio.h> to get proper prototypes.

	* adaint.c:
	Issues discovered/problems fixed during IA64 VMS port.
	[VMS] #define _POSIX_EXIT for proper semantics.
	[VMS] #include <unixio.h> for proper prototypes.
	[VMS] (fork): #define IA64 version.
	(__gnat_os_exit): Remove unnecessary VMS specific code.

	* 3vtrasym.adb: Minor reformatting
	Use terminology encoded/decoded name, rather than C++ specific notion
	of mangling (this is the terminology used throughout GNAT).

	* einfo.h: Regenerated

	* einfo.ads, einfo.adb: Add new flag Is_Thread_Body

	* exp_ch6.adb:
	(Expand_N_Subprogram_Body): Handle expansion of thread body procedure

	* par-prag.adb: Add dummy entry for Thread_Body pragma

	* rtsfind.ads:
	Add entries for System.Threads entities for thread body processing

	* sem_attr.adb:
	(Analyze_Pragma, Access attributes): Check these are not applied to a
	thread body, since this is not permitted

	* sem_prag.adb: Add processing for Thread_Body pragma.
	Minor comment fix.

	* sem_res.adb:
	(Resolve_Call): Check for incorrect attempt to call a thread body
	 procedure with a direct call.

	* snames.ads, snames.adb: Add entry for Thread_Body pragma
	Add names associated with thread body expansion

	* snames.h: Add entry for Thread_Body pragma

	* s-thread.adb: Add entries for thread body processing
	These are dummy bodies so far

	* s-thread.ads: Add documentation on thread body handling.
	Add entries for thread body processing.

	* sem_ch10.adb:
	(Build_Limited_Views): Return after posting an error in case of limited
	with_clause on subprograms, generics, instances or generic renamings
	(Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
	on subprograms, generics, instances or generic renamings

	* raise.c (setup_to_install): Correct mistake in last revision; two
	arguments out of order.

	* trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
	gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
	notice, missed in previous change.
	Remove trailing blanks and other style errors introduced in previous
	change.

	* decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
	rid of the wrapper for a LJM type, ensuring we don't do that if the
	field is addressable.  This avoids potential low level type view
	mismatches later on, for instance in a by-reference argument passing
	process.

	* decl.c (gnat_to_gnu_field): No longer check for BLKmode being
	aligned at byte boundary.

	* decl.c (components_to_record): Do not delete the empty variants from
	the end of the union type.

	* exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
	operation for a derived type, an explicit declaration may use a local
	subtype of Boolean.

	* make.adb (Gnatmake): Allow main sources on the command line with a
	library project when it is only for compilation (no binding or
	linking).

	Part of PR ada/12806:

	* ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
	tree, not integer.

	* decl.c:
	(gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
	not integer.

	* targtyps.c, decl.c, misc.c,
	gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
	routines to work around change in FP sizing semantics in GCC.

	* utils.c:
	(build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.

	* gigi.h: (enumerate_modes): New function.

	* Make-lang.in: (ada/misc.o): Add real.h.

	* misc.c: (enumerate_modes): New function.

From-SVN: r73250
2003-11-04 13:51:47 +01:00
R. Kelley Cook
9373164a48 C90 prototype updates.
From-SVN: r73113
2003-10-31 01:08:43 +00:00
Arnaud Charlet
657a9dd94d 3vtrasym.adb, [...]: Minor reformatting
* 3vtrasym.adb, 5vtraent.ads, sprint.adb,
	sem_ch10.adb: Minor reformatting

	* exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
	(Expand_Assign_Record): Test right hand side for bit unaligned as well

	* 3vtrasym.adb:
	* 5vtraent.adb:
	* 5vtraent.ads:
	* tb-alvms.c:
	Support for TBK$SYMBOLIZE-based symbolic traceback.

	* exp_disp.adb:
	Revert previous change, that did not work well when pragma No_Run_Time
	was used in conjunction with a run-time other than ZFP.

	* make.adb:
	(Gnatmake): When there are no Ada mains in attribute Main, disable the
	 bind and link steps only is switch -z is not used.

	* Makefile.generic: Remove duplicated setting of CC.

	* Makefile.prolog: Set CC to gcc by default, to override make's
	default (cc).

	* einfo.h: Regenerated.

	* sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
	current body, after compiling subunit.

	* itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
	when in deleted code, because gigi needs properly ordered freeze
	actions to annotate types.

	* freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
	prevent the premature freezing of record type that contains
	subcomponents with a private type that does not yet have a completion.

	* sem_ch12.adb:
	(Analyze_Package_Instantiation): Check that instances can not be used in
	limited with_clauses.

	* sem_ch8.adb:
	(Analyze_Package_Renaming): Check that limited withed packages cannot
	be renamed. Improve text on error messages related to limited
	with_clauses.

	* einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.

	* sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
	Update copyright notice.

	* sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
	(Install_Limited_Context_Clauses): New subprogram that isolates all the
	checks required for limited context_clauses and installs the limited
	view.
	(Install_Limited_Withed_Unit): Complete its documentation.
	(Analyze_Context): Check that limited with_clauses are only allowed in
	package specs.
	(Install_Context): Call Install_Limited_Context_Clauses after the
	parents have been installed.
	(Install_Limited_Withed_Unit): Add documentation. Mark the installed
	package as 'From_With_Type'; this mark indicates that the limited view
	is installed. Used to check bad usages of limited with_clauses.
	(Build_Limited_Views): Do not add shadow entities to the scope's list
	of entities. Do not add real entities to the Non_Limited_Views chain.
	Improve error notification.
	(Remove_Context_Clauses): Remove context clauses in two phases:
	limited views first and regular views later (to maintain the
	stack model).
	(Remove_Limited_With_Clause): If the package is analyzed then reinstall
	its visible entities.

	* sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
	with any type that Is_Fixed_Point_Type.

	* sinfo.ads: Fix documentation for Associated_Node attribute.

	* switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
	both '-gnatc' and '-gnatt' are specified.

	* atree.adb (Initialize): Add initialization for Node_Count (set to
	zero).

	* decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
	do not consider as Pure.

	Part of implementation of function-at-a-time:

	* trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
	(tree_transform): Add new argument to build_component_ref.
	(tree_transform, case N_Assignment_Statement): Make and return an
	EXPR_STMT.
	(tree_transform): If result IS_STMT, set flags and return it.
	(gnat_expand_stmt, set_lineno_from_sloc): New functions.

	* utils2.c (build_simple_component_ref, build_component_ref): Add new
	arg, NO_FOLD_P.
	(build_binary_op, case EQ_EXPR): Pass additional arg to it.
	(build_allocator): Likewise.

	* utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
	Add new arg to build_component_ref.
	(maybe_unconstrained_array, unchecked_convert): Likewise.

	* ada-tree.def (EXPR_STMT): New code.

	* ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.

	* decl.c (gnat_to_gnu_entity, case object): Add extra arg to
	build_component_ref calls.

	* misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.

	* gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
	(build_component_ref): Add new argument, NO_FOLD_P.

From-SVN: r73032
2003-10-29 11:26:16 +01:00