Commit Graph

73858 Commits

Author SHA1 Message Date
Daniel Berlin
3c0b6c4300 tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
2006-02-15 Daniel Berlin  <dberlin@dberlin.org>

	* tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
	(tree_code_size): Ditto.
	* tree.h (struct tree_memory_tag): Remove parent_var.
	(struct tree_struct_field_tag): New.
	(SFT_OFFSET): New.
	(SFT_SIZE): New.
	(union tree_node): Add sft member.
	* tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
	specially here.
	(create_sft): Add size and offset argument, set SFT_OFFSET and
	SFT_SIZE.
	(create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
	* treestruct.def: Add TS_STRUCT_FIELD_TAG.
	* tree-flow-inline.h (get_subvar_at): Update for
	SFT_OFFSET/SFT_SIZE.
	(var_can_have_subvars): Ditto.
	(overlap_subvar): Ditto.
	* print-tree.c (print_node): Print out interesting things for
	SFT's.
	* tree-flow.h (struct subvar): Remove offset and size members.
	* tree-ssa-operands.c (get_expr_operands): Update for
	get_indirect_ref_operands changes.
	(get_indirect_ref_operands): Call add_virtual_operand instead of
	add_stmt_operand.  Only recurse on base var if requested.
	(access_can_touch_variable): New function.
	(add_stmt_operand): Split virtual operand handling into ...
	(add_virtual_operand): Here.  Add offset, size, and for_clobber
	arguments.  Prune alias sets.
	(add_call_clobber_ops): Call add_virtual_operand.

From-SVN: r111120
2006-02-15 22:09:45 +00:00
Toon Moene
cce283c7fe re PR fortran/26054 (Gratuitous warning about Fortran 2003 features w/o -std=...)
2006-02-15  Toon Moene  <toon@moene.indiv.nluug.nl>

	PR fortran/26054
	* fortran/options.c: Do not warn for Fortran 2003 features
	by default.
	* testsuite/gfortran.dg/enum_8.f90: Remove check for warning.
	* testsuite/gfortran.dg/iomsg_1.f90: Ditto.
	* testsuite/gfortran.dg/enum_1.f90: Ditto.
	* testsuite/gfortran.dg/enum_9.f90: Ditto.
	* testsuite/gfortran.dg/enum_2.f90: Ditto.
	* testsuite/gfortran.dg/enum_10.f90: Ditto.
	* testsuite/gfortran.dg/enum_3.f90: Ditto.
	* testsuite/gfortran.dg/flush_1.f90: Ditto.
	* testsuite/gfortran.dg/enum_4.f90: Ditto.
	* testsuite/gfortran.dg/array_constructor_1.f90: Ditto.
	* testsuite/gfortran.dg/enum_5.f90: Ditto.
	* testsuite/gfortran.dg/enum_6.f90: Ditto.
	* testsuite/gfortran.dg/enum_7.f90: Ditto.

From-SVN: r111117
2006-02-15 21:06:58 +00:00
Jakub Jelinek
01ea23f3d2 re PR middle-end/26300 (ICE in trunc_int_for_mode)
PR middle-end/26300
	* combine.c (make_extraction): Bail out if ORIG_POS is negative.

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

From-SVN: r111116
2006-02-15 21:41:03 +01:00
Jakub Jelinek
fb57dc0bf0 tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather than TREE_CODE as index into omp_clause_num_ops array.
* tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
	than TREE_CODE as index into omp_clause_num_ops array.

From-SVN: r111115
2006-02-15 21:38:59 +01:00
Uttam Pawar
f4daf7e44e re PR rtl-optimization/26184 (memory leaks in swing modulo scheduling function)
2006-02-15  Uttam Pawar  <uttamp@us.ibm.com>

        PR rtl-optimization/26184
        * modulo-sched.c (generate_reg_moves): Free bitmap vector
        uses_of_defs.
        * modulo-sched.c (sms_schedule): Free g_arr pointer.
        * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
        must_precede, must_follow and tobe_scheduled.

        PR other/26147
        * opts.c (common_handle_option): Free new_option pointer.
        * df-core.c (df_analyze): Free postorder pointer.

From-SVN: r111114
2006-02-15 14:33:33 -05:00
Rafael Espindola
f7ca46d66f Makefile.in: Fix the examples about the use of stamps
* gcc/Makefile.in: Fix the examples about the use of stamps

M    gcc/ChangeLog
M    gcc/Makefile.in

From-SVN: r111113
2006-02-15 18:46:57 +00:00
Tobias Schlüter
8f320bb097 check.c: Update copyright years.
* check.c: Update copyright years.

From-SVN: r111110
2006-02-15 13:42:16 +01:00
Michael Matz
d1a701eb17 re PR middle-end/22275 (bitfield layout change)
PR middle-end/22275

        * stor-layout.c (layout_decl): Zero-width bitfields aren't
        influenced by maximum_field_alignment or DECL_PACKED.
        (update_alignment_for_field): Ditto.
        (place_field): Ditto.
        * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
        this behaviour.

From-SVN: r111109
2006-02-15 12:19:49 +00:00
Tobias Schlüter
b98e315984 check.c (gfc_check_minloc_maxloc, [...]): Don't call dim_range_check on not-present optional dim argument.
* check.c (gfc_check_minloc_maxloc, check_reduction): Don't call
	dim_range_check on not-present optional dim argument.

From-SVN: r111108
2006-02-15 12:02:21 +01:00
Arnaud Charlet
cc26ad97f0 Resync
From-SVN: r111107
2006-02-15 10:58:27 +01:00
Arnaud Charlet
7a3f77d2a9 (Eval_Relational_Op): Use new Is_Known_Null flag to deal with case
of null = null, now known true.

From-SVN: r111106
2006-02-15 10:51:54 +01:00
Arnaud Charlet
51c40324f3 Add section for gnatcheck.
Add documentation for restriction No_Dispatching_Calls
        Add documentation for pragma Ada_2005
        Remove mention of obsolete pragma Propagate_Exceptions

From-SVN: r111105
2006-02-15 10:48:56 +01:00
Arnaud Charlet
7e3d710b32 gnat_ugn.texi: Remove limitations with sparc m64 support.
2006-02-13  Arnaud Charlet  <charlet@adacore.com>
	    Ben Brosgol  <brosgol@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* gnat_ugn.texi: Remove limitations with sparc m64 support.
	Document that gnatbind -M option is for cross environments only.
	Added description of using gnatmem to trace gnat rtl allocs and deallocs
	Add note on use of $ to label implicit run time calls
	Add documentation for -gnatyI (check mode IN)
	Updated chapter on compatibility with HP Ada
	VMS-oriented edits.
	Ran spell and corrected errors
	Add documentation for gnatbind -d and rework documentation of -D
	at the same time.
	Add subprogram/data elimination section.
	Minor editing of annex A.
	Add section for gnatcheck.
	Add documentation for restriction No_Dispatching_Calls
	Add documentation for pragma Ada_2005
	Remove mention of obsolete pragma Propagate_Exceptions
	Document that pragma Unreferenced can appear after DO in ACCEPT
	Clarify Pure_Function for library level units
	Mention Max/Min in connection with No_Implicit_Conditionals
	No_Wide_Characters restriction is no longer partition-wide
	Add a nice example for Universal_Literal_String attribute
	Document that pragma No_Return can take multiple arguments

	* ug_words: Added entry for gnatcheck

	* g-ctrl_c.ads (Install_Handler): Enhance comments

	* g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination

	* g-trasym.ads: Add documentation on how to do off line symbolic
	traceback computation.

	* s-fatgen.adb: Add comments for Unaligned_Valid

	* stand.ads: Fix typo in comment

From-SVN: r111104
2006-02-15 10:47:23 +01:00
Eric Botcazou
7dc56b36b8 tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>

	* tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
	(PPC VxWorks): Likewise.
	(Generic unwinder): Define FORCE_CALL to 0 if not already defined.
	(forced_callee): Make non-inlinable and non-pure.
	(__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.

From-SVN: r111103
2006-02-15 10:47:09 +01:00
Robert Dewar
405b3ed444 s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
2006-02-13  Robert Dewar  <dewar@adacore.com>

	* s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value

From-SVN: r111102
2006-02-15 10:46:58 +01:00
Bob Duff
bfe7c10c9b s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of Scan_Unsigned...
2006-02-13  Bob Duff  <duff@adacore.com>

	* s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
	Scan_Unsigned, so we do not scan leading blanks and sign twice.
	Integer'Value("- 5") and Integer'Value("-+5") now correctly
	raise Constraint_Error.

	* s-vallli.adb (Scan_Long_Long_Integer): Call
	Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
	do not scan leading blanks and sign twice.
	Integer'Value("- 5") and Integer'Value("-+5") now correctly
	raise Constraint_Error.

	* s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
	Scan_Long_Long_Unsigned): Split out most of the processing from
	Scan_Long_Long_Unsigned out into
	Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
	This prevents scanning leading blanks and sign twice.
	Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
	See RM-3.5(44).

	* s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
	out most of the processing from Scan_Unsigned out into
	Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
	This prevents scanning leading blanks and sign twice.

	* s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
	use with Modular'Value attribute.
	(Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
	attribute.

From-SVN: r111101
2006-02-15 10:46:41 +01:00
Quentin Ochem
744ab5804b s-stausa.adb (Initialize_Analyzer): fixed error in assignment of task name.
2006-02-13  Quentin Ochem  <ochem@adacore.com>

	* s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
	task name.

From-SVN: r111100
2006-02-15 10:46:17 +01:00
Ed Schonberg
62b80eaf38 sprint.adb (Write_Itype): Preserve Sloc of declaration...
2006-02-13  Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
	preserve the source unit where the itype is declared, and prevent a
	backend abort.
	(Note_Implicit_Run_Time_Call): New procedure
	(Write_Itype): Handle missing cases (E_Class_Wide_Type and
	E_Subprogram_Type)

	* sprint.ads: Document use of $ for implicit run time routine call

From-SVN: r111099
2006-02-15 10:46:08 +01:00
Thomas Quinot
b8e51f72bd sinput-d.adb (Write_Line): Update the Source_Index_Table after each line.
2006-02-13  Thomas Quinot  <quinot@adacore.com>

	* sinput-d.adb (Write_Line): Update the Source_Index_Table after each
	line. This is necessary to allow In_Extended_Main_Unit to provide
	correct results for itypes while writing out expanded source.
	(Close_File): No need to update the source_index_table here since it's
	now done for each line.

From-SVN: r111098
2006-02-15 10:45:56 +01:00
Ed Schonberg
0456836930 sem_warn.adb (Check_One_Unit): If the unit appears in a limited_with clause...
2006-02-13  Ed Schonberg  <schonberg@adacore.com>

	* sem_warn.adb (Check_One_Unit): If the unit appears in a limited_with
	clause, use the limited view to determine whether any entity from it
	is referenced.

From-SVN: r111097
2006-02-15 10:45:43 +01:00
Ed Schonberg
4e73070af6 sem_type.adb (Write_Overloads): Improve display of candidate interpretations.
2006-02-13  Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* sem_type.adb (Write_Overloads): Improve display of candidate
	interpretations.
	(Add_One_Interp): Do not add to the list of interpretations aliased
	entities corresponding with an abstract interface type that is an
	immediate ancestor of a tagged type; otherwise we have a dummy
	conflict between this entity and the aliased entity.
	(Disambiguate): The predefined equality on universal_access is not
	usable if there is a user-defined equality with the proper signature,
	declared in the same declarative part as the designated type.
	(Find_Unique_Type): The universal_access equality operator defined under
	AI-230 does not cover pool specific access types.
	(Covers): If one of the types is a generic actual subtype, check whether
	it matches the partial view of the other type.

From-SVN: r111096
2006-02-15 10:45:29 +01:00
Ed Schonberg
3640a4e782 sem_elab.adb (Same_Elaboration_Scope): A package that is a compilation unit is an elaboration scope.
2006-02-13  Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* sem_elab.adb (Same_Elaboration_Scope): A package that is a
	compilation unit is an elaboration scope.
	(Add_Task_Proc): Add '\' in 2-line warning message.
	(Activate_All_Desirable): Deal with case of unit with'ed by parent

From-SVN: r111095
2006-02-15 10:45:12 +01:00
Javier Miranda
d97d172645 sem_ch9.adb (Analyze_Protected_Type, [...]): Check that if this is the full-declaration associated with a private...
2006-02-13  Javier Miranda  <miranda@adacore.com>

	* sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
	if this is the full-declaration associated with a private declaration
	that implement interfaces, then the private type declaration must be
	limited.
	(Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
	as aliased. The use of the 'access attribute is not available for such
	object (for this purpose the object should be explicitly marked as
	aliased, but being an anonymous type this is not possible).

From-SVN: r111094
2006-02-15 10:45:00 +01:00
Bob Duff
cdc8c54cf7 sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about redundant use clauses.
2006-02-13  Bob Duff  <duff@adacore.com>

	* sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
	redundant use clauses.
	In particular, if the scope of two use clauses overlaps, but one is not
	entirely included in the other, we should not warn.  This can happen
	with nested packages.
	(Analyze_Subprogram_Renaming): Protect the compiler against previously
	reported errors. The bug was reported when the compiler was built
	with assertions enabled.
	(Find_Type): If the node is a 'Class reference and the prefix is a
	synchronized type without a corresponding record, return the type
	itself.

From-SVN: r111093
2006-02-15 10:44:48 +01:00
Ed Schonberg
fe45e59ec7 sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no abstract interpretations on an operator...
2006-02-13  Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
	abstract interpretations on an operator, remove interpretations that
	yield Address or a type derived from it, if one of the operands is an
	integer literal.
	(Try_Object_Operation.Try_Primitive_Operation,
	Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
	location when creating the new reference to a primitive or class-wide
	operation as a part of rewriting a subprogram call.
	(Try_Primitive_Operations): If context requires a function, collect all
	interpretations after the first match, because there may be primitive
	operations of the same type with the same profile and different return
	types. From code reading.
	(Try_Primitive_Operation): Use the node kind to choose the proper
	operation when a function and a procedure have the same parameter
	profile.
	(Complete_Object_Operation): If formal is an access parameter and prefix
	is an object, rewrite as an Access reference, to match signature of
	primitive operation.
	(Find_Equality_Type, Find_One_Interp): Handle properly equality given
	by an expanded name with prefix Standard, when the operands are of an
	anonymous access type.
	(Remove_Abstract_Operations): If the operation is abstract because it is
	inherited by a user-defined type derived from Address, remove it as
	well from the set of candidate interpretations of an overloaded node.
	(Analyze_Membership_Op): Membership test not applicable to cpp-class
	types.

From-SVN: r111092
2006-02-15 10:44:37 +01:00
Thomas Quinot
57193e0924 sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption that Scope_Stack.First = 1.
2006-02-13  Thomas Quinot  <quinot@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>

	* sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
	that Scope_Stack.First = 1.
	Properly handle Ada_Version_Explicit and Ada_Version_Config, which
	were not always properly handled previously.
	(Formal_Entity): Complete rewrite, to handle properly some complex case
	with multiple levels of parametrization by formal packages.
	(Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
	to the corresponding derived type declaration for proper semantics.

	* sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
	(Check_Component): Enforce restriction on components of
	unchecked_unions: a component in a variant cannot contain tasks or
	controlled types.
	(Unchecked_Union): Allow nested variants and multiple discriminants, to
	conform to AI-216.
	Add pragma Ada_2005 (synonym for Ada_05)
	Properly handle Ada_Version_Explicit and Ada_Version_Config, which
	were not always properly handled previously.
	Document that pragma Propagate_Exceptions has no effect
	(Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
	(Set_Convention_From_Pragma): Check that if a convention is
	specified for a dispatching operation, then it must be
	consistent with the existing convention for the operation.
	(CPP_Class): Because of the C++ ABI compatibility, the programmer is no
	longer required to specify an vtable-ptr component in the record. For
	compatibility reasons we leave the support for the previous definition.
	(Analyze_Pragma, case No_Return): Allow multiple arguments

	* sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
	non-overrideen inherited operation with a controlling result as
	illegal only its implicit declaration comes from the derived type
	declaration of its result's type.
	(Check_Possible_Deferred_Completion): Relocate the object definition
	node of the subtype indication of a deferred constant completion rather
	than directly analyzing it. The analysis of the generated subtype will
	correctly decorate the GNAT tree.
	(Record_Type_Declaration): Check whether this is a declaration for a
	limited derived record before analyzing components.
	(Analyze_Component_Declaration): Diagnose record types  not explicitly
	declared limited when a component has a limited type.
	(Build_Derived_Record_Type): Code reorganization to check if some of
	the inherited subprograms of a tagged type cover interface primitives.
	This check was missing in case of a full-type associated with a private
	type declaration.
	(Constant_Redeclaration): Check that the subtypes of the partial and the
	full view of a constrained deferred constant statically match.
	(Mentions_T): A reference to the current type in an anonymous access
	component declaration  must be an entity name.
	(Make_Incomplete_Type_Declaration): If type is tagged, set type of
	class_wide type to refer to full type, not to the incomplete one.
	(Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
	available. Required to give support to the certified run-time.
	(Analyze_Component_Declaration): In case of anonymous access components
	perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
	(Process_Discriminants): For an access discriminant, use the
	discriminant specification as the associated_node_for_itype, to
	simplify accessibility checks.

From-SVN: r111091
2006-02-15 10:44:24 +01:00
Hristian Kirtchev
561d9139e3 sem_ch10.adb (Check_Redundant_Withs): New procedure in Analyze_Compilation_Unit.
2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>

	* sem_ch10.adb (Check_Redundant_Withs): New procedure in
	Analyze_Compilation_Unit.
	Detect and warn on redundant with clauses detected in a package spec
	and/or body when -gnatwr is used.
	(Analyze_Context): Analyze config pragmas before other items
	(Install_Context_Items): Don't analyze config pragmas here
	(Install_Limited_Withed_Unit): Set limited entity of package in
	with_clause so that cross-reference information or warning messages on
	unused packages can be properly generated
	(Is_Visible_Through_Renamings): Return false if the limited_with_clause
	has Error_Posted set. Prevent infinite loops in illegal programs.
	(Check_Private_Child_Unit): Move test for a nonprivate with clause down
	to the point of the error test requiring the current unit to be private.
	This ensures that private with clauses are not exempted from the basic
	checking for being a descendant of the same library unit parent as a
	withed private descendant unit.
	(Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
	handle private with clauses properly, as well as to account for cases
	where the withed unit is a public descendant of a private ancestor
	(in which case the current unit must be a descendant of the private
	ancestor's parent). The spec comments were updated accordingly. Also,
	the old error message in this subprogram was replaced with error
	messages that mirror the errors tested and reported by
	Check_Private_Child_Unit.
	Parameter and variable names improved for readability.
	(Install_Limited_Context_Clauses): Remove test for a withed unit being
	private as the precondition for calling
	Check_Private_Limited_Withed_Unit since that subprogram has been
	revised to test public units as well as private units.

From-SVN: r111090
2006-02-15 10:44:09 +01:00
Javier Miranda
b8dc622e9f sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an abstract interface type call...
2006-02-13  Javier Miranda  <miranda@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
	abstract interface type call analyze_and_resolve to expand the type
	conversion into the corresponding displacement of the
	reference to the base of the object.
	(Eval_Attribute, case Width): For systems where IEEE extended precision
	is supported, the maximum exponent occupies 4 decimal digits.
	(Accessibility_Message): Add '\' in 2-line warning message.
	(Resolve_Attribute): Likewise.
	(case Attribute_Access): Significantly revise checks
	for illegal access-to-subprogram Access attributes to properly enforce
	the rules of 3.10.2(32/2).
	Diagnose use of current instance with an illegal attribute.

        * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
        to a Node_Id.
        (Enclosing_Generic_Unit): New function to return a node's innermost
        enclosing generic declaration node.
        (Compile_Time_Constraint_Error): Remove '!' in warning messages.
        (Type_Access_Level): The accessibility level of anonymous acccess types
        associated with discriminants is that of the current instance of the
        type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
        (Compile_Time_Constraint_Error): Handle case of conditional expression.
        (Kill_Current_Values_For_Entity): New function
        (Enter_Name): Change formal type to Entity_Id

From-SVN: r111089
2006-02-15 10:43:54 +01:00
Javier Miranda
9b96e234f8 sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that handles default-initialized components to keep...
2006-02-13  Javier Miranda  <miranda@adacore.com>

	* sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
	handles default-initialized components to keep separate the management
	of this feature but also avoid the unrequired resolution and
	expansion of components that do not have partially initialized
	values.
	(Collect_Aggr_Bounds): Add '\' in 2-line warning message.
	(Check_Bounds): Likewise.
	(Check_Length): Likewise.

From-SVN: r111088
2006-02-15 10:43:43 +01:00
Doug Rupp
851cfa6f00 s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
2006-02-13  Douglas Rupp  <rupp@adacore.com>

	* s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.

From-SVN: r111087
2006-02-15 10:43:32 +01:00
Javier Miranda
3bcd6930a9 restrict.ads (No_Dispatching_Calls): New GNAT restriction.
2006-02-13  Javier Miranda  <miranda@adacore.com>
	    Gary Dismukes  <dismukes@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* restrict.ads (No_Dispatching_Calls): New GNAT restriction.

	* sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
	aliased entities to look for the overriden abstract interface
	subprogram.
	(Is_Interface_Subprogram): Complete documentation.
	(Check_Dispatching_Operation): Do not generate code to register the
	operation in the dispatch table if the source is compiled with
	restriction No_Dispatching_Calls.
	(Override_Dispatching_Operation): Check for illegal attempt to override
	No_Return procedure with procedure that is not No_Return
	(Check_Dispatching_Call): Suppress the check for an abstract operation
	when the original node of an actual is a tag-indeterminate attribute
	call, since the attribute, which must be 'Input, can never be abstract.
	(Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
	call to the Input attribute (even when rewritten).
	(Propagate_Tag): Augment comment to indicate the possibility of a call
	to an Input attribute.

	* sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
	calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.

	* s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
	No_Wide_Characters is no longer partition-wide
	No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
	rather than GNAT

From-SVN: r111086
2006-02-15 10:43:23 +01:00
Vincent Celier
e4ffa8adc7 prj-makr.adb (Make): Preserve the comments from the original project file.
2006-02-13  Vincent Celier  <celier@adacore.com>

	* prj-makr.adb (Make): Preserve the comments from the original project
	file.
	When removing nodes (attributes Source_Dirs, Source_Files,
	Source_List_File and package Naming), save the comments and attach the
	saved comments to the newly created nodes.
	Do not add a with clause for the naming package if one already exists.

From-SVN: r111085
2006-02-15 10:43:11 +01:00
Vincent Celier
97b7ca6fff prj.ads (Error_Warning): New enumeration type
2006-02-13  Vincent Celier  <celier@adacore.com>

	* prj.ads (Error_Warning): New enumeration type

	* prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
	unknown, use the location of the project to report the error.
	(When_No_Sources): New global variable
	(Report_No_Ada_Sources): New procedure
	(Check): New parameter When_No_Sources. Set value of global variable
	When_No_Sources,
	(Find_Sources): Call Report_No_Ada_Sources when appropriate
	(Get_Sources_From_File): Ditto
	(Warn_If_Not_Sources): Better warning messages indicating the unit name
	and the file name.

	* prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
	Call Prj.Proc.Process with parameter When_No_Sources.

	* prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
	Call Recursive_Check with parameter When_No_Sources.
	(Recursive_Check): New parameter When_No_Sources. Call itself and
	Prj.Nmsc.Check with parameter When_No_Sources.
	(Process): New parameter When_No_Sources. Call Check with parameter
	When_No_Sources.
	(Copy_Package_Declarations): New procedure to copy renamed parameters
	and setting the location of the declared attributes to the location
	of the renamed package.
	(Process_Declarative_Items): Call Copy_Package_Declarations for renamed
	packages.

From-SVN: r111084
2006-02-15 10:43:00 +01:00
Vincent Celier
795b06b102 prj.adb (Reset): Initialize the first element of table Namings with the standard naming data.
2006-02-13  Vincent Celier  <celier@adacore.com>

	* prj.adb (Reset): Initialize the first element of table Namings with
	the standard naming data.

From-SVN: r111083
2006-02-15 10:42:47 +01:00
Javier Miranda
9c723dcb4d par-endh.adb (Explicit_Start_Label): Add code to protect the parser against source containing syntax errors.
2006-02-13  Javier Miranda  <miranda@adacore.com>

	* par-endh.adb (Explicit_Start_Label): Add code to protect the parser
	against source containing syntax errors.

From-SVN: r111082
2006-02-15 10:42:38 +01:00
Robert Dewar
4f73f89c47 par-ch6.adb, [...]: Implement -gnatyI switch (MODE_IN)
2006-02-13  Robert Dewar  <dewar@adacore.com>

	* par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
	stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
	(MODE_IN)

From-SVN: r111081
2006-02-15 10:42:27 +01:00
Javier Miranda
76346895e7 re PR ada/23973 (without -gnat05, GNAT warns that interface is new kw, but misses one frequent occurence)
2006-02-13  Javier Miranda  <miranda@adacore.com>

	PR ada/23973

	* par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
	code to improve the error message reported when the program has
	declarations of abstract interface types and it is not compiled with
	the -gnat05 switch.
	(P_Access_Definition): Reorganize the code to improve the error
	message reported when the new Ada 2005 syntax for anonymous
	access types is used and the program is not compiled with the
	-gnat05 switch.

From-SVN: r111080
2006-02-15 10:42:14 +01:00
Vincent Celier
8aa0b2c698 mlib-prj.adb (Index): New function
2006-02-13  Vincent Celier  <celier@adacore.com>

	* mlib-prj.adb (Index): New function
	(Build_Library): When building a shared library, add to the run path
	the directory of the shared version of libgcc.
	(Build_Library): Output shared decgnat library.
	(Process_Binder_File): Test for shared decgnat library.

From-SVN: r111079
2006-02-15 10:42:01 +01:00
Vincent Celier
f2c573b112 make.adb (Collect_Arguments_And_Compile): For VMS...
2006-02-13  Vincent Celier  <celier@adacore.com>

	* make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
	main source, add switch -mdebug-main=_ada_ so that the executable can
	be debugged by the standard VMS debugger.
	(Gnatmake): Set No_Main_Subprogram to True when there is no main
	subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
	Exit the Multi_Main_Loop when Unique_Compile is True after compilation
	of the last source, as the binding and linking phases are never
	performed.
	Set all executable obsolete when rebuilding a library.

	* makeutl.adb (Linker_Options_Switches): Do not process empty linker
	options.

From-SVN: r111078
2006-02-15 10:41:49 +01:00
Ed Schonberg
25c87b0f9c lib-xref.adb (Get_Type_Reference): For a private type whose full view is an array type...
2006-02-13  Ed Schonberg  <schonberg@adacore.com>
	    Robert Dewar  <dewar@adacore.com>

	* lib-xref.adb (Get_Type_Reference): For a private type whose full
	view is an array type, indicate the component type as well, for
	navigation purposes.
	(Generate_Reference): Don't consider array ref on LHS to be a case
	of violating pragma Unreferenced.
	Do not give Ada 2005 warning except on real reference.

From-SVN: r111077
2006-02-15 10:41:35 +01:00
Robert Dewar
ae8926a0ed g-spipat.adb (Image, [...]): These two cases were generating incorrect output...
2006-02-13  Robert Dewar  <dewar@adacore.com>

	* g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
	These two cases were generating incorrect output, and if this unit
	was built with checks on, generated a discriminant mismatch constraint
	error.

From-SVN: r111076
2006-02-15 10:41:22 +01:00
Vincent Celier
9312a51e5f gnatcmd.adb (Rules_Switches): New table
2006-02-13  Vincent Celier  <celier@adacore.com>

	* gnatcmd.adb (Rules_Switches): New table
	(Add_To_Rules_Switches): New procedure
	(GNATCmd): For command CHECK, put all options following "-rules" in the
	Rules_Switches table. Append these -rules switches after the -cargs
	switches.

From-SVN: r111075
2006-02-15 10:41:11 +01:00
Arnaud Charlet
6d566287bc gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and native platforms.
* gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
	native platforms.
	(Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
	finalization can occur normally.

From-SVN: r111074
2006-02-15 10:41:02 +01:00
Matthew Heaney
987b2901fd g-dyntab.adb (Index_Of): conversion from Natural can no longer raise Constraint_Error.
2006-02-13  Matthew Heaney  <heaney@adacore.com>

	*  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
	Constraint_Error.

From-SVN: r111073
2006-02-15 10:40:52 +01:00
Pascal Obry
99c222911b g-catiio.adb (Sec_Number): New type used to compute the number of seconds since 1-1-1970.
2006-02-13  Pascal Obry  <obry@adacore.com>

	* g-catiio.adb (Sec_Number): New type used to compute the number of
	seconds since 1-1-1970.
	(Image) [Natural]: The parameter was an Integer, as we can't deal with
	negative numbers (years, months...) it is better to have a Natural here.
	Code clean-up.
	(Image) [Number]: Change parameter from Long_Integer to Number.
	(Image): Use Number type to compute the seconds since 1-1-1970 to fix an
	overflow for dates past year 2038.

From-SVN: r111072
2006-02-15 10:40:43 +01:00
Olivier Hainque
0c52d1f344 g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16...
2006-02-13  Olivier Hainque  <hainque@adacore.com>

	* g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
	to avoid useless and space inefficient overalignments on targets where
	Max_Alignment is larger than 16.

From-SVN: r111071
2006-02-15 10:40:32 +01:00
Javier Miranda
add9f797fa freeze.adb (Freeze_Entity): Handle subtypes of protected types and task types when...
2006-02-13  Javier Miranda  <miranda@adacore.com>

	* freeze.adb (Freeze_Entity): Handle subtypes of protected types and
	task types when accessing to the corresponding record type.
	Remove '!' in warning message.

From-SVN: r111070
2006-02-15 10:40:24 +01:00
Ed Schonberg
59e54267fc re PR ada/18819 (ACATS cdd2a02 fail at runtime)
2006-02-13  Ed Schonberg  <schonberg@adacore.com>
	    Javier Miranda  <miranda@adacore.com>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* exp_util.ads, exp_util.adb (Find_Prim_Op,
	Is_Predefined_Primitive_Operation): When
	searching for the predefined equality operator, verify that operands
	have the same type.
	(Is_Predefined_Dispatching_Operation): Remove the code that looks
	for the last entity in the list of aliased subprograms. This code
	was wrong in case of renamings.
	(Set_Renamed_Subprogram): New procedure
	(Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
	Exp_Type constant computed when entering this subprogram.
	(Known_Null): New function
	(OK_To_Do_Constant_Replacement): New function
	(Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
	(Side_Effect_Free): An attribute reference 'Input is not free of
	side effect, unlike other attributes that are functions. (from code
	reading).
	(Remove_Side_Effects): Expressions that involve packed arrays or records
	are copied at the point of reference, and therefore must be marked as
	renamings of objects.
	(Is_Predefined_Dispatching_Operation): Return false if the operation is
	not a dispatching operation.

	PR ada/18819
	(Remove_Side_Effects): Lift enclosing type conversion nodes for
	elementary types in all cases.

From-SVN: r111069
2006-02-15 10:40:13 +01:00
Thomas Quinot
f55cfa2e7f exp_pakd.ads: Fix typos in comments.
2006-02-13  Thomas Quinot  <quinot@adacore.com>

	* exp_pakd.ads: Fix typos in comments.

	* exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
	array reference that is an explicit dereference, mark the converted
	(packed) array reference as analyzed to prevent a forthcoming
	reanalysis from resetting its type to the original (non-packed) array
	type.

From-SVN: r111068
2006-02-15 10:39:54 +01:00
Robert Dewar
dad9a81668 exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze call.
2006-02-13  Robert Dewar  <dewar@adacore.com>

	* exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
	call.

From-SVN: r111067
2006-02-15 10:39:41 +01:00