1. 31 Oct, 2006 40 commits
    • 20061031-1.c: New test. · af9d0993
              * gcc.c-torture/execute/20061031-1.c: New test.
      
      From-SVN: r118344
      Eric Botcazou committed
    • inclhack.def (hpux11_extern_sendfile): New. · be645fd9
      	* inclhack.def (hpux11_extern_sendfile): New.
      	(hpux11_extern_sendpath): New.
      	* fixincl.x: Regenerate.
      
      From-SVN: r118343
      Steve Ellcey committed
    • re PR libfortran/29627 ([4.1 only] partial unformatted reads shouldn't succeed) · 8a7f7fb6
      2006-10-31  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	PR libfortran/29627
      	* libgfortran.h: Add ERROR_SHORT_RECORD
      	* runtime/error.c (translate_error): Add case
      	for ERROR_SHORT_RECORD.
      	* io/transfer.c (read_block_direct):  Separate codepaths
      	for stream and record unformatted I/O.  Remove unneeded
      	tests for standard input, padding and formatted I/O.
      	If the record is short, read in as much data as possible,
      	then raise the error.
      
      2006-10-31  Thomas Koenig  <Thomas.Koenig@online.de>
      
      	PR libfortran/29627
      	* gfortran.dg/unf_short_record_1.f90:  New test.
      
      From-SVN: r118341
      Thomas Koenig committed
    • Fix typo. · 401c8e80
      From-SVN: r118340
      Arnaud Charlet committed
    • re PR fortran/29067 (gfc_resolve_expr(): Bad expression type) · 150675a8
      	PR fortran/29067
      
      	* decl.c (gfc_set_constant_character_len): NULL-terminate the
      	character constant string.
      	* data.c (create_character_intializer): Likewise.
      	* expr.c (gfc_simplify_expr): NULL-terminate the substring
      	character constant.
      	* primary.c (match_hollerith_constant): NULL-terminate the
      	character constant string.
      
      	* gfortran.dg/pr29067.f: New test.
      
      From-SVN: r118338
      Francois-Xavier Coudert committed
    • Resync. · 70198b9f
      From-SVN: r118337
      Arnaud Charlet committed
    • target-supports.exp (get_compiler_messages): Append options as a single list element. · c03b9206
      2006-10-31  Joseph Myers  <joseph@codesourcery.com>
                  Richard Sandiford  <richard@codesourcery.com>
      
      	* lib/target-supports.exp (get_compiler_messages): Append options
      	as a single list element.
      	(check_effective_target_arm_vfp_ok): New.
      	* gcc.dg/arm-vfp1.c: Use arm_vfp_ok.
      
      Co-Authored-By: Richard Sandiford <richard@codesourcery.com>
      
      From-SVN: r118334
      Joseph Myers committed
    • Resync. · b5ace3b7
      From-SVN: r118333
      Arnaud Charlet committed
    • Add new Ada test cases. · ea7339d1
      From-SVN: r118332
      Arnaud Charlet committed
    • gigi.h: (tree_code_for_record_type): Declare. · c8945d56
      2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
      	    Nicolas Setton  <setton@adacore.com>
      	    Olivier Hainque  <hainque@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      
      	* gigi.h: (tree_code_for_record_type): Declare.
      	(add_global_renaming_pointer): Rename to record_global_renaming_pointer.
      	(get_global_renaming_pointers): Rename to
      	invalidate_global_renaming_pointers.
      	(static_ctors): Delete.
      	(static_dtors): Likewise.
      	(gnat_write_global_declarations): Declare.
      	(create_var_decl): Adjust descriptive comment to indicate that the
      	subprogram may return a CONST_DECL node.
      	(create_true_var_decl): Declare new function, similar to
      	create_var_decl but forcing the creation of a VAR_DECL node.
      	(get_global_renaming_pointers): Declare.
      	(add_global_renaming_pointer): Likewise.
      
      	* ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
      
      	* decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
      	tree before setting TREE_ADDRESSABLE for by-reference return mechanism
      	processing.
      	(gnat_to_gnu_entity): Remove From_With_Type from computation for
      	imported_p.
      	<E_Access_Type>: Use the Non_Limited_View as the full view of the
      	designated type if the pointer comes from a limited_with clause.  Make
      	incomplete designated type if it is in the main unit and has a freeze
      	node.
      	<E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
      	Underlying_Full_View similarly.  Return earlier if the full view already
      	has an associated tree.
      	(gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
      	(gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
      	(gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
      	reference type built for objects with an address clause.
      	Use create_true_var_decl with const_flag set for
      	DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
      	TREE_READONLY set.
      	(gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
      	for Character and Wide_Character types. This info is read by the
      	dwarf-2 writer, and is needed to be able to use the command "ptype
      	character" in the debugger.
      	(gnat_to_gnu_entity): When generating a type representing
      	a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
      	so that debug writers can distinguish it from ordinary integers.
      	(elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
      	addition to TREE_READONLY to assert the constantness of variables for
      	elaboration purposes.
      	(gnat_to_gnu_entity, subprogram cases): Change loops on formal
      	parameters to call new Einfo function First_Formal_With_Extras.
      	(gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
      	protected type with its corresponding discriminant, to obtain a usable
      	declaration
      	(gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
      	for a multiple elaboration of the "equivalent" type.
      	(gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
      	into record_global_renaming_pointer.
      	(gnat_to_gnu_entity) <E_Array_Type>: Do not force
      	TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
      	<E_Array_Subtype>: Likewise.
      	(gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
      	incomplete subtypes and incomplete subtypes of incomplete types visible
      	through a limited with clause.
      	(gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
      	the base index type for the maximum size of the array only if they are
      	constant.
      	(gnat_to_gnu_entity, renaming object case): Do not wrap up the
      	expression into a SAVE_EXPR if stabilization failed.
      
      	* utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
      	a result decl into DECL_BY_REFERENCE on this decl, now what is expected
      	by lower level compilation passes.
      	(gnat_genericize): New function, lowering a function body to GENERIC.
      	Turn the type of RESULT_DECL into a real reference type if the decl
      	has been marked DECL_BY_REFERENCE, and adjust references to the latter
      	accordingly.
      	(gnat_genericize_r): New function. Tree walking callback for
      	gnat_genericize.
      	(convert_from_reference, is_byref_result): New functions. Helpers for
      	gnat_genericize_r.
      	(create_type_decl): Call gnat_pushdecl before calling
      	rest_of_decl_compilation, to make sure that field TYPE_NAME of
      	type_decl is properly set before calling the debug information writers.
      	(write_record_type_debug_info): The heuristics which compute the
      	alignment of a field in a variant record might not be accurate. Add a
      	safety test to make sure no alignment is set to a smaller value than
      	the alignment of the field type.
      	(make_dummy_type): Use the Non_Limited_View as the underlying type if
      	the type comes from a limited_with clause. Do not loop on the full view.
      	(GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
      	(dummy_node_table): New global variable, moved from decl.c.
      	(GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
      	(save_gnu_tree): Use above macros.
      	(get_gnu_tree): Likewise.
      	(present_gnu_tree): Likewise.
      	(init_dummy_type): New function, moved from decl.c. Use above macros.
      	(make_dummy_type): Likewise.
      	(tree_code_for_record_type): New function extracted from make_dummy_type
      	(init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
      	(static_ctors): Change it to a vector, make static.
      	(static_dtors): Likewise.
      	(end_subprog_body): Adjust for above change.
      	(build_global_cdtor): Moved from trans.c.
      	(gnat_write_global_declarations): Emit global constructor and
      	destructor, and call cgraph_optimize before emitting debug info for
      	global declarations.
      	(global_decls): New global variable.
      	(gnat_pushdecl): Store the global declarations in global_decls, for
      	later use.
      	(gnat_write_global_declarations): Emit debug information for global
      	 declarations.
      	(create_var_decl_1): Former create_var_decl, with an extra argument to
      	 state whether the creation of a CONST_DECL is allowed.
      	(create_var_decl): Behavior unchanged. Now a wrapper around
      	create_var_decl_1 allowing CONST_DECL creation.
      	(create_true_var_decl): New function, similar to create_var_decl but
      	forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
      	(create_field_decl): Do not always mark the field as addressable
      	if its type is an aggregate.
      	(global_renaming_pointers): New static variable.
      	(add_global_renaming_pointer): New function.
      	(get_global_renaming_pointers): Likewise.
      
      	* misc.c (gnat_dwarf_name): New function.
      	(LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
      	(gnat_post_options): Add comment about structural alias analysis.
      	(gnat_parse_file): Do not call cgraph_optimize here.
      	(LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
      
      	* trans.c (process_freeze_entity): Don't abort if we already have a
      	non dummy GCC tree for a Concurrent_Record_Type, as it might
      	legitimately have been elaborated while processing the associated
      	Concurrent_Type prior to this explicit freeze node.
      	(Identifier_to_gnu): Do not make a variable referenced in a SJLJ
      	exception handler volatile if it is of variable size.
      	(process_type): Remove bypass for types coming from a limited_with
      	clause.
      	(call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
      	actual, convert the corresponding gnu_actual to the real destination
      	type when necessary.
      	(add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
      	originally TREE_READONLY but whose elaboration cannot be performed
      	statically.
      	Part of fix for F504-021.
      	(tree_transform, subprogram cases): Change loops on formal parameters to
      	call new Einfo function First_Formal_With_Extras.
      	(gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
      	stemming from type conversion for the lhs.
      	(Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
      	number of bits per unit for components of records.
      	(gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
      	(Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
      	with At_End_Proc after the SJLJ EH cleanup.
      	(Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
      	compilation unit.
      	(elaborate_all_entities): Do not retest type_annotate_only.
      	(tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
      	result type of an abstract subprogram, which may be an itype associated
      	with an anonymous access result (related to AI-318-02).
      	(build_global_cdtor): Move to utils.c.
      	(Case_Statement_to_gnu): Avoid adding the choice of a when statement if
      	this choice is not a null tree nor an integer constant.
      	(gigi): Run unshare_save_expr via walk_tree_without_duplicates
      	on the body of elaboration routines instead of mark_unvisited.
      	(add_stmt): Do not mark the tree.
      	(add_decl_expr): Tweak comment.
      	(mark_unvisited): Delete.
      	(unshare_save_expr): New static function.
      	(call_to_gnu): Issue an error when making a temporary around a
      	procedure call because of non-addressable actual parameter if the
      	type of the formal is by_reference.
      	(Compilation_Unit_to_gnu): Invalidate the global renaming pointers
      	after building the elaboration routine.
      
      From-SVN: r118331
      Eric Botcazou committed
    • fmap.adb: Put routines in alpha order · bfc8aa81
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      	    Thomas Quinot  <quinot@adacore.com>
      	    Arnaud Charlet  <charlet@adacore.com>
      
      	* fmap.adb: Put routines in alpha order
      
      	* g-boumai.ads: Remove redundant 'in' keywords
      
      	* g-cgi.adb: Minor reformatting
      
      	* g-cgi.ads: Remove redundant 'in' keywords
      
      	* get_targ.adb: Put routines in alpha order
      
      	* prj-attr.ads: Minor reformatting
      
      	* s-atacco.ads: Minor reformatting
      
      	* scn.adb: Put routines in alpha order
      
      	* sinput-l.adb: Minor comment fix
      
      	* sinput-p.adb: Minor comment fix
      
      	* s-maccod.ads: Minor reformatting
      
      	* s-memory.adb: Minor reformatting
      
      	* s-htable.adb: Fix typo in comment.
      
      	* s-secsta.adb: Minor comment update.
      
      	* s-soflin.adb: Minor reformatting
      
      	* s-stoele.ads: 
      	Add comment about odd qualification in Storage_Offset declaration
      
      	* s-strxdr.adb: 
      	Remove unnecessary 'in' keywords for formal parameters.
      
      	* treeprs.adt: Minor reformatting
      
      	* urealp.adb: Put routines in alpha order
      
      	* s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
      	taking string.
      
      	* s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
      
      	* g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
      
      	* env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
      	workaround as on other platforms.
      
      	* g-eacodu-vms.adb: Remove redundant 'in' keywords
      	* g-expect-vms.adb: Remove redundant 'in' keywords
      
      	* gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
      	clear error message if the list-of-files file cannot be opened.
      
      	* g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
      	equality operator is always visible.
      
      	* lang.opt: Woverlength-strings: New option.
      
      	* nmake.adt: 
      	Update copyright, since nmake.ads and nmake.adb have changed.
      
      	* osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
      	(Binder_Output_Time_Stamps_Set): removed.
      	(Old_Binder_Output_Time_Stamp): idem.
      	(New_Binder_Output_Time_Stamp): idem.
      	(Recording_Time_From_Last_Bind): idem.
      	(Recording_Time_From_Last_Bind): Make constant.
      
      	* output.ads, output.adb (Write_Str): Allow LF characters
      	(Write_Spaces): New procedure
      
      	* prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
      
      	* inline.adb: Minor reformatting
      
      	* s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
      
      	* s-mastop-vms.adb: Remove redundant 'in' keywords
      
      	* s-osprim-vms.adb: Remove redundant 'in' keywords
      
      	* s-trafor-default.adb: Remove redundant 'in' keywords
      
      	* 9drpc.adb: Remove redundant 'in' keywords
      
      	* s-osinte-mingw.ads: Minor reformatting
      
      	* s-inmaop-posix.adb: Minor reformatting
      
      	* a-direio.ads: Remove quotes from Compile_Time_Warning message
      
      	* a-exexda.adb: Minor code reorganization
      
      	* a-filico.adb: Minor reformatting
      
      	* a-finali.adb: Minor reformatting
      
      	* a-nudira.ads: Remove quote from Compile_Time_Warning message
      
      	* a-numeri.ads: Minor reformatting
      
      	* a-sequio.ads: Remove quotes from Compile_Time_Warning message
      
      	* exp_pakd.ads: Fix obsolete comment
      
      	* a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
      	a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
      	Probably not a bug, but certainly neater and more efficient.
      
      	* a-tienio.adb: Minor reformatting
      
      	* comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
      	Avoid assuming low bound of string is 1.
      
      	* gnatbind.adb: Change Bindusg to package and rename procedure as
      	Display, which now ensures that it only outputs usage information once.
      	(Scan_Bind_Arg): Avoid assuming low bound of string is 1.
      
      	* g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
      	Table'First.
      
      	* g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
      	warning.
      	(Match): Add pragma Assert to ensure that Matches'First is zero
      
      	* g-regpat.ads (Match): Document that Matches lower bound must be zero
      
      	* makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
      	documented preconditions (also kills warnings about bad indexes).
      
      	* mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
      	is 1.
      	(Build_Import_Library): Ditto;
      
      	* mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
      
      	* rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
      
      	* sem_case.adb (Analyze_Choices): Add pragma Assert to check that
      	lower bound of choice table is 1.
      
      	* sem_case.ads (Analyze_Choices): Document that lower bound of
      	Choice_Table is 1.
      
      	* s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
      	string is 1.
      
      	* uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
      	and add appropriate Assert pragma to suppress warnings.
      
      	* atree.h, atree.ads, atree.adb
      	Change Elist24 to Elist25
      	Add definitions of Field28 and Node28
      	(Traverse_Field): Use new syntactic parent table in sinfo.
      
      	* cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
      
      	* itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
      
      	* exp_tss.adb: Put routines in alpha order
      
      	* fe.h: Remove redundant declarations.
      
      From-SVN: r118330
      Robert Dewar committed
    • s-osinte-tru64.adb: Mark Asm statements Volatile to prevent warnings (seems a reasonable change... · e0ae4e94
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      
      	* s-osinte-tru64.adb: 
      	Mark Asm statements Volatile to prevent warnings (seems a
      	reasonable change anyway)
      	Fixes new warnings
      
      	* s-mastop-irix.adb: Add Volatile to Asm statements
      	Suppresses warning, and seems appropriate in any case
      
      	* s-osinte-vms.adb: Add Volatile to Asm statement
      
      	* s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
      
      	* exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
      	returned.
      	Add call to Check_Code_Statement
      
      From-SVN: r118329
      Robert Dewar committed
    • debug.adb: Update flags documentation · ba1cbfb9
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      	    Cyrille Comar  <comar@adacore.com>
      	    Ben Brosgol  <brosgol@adacore.com>
      
      	* debug.adb:  Update flags documentation
      
              * gnat_ugn.texi: Add documentation for new -gnatwq switch
              Clean up documentation for several other warning switches
              Clarify how task stack size can be specified with various
              versions of Windows.
              Add note that -gnatVo includes ranges including loops
      	Add documentation for -gnatL switch
      	Add note on elaboration warning for initializing variables
      	Add documentation for new -gnatwt warning switch
      	Document new form of pragma Warnings (On|Off, string)
      	Add comment on use of pragma Warnings to control warnings
      	Add documentation for -gnatjnn switch
      	Modify section on interfacing with C for VMS 64-bit.
      	Add doc for -gnatVe/E
      	Add documentation of new warning flags -gnatww/-gnatwW
      	Add warnings about address clause overlays to list of warnings
      	(Exception Handling Control): Document that the option --RTS must be
      	used consistently for gcc and gnatbind.
      	Clarify that inlining is not always possible
      	Update documentation on pragma Unchecked_Union.
      
      	* gnat_rm.texi: 
      	Add documentation for new extended version of pragma Obsolescent
      	Add documentation for implementation defined attribute 'Stub_Type.
      	Add note on use of Volatile in asm statements
      	Add documentation on use of pragma Unreferenced in context clause
      	Document new form of pragma Warnings (On|Off, pattern)
      	Document pragma Wide_Character_Encoding
      	Add note that pragma Restrictions (No_Elaboration_Code) is only fully
      	enforced if code generation is active.
      	Add section on pragma Suppress to document GNAT specific check
      	Alignment_Check
      	Clarify difference between No_Dispatching_Calls & No_Dispatch.
      	Add documentation for pragma Restrictions (No_Elaboration_Code)
      
      	* gnat-style.texi: 
      	Add comments on layout of subprogram local variables in the
      	presence of nested subprograms.
      
              * ug_words: Resync.
      
      	* elists.ads: Minor reformatting
      	Node returns Node_Or_Entity_Id (doc change only)
      
      	* xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
      
      	* g-arrspl.ads (Create): Update comments.
      
      	* sem.ads: Add details on the handling of the scope stack.
      
              * usage.adb: Update documentation.
      
      	* validsw.ads, validsw.adb: 
      	Add definition of Validity_Check_Components and implement -gnatVe/E
      
              * vms_data.ads: Add missing VMS qualifiers.
      
      	* s-addope.ads: Add documentation on overflow and divide by zero
      
      From-SVN: r118328
      Robert Dewar committed
    • a-rttiev.ads, [...]: This is a significant redesign primarily for the sake of… · ab31b1a6
      a-rttiev.ads, [...]: This is a significant redesign primarily for the sake of automatic timer task...
      
      2006-10-31  Pat Rogers  <rogers@adacore.com>
      
      	* a-rttiev.ads, a-rttiev.adb: 
      	This is a significant redesign primarily for the sake of automatic
      	timer task termination but also to fix a design flaw.
      	Therefore we are now using an RTS lock, instead of a protected
      	object, to provide mutual exclusion to the queue of pending events
      	and the type Timing_Event is no longer a protected type.
      
      From-SVN: r118327
      Pat Rogers committed
    • symbols-processing-vms-ia64.adb, [...] (Process): Do not include symbols that… · 7440d86c
      symbols-processing-vms-ia64.adb, [...] (Process): Do not include symbols that come from generic instantiations in bodies.
      
      2006-10-31  Vincent Celier  <celier@adacore.com>
      
      	* symbols-processing-vms-ia64.adb,
      	symbols-processing-vms-alpha.adb (Process): Do not include symbols
      	that come from generic instantiations in bodies.
      
      From-SVN: r118326
      Vincent Celier committed
    • g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function. · c5e2b716
      2006-10-31  Doug Rupp  <rupp@adacore.com>
      
      	* g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
      	Call TBK$SYMBOLIZE without omitting parameters.
      
      From-SVN: r118325
      Doug Rupp committed
    • a-crbtgo.ads: Commented each subprogram · 3837bc7f
      2006-10-31  Matt Heaney  <heaney@adacore.com>
      
      	* a-crbtgo.ads: Commented each subprogram
      
      	* a-crbtgo.adb: Added reference to book from which algorithms were
      	adapted.
      
              * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
      	indicate which child.
      	(Generic_Conditional_Insert): changed parameter name from "Success" to
      	"Inserted".
      	(Generic_Unconditional_Insert_With_Hint): improved algorithm
      
      	* a-coorse.adb (Replace_Element): changed parameter name in call to
      	conditional insert operation.
      
      	* a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
      
      	* a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
      	Generic_Iteration
      
      	* a-ciorse.adb (Replace_Element): changed parameter name in call to
      	conditional insert operation.
      
      	* a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
      	Generic_Iteration.
      
      	* a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
      	instead of mode inout.
      
      	* a-chtgop.adb (Adjust): modified comments to reflect current AI-302
      	draft
      	(Generic_Read): preserve existing buckets array if possible
      	(Generic_Write): don't send buckets array length anymore
      
      	* a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
      	instead of mode inout.
      
      	* a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
      	(Iterate): manipulate busy-bit here, instead of in Generic_Iteration
      
      	* a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
      	(Iterate): manipulate busy-bit here, instead of in Generic_Iteration
      	(Replace_Element): local operation is now an instantiation
      
      	* a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
      	check current length.
      	(Generic_Replace_Element): new operation
      
      From-SVN: r118324
      Matt Heaney committed
    • makegpr.adb (Check_Compilation_Needed): Take into account path names with spaces. · 31a33125
      2006-10-31  Vincent Celier  <celier@adacore.com>
      
      	* makegpr.adb (Check_Compilation_Needed): Take into account path names
      	with spaces.
      	(Check_Compilation_Needed): When checking a C or C++ source, do not
      	resolve symbolic links.
      	(Display_Command): New Boolean parameter Ellipse, defaulted to False.
      	When not in verbose mode and Ellipse is True, display "..." for the
      	first argument with Display set to False.
      	(Build_Global_Archive): Always set Display True for the first object
      	file. Call Display_Command with Ellipse set to True.
      
      From-SVN: r118323
      Vincent Celier committed
    • a-direct.ads, [...] (Search): New procedure in Ada 2005 · 57d9e177
      2006-10-31  Vincent Celier  <celier@adacore.com>
      
      	* a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
      
      From-SVN: r118322
      Vincent Celier committed
    • a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed in file names. · 271ae089
      2006-10-31  Vincent Celier  <celier@adacore.com>
      
      	* a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
      	in file names.
      
      From-SVN: r118321
      Vincent Celier committed
    • s-stchop.ads: make this unit preelaborate. · 99f50329
      2006-10-31  Olivier Hainque  <hainque@adacore.com>
      
      	* s-stchop.ads: make this unit preelaborate. This is desirable in
      	general and made mandatory by the use of this unit by s-taprop which
      	is itself preelaborate.
      
      	* s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
      	Td_Events component.
      
      From-SVN: r118320
      Olivier Hainque committed
    • widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding... · 86e16c56
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      
      	* widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
      	add more precise check for the character sequence that follows '[' to
      	avoid possible confusion in case if '[' is the last character of a
      	string literals.
      	(Scan_Wide): Always allow brackets encoding
      
      From-SVN: r118319
      Robert Dewar committed
    • s-tpobop.adb (Requeue_Call): Introduce a dispatching point when requeuing to the… · c0297c47
      s-tpobop.adb (Requeue_Call): Introduce a dispatching point when requeuing to the same protected object to...
      
      2006-10-31  Jose Ruiz  <ruiz@adacore.com>
      
      	* s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
      	requeuing to the same protected object to give higher priority tasks
      	the opportunity to execute.
      
      From-SVN: r118318
      Jose Ruiz committed
    • 2006-10-31 Javier Miranda <miranda@adacore.com> · 15b540be
      	* s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
      	(Get_Ceiling): New subprogram that returns
      	the ceiling priority of the protected object.
      	(Set_Ceiling): New subprogram that sets the new ceiling priority of
      	the protected object.
      
      	* s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
      
      	* s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
      
      From-SVN: r118317
      Javier Miranda committed
    • s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set True when... · d5ef47fb
      2006-10-31  Gary Dismukes  <dismukes@adacore.com>
      
      	* s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
      	True when AAMP extended floating-point is in use (48-bit). Change type
      	ByteLF to ByteLLF, add new array type ByteLF and condition the size of
      	the two byte array types on AFloat. Change type of IV_Ilf overlay
      	variable from Byte8 to ByteLF. Add appropriate initializations of
      	floating-point overlays for AAMP cases.
      
      From-SVN: r118316
      Gary Dismukes committed
    • s-restri.ads, [...]: Mark this package as Preelaborate. · f7753fbb
      2006-10-31  Arnaud Charlet  <charlet@adacore.com>
      
      	* s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
      	Remove elaboration code, now done in the binder.
      
      	* s-rident.ads: Make this unit Preelaborate.
      	(No_Restrictions): New constant used to clean up code and follow
      	preelaborate constraints.
      
      	* s-stalib.adb: 
      	Add System.Restrictions dependence, referenced directly from the
      	binder generated file.
      
      From-SVN: r118315
      Arnaud Charlet committed
    • sprint.adb (Sprint_Node_Actual, [...]): Do not print null exclusion twice in the… · 39485a7b
      sprint.adb (Sprint_Node_Actual, [...]): Do not print null exclusion twice in the case of an access definition...
      
      2006-10-31  Ed Schonberg  <schonberg@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      	    Bob Duff  <duff@adacore.com>
      
      	* sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
      	print null exclusion twice in the case of an access definition,
      	Implement new -gnatL switch
      	Remove N_Return_Object_Declaration. We now use
      	N_Object_Declaration instead. Implement the case for
      	N_Extended_Return_Statement. Alphabetize the cases.
      	Add cases for new nodes N_Extended_Return_Statement and
      	N_Return_Object_Declaration. The code is not yet written.
      	Update the output for N_Formal_Object_Declaration
      	and N_Object_Renaming_Declaration.
      	(Write_Itype): Account for the case of a modular integer subtype whose
      	base type is private.
      
      From-SVN: r118314
      Ed Schonberg committed
    • sinfo.ads, sinfo.adb (Set_Synchronized_Present, [...]): Add… · e3da30b2
      sinfo.ads, sinfo.adb (Set_Synchronized_Present, [...]): Add Formal_Derived_Type_Definition and Private_Extension_Declaration to the...
      
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      	    Bob Duff  <duff@adacore.com>
      
      	* sinfo.ads, sinfo.adb (Set_Synchronized_Present,
      	Synchronized_Present): Add Formal_Derived_Type_Definition and
      	Private_Extension_Declaration to the list of assertions.
      	(Is_Entry_Barrier_Function): New flag
      	(Has_Self_Reference): New flag on aggregates, to indicate that they
      	contain a reference to the enclosing type, inserted through a default
      	initialization.
      	(Next_Rep_Item): Move from Node4 to Node5.
      	(Entity): Add this field for N_Attribute_Definition_Clause.
      	(Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
      	(N_Return_Object_Declaration): Remove this node kind. We now use
      	N_Object_Declaration instead.
      	(Actual_Designated_Subtype): Move to a different place to make room in
      	N_Extended_Return_Statement.
      	(Procedure_To_Call): Move to a different place to make room in
      	N_Extended_Return_Statement.
      	(Return_Type): Removed this field to make room in return statements
      	(both kinds).
      	(Return_Statement_Entity): New field in return statements, in part to
      	replace Return_Type, and in part to support the fact that return
      	statements are now pushed on the scope stack during semantic analysis.
      	(Return_Object_Declarations): New field to support extended return
      	statements.
      	(N_Extended_Return_Statement): New node for extended_return_statement
      	nonterminal.
      	(N_Return_Object_Declaration): New node for part of
      	extended_return_statement nonterminal. Needed because all the necessary
      	fields won't fit in N_Extended_Return_Statement.
      	Generic_associations now carry the Box_Present flag, to indicate a
      	default for an actual in a partially parametrized formal package.
      
              * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
      	(Preset_Names): Add entries for Priority_Specific_Dispatching pragma
      	and for the new predefined dispatching policies: EDF_Across_Priorities,
      	Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
      	Introduce new name Stub_Type for implementation defined attribute.
      	Add pragma Preelaborable_Initialization
      	Add entry for Priority attribute.
      	Add Pragma_Wide_Character_Encoding
      	(Get_Convention_Name): Given a convention id, this function returns the
      	corresponding name id from the names table.
      
      From-SVN: r118313
      Robert Dewar committed
    • sem_util.ads, [...] (Enter_Name): Exclude -gnatwh warning messages for entities… · 9b0986f8
      sem_util.ads, [...] (Enter_Name): Exclude -gnatwh warning messages for entities in packages which are not used.
      
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      	    Hristian Kirtchev  <kirtchev@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
              
              * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
      	messages for entities in packages which are not used.
      	(Collect_Synchronized_Interfaces): New procedure.
      	(Overrides_Synchronized_Primitive): New function.
      	(Denotes_Discriminant): Extend predicate to apply to task types.
      	Add missing continuation marks in error msgs
      	(Unqualify): New function for removing zero or more levels of
      	qualification from an expression. There are numerous places where this
      	ought to be used, but we currently only deal properly with zero or one
      	level.
      	(In_Instance); The analysis of the actuals in the instantiation of a
      	child unit is not within an instantiation, even though the parent
      	instance is on the scope stack.
      	(Safe_To_Capture_Value): Exclude the case of variables that are
      	renamings.
      	(Check_Obsolescent): Removed
      	(Is_Aliased_View): A reference to an enclosing instance in an aggregate
      	is an aliased view, even when rewritten as a reference to the target
      	object in an assignment.
      	(Get_Subprogram_Entity): New function
      	(Known_To_Be_Assigned): New function
      	(Type_Access_Level): Compute properly the access level of a return
      	subtype that is an anonymous access type.
      	(Explain_Limited_Type): Correct use of "\" for continuation messages.
      	(Is_Transfer): The new extended_return_statement causes a transfer of
      	control.
      	(Has_Preelaborable_Initialization): New function
      	(Has_Null_Exclusion): New function. Given a node N, determine whether it
      	has a null exclusion depending on its Nkind.
      	Change Is_Lvalue to May_Be_Lvalue
      	(May_Be_Lvalue): Extensive additional code to deal with subprogram
      	arguments (IN parameters are not Lvalues, IN OUT parameters are).
      	(Safe_To_Capture_Value): Extend functionality so it can be used for
      	the current value condition case.
      	(Has_Compatible_Alignment): New function
      	(Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
      	objects to handle the Ada 2005 case, where aliasedness no longer implies
      	that the object is constrained. In particular, for dereferenced names,
      	the designated object must be assumed to be unconstrained.
      	(Kill_Current_Values): Properly deal with the case where we encounter
      	a loop in the scope chain.
      	(Safe_To_Capture_Value): Do not let a loop stop us from capturing
      	a value.
      	(Compile_Time_Constraint_Error): Improve error message in error case
      
      	* exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
      	associated with entities of abstract interface primitives.
      	Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
      
      From-SVN: r118312
      Robert Dewar committed
    • sem_type.adb (Add_One_Interp): If node is an indirect call... · 60573ca2
      2006-10-31  Ed Schonberg  <schonberg@adacore.com>
      	    Hristian Kirtchev  <kirtchev@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      
      	* sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
      	subprogram type to provide better diagnostics in case of ambiguity.
      	(Covers): Handle coverage of formal and actual anonymous access types in
      	the context of generic instantiation.
      	(Covers/Interface_Present_In_Ancestors): Use the base type to manage
      	abstract interface types; this is required to handle concurrent types
      	with discriminants and abstract interface types.
      	(Covers): Include type coverage of both regular incomplete subtypes and
      	incomplete subtypes of incomplete type visibles through a limited with
      	clause.
      
      From-SVN: r118311
      Ed Schonberg committed
    • sem_eval.adb (Compile_Time_Compare): Make use of information from Current_Value… · 29797f34
      sem_eval.adb (Compile_Time_Compare): Make use of information from Current_Value in the conditional case...
      
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      
      	* sem_eval.adb (Compile_Time_Compare): Make use of information from
      	Current_Value in the conditional case, to evaluate additional
      	comparisons at compile time.
      
      From-SVN: r118310
      Robert Dewar committed
    • sem_elab.ads, [...] (Check_Elab_Assign): New procedure Add new calls to this… · a5abb241
      sem_elab.ads, [...] (Check_Elab_Assign): New procedure Add new calls to this procedure during traversal
      
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
      	Add new calls to this procedure during traversal
      	(Activate_Elaborate_All_Desirable): Do not set elaboration flag on
      	another unit if expansion is disabled.
      
      From-SVN: r118309
      Robert Dewar committed
    • sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms inherited… · 67f3c450
      sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms inherited from an interface ancestor by another...
      
      2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
      	inherited from an interface ancestor by another interface in the
      	context of an instance as 'late'.
      	(Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
      	of a call to a function that dispatches on access result.
      	(Check_Dispatching_Operation): In case of late overriding of a primitive
      	that covers abstract interface subprograms we register it in all the
      	secondary dispatch tables associated with abstract interfaces.
      	(Check_Dispatching_Call): Add check that a dispatching call is not made
      	to a function with a controlling result of a limited type. This is a
      	current implementation restriction.
      	(Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
      	(Check_Dispatching_Operation): Do no emit a warning if the controlling
      	argument is an interface type that is a generic formal.
      	(Is_Interface_Subprogram): Removed.
      	(Check_Dispatching_Operation): If the subprogram is not a dispatching
      	operation, check the formals to handle the case in which it is
      	associated with an abstract interface type.
      
      From-SVN: r118308
      Hristian Kirtchev committed
    • sem_ch9.adb (Analyze_Protected_Definition): Remove call to Check_Overriding_Indicator. · 3100e48f
      2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch9.adb (Analyze_Protected_Definition): Remove call to
      	Check_Overriding_Indicator.
      	(Analyze_Task_Definition): Ditto.
      	(Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
      	(Check_Overriding_Indicator): To find overridden interface operation,
      	examine only homonyms that have an explicit subprogram declaration, not
      	inherited operations created by an unrelated type derivation.
      	(Check_Overriding_Indicator): When checking for the presence of "null"
      	in a procedure, ensure that the queried node is a procedure
      	specification.
      	(Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
      	type when the formal is an access to variable.
      	(Analyze_Protected_Type): Add check for Preelaborable_Initialization
      	(Analyze_Task_Type): Same addition
      	(Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
      	provide navigation capabilities for entries.
      
      From-SVN: r118307
      Hristian Kirtchev committed
    • sem_ch8.adb: Minor error msg rewording · 923fa078
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      	    Hristian Kirtchev  <kirtchev@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
              
      	* sem_ch8.adb: Minor error msg rewording
      	(Undefined): When checking for misspellings, invert arguments (to get
      	expected and found set right)
      	(Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
      	(Analyze_Generic_Renaming): Same fix
      	(Use_One_Package): Do not take into account the internal entities of
      	abstract interfaces during the analysis of entities that are marked
      	as potentially use-visible.
      	(Find_Type): Handle the case of an attribute reference for
      	implementation defined attribute Stub_Type (simply let the analysis of
      	the attribute reference rewrite it).
      	(Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
      	type that appears in a Use_Type clause.
      	(Analyze_Object_Renaming): Add support for renaming of the Priority
      	attribute.
      	(Find_Type): In Ada 2005, a task type can be used within its own body,
      	when it appears in an access definition.
      	(Analyze_Object_Renaming): Remove warning on null_exclusion.
      	(Analyze_Object_Renaming): Introduce checks for required null exclusion
      	 in a formal object declaration or in a subtype declaration.
      	(Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
      	(Check_Null_Exclusion): New local routine to
      	Analyze_Subprogram_Renaming. Check whether the formals and return
      	profile of a renamed subprogram have required null exclusions when
      	their counterparts of the renaming already impose them.
      	(In_Generic_Scope): New local routine to Analyze_Object_Renaming.
      	Determine whether an entity is inside a generic scope.
      	(In_Open_Scope): First pass of documentation update.
      	(Find_Expanded_Name): Add support for shadow entities associated with
      	limited withed packages. This is required to handle nested packages.
      	(Analyze_Package_Renaming): Remove the restriction imposed by AI-217
      	that makes a renaming of a limited withed package illegal.
      
      From-SVN: r118306
      Robert Dewar committed
    • sem_ch7.adb (Check_Anonymous_Access_Types): New procedure... · 3b75bcab
      2006-10-31  Ed Schonberg  <schonberg@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      
      	* sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
      	of Analyze_Package_Body, to create Itype references for anonymous
      	access types created in the package declaration, whose designated types
      	may have only a limited view.
      	(Analyze_Package_Specification): For the private part of a nested
      	package, install private_with_clauses of enclosing compilation unit if
      	we are in its visible part.
      	(Declare_Inherited_Private_Subprograms): Complete barrier
      	to ensure that the primitive operation has an alias to some parent
      	primitive. This is now required because, after the changes done for the
      	implementation of abstract interfaces, the contents of the list of
      	primitives has entities whose alias attribute references entities of
      	such list of primitives.
      	(Analyze_Package_Specification): Simplify code that handles parent units
      	of instances and formal packages.
      	(Uninstall_Declarations): Check the convention consistency among
      	primitive overriding operations of a tagged record type.
      
      From-SVN: r118305
      Ed Schonberg committed
    • sem_ch6.ads, [...] (Analyze_Subprogram_Declaration): A null procedure cannot be… · ec4867fa
      sem_ch6.ads, [...] (Analyze_Subprogram_Declaration): A null procedure cannot be a protected operation (it is a basic_declaration...
      
      2006-10-31  Ed Schonberg  <schonberg@adacore.com>
      	    Hristian Kirtchev  <kirtchev@adacore.com>
      	    Bob Duff  <duff@adacore.com>
              
      	* sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
      	procedure cannot be a protected operation (it is a basic_declaration,
      	not a subprogram_declaration).
      	(Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
      	Subp. Add logic for entry processing.
      	(Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
      	Determine whether an entry or subprogram of a protected or task type
      	override an inherited primitive of an implemented interface.
      	(New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
      	Update the actual used in calls to Check_Overriding_Indicator.
      	(Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
      	generate the proper reference to the parent unit, for cross-reference.
      	(Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
      	Is_Formal.
      	Add -gnatd.l --Use Ada 95 semantics for limited function returns,
      	(Add_Extra_Formal): Revise procedure to allow passing in associated
      	entity, scope, and name suffix, and handle setting of the new
      	Extra_Formals field.
      	(Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
      	pass new parameters. Add support for adding the new extra access formal
      	for functions whose calls are treated as build-in-place.
      	(Analyze_A_Return_Statement): Correct casing in error message.
      	Move Pop_Scope to after Analyze_Function_Return, because an extended
      	return statement really is a full-fledged scope. Otherwise, visibility
      	doesn't work right. Correct use of "\" for continuation messages.
      	(Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
      	evilly trying to call Analyze_Object_Declaration directly. Otherwise,
      	the node doesn't get properly marked as analyzed.
      	(Analyze_Subprogram_Body): If subprogram is a function that returns
      	an anonymous access type that denotes a task, build a Master Entity
      	for it.
      	(Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
      	proper usage of null exclusion in a result definition.
      	(Process_Formals): Code cleanup and new error message.
      	(Process_Formals): Detect incorrect application of null exclusion to
      	non-access types.
      	(Conforming_Types): Handle conformance between [sub]types and itypes
      	 generated for entities that have null exclusions applied to them.
      	(Maybe_Primitive_Operation): Add an additional type retrieval when the
      	 base type is an access subtype. This case arrises with null exclusions.
      	(New_Overloaded_Entity): Do not remove the overriden entity from the
      	homonym chain if it corresponds with an abstract interface primitive.
      	(Process_Formals): Replace membership test agains Incomplete_Kind with a
      	call to the synthesized predicate Is_Incomplete_Type.
      	(Analyze_Subprogram_Body): Check wrong placement of abstract interface
      	primitives.
      	(Analyze_Subprogram_Declaration): Check that abstract interface
      	primitives are abstract or null.
      	(Analyze_Subprogram_Specification): Remove previous check for abstract
      	interfaces because it was not complete.
      	(Has_Interface_Formals): Removed.
      
      From-SVN: r118304
      Ed Schonberg committed
    • sem_ch5.ads, [...] (Analyze_Loop_Statement): Add circuit to warn on infinite loops. · 2a806772
      2006-10-31  Robert Dewar  <dewar@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      	    Gary Dismukes  <dismukes@adacore.com>
      
      	* sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
      	warn on infinite loops.
      	Add \\ to some continuation messages
      	(Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
      	(Process_Bounds): If the bounds are integer literals that result from
      	constant-folding, and they carry a user-defined type, preserve that type
      	rather than treating this as an integer range.
      	(Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
      	(Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
      	(Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
      	left hand side of assignment.
      	(Analyze_Assignment): Add suport to manage assigments to the attribute
      	priority of a protected object.
      	(Check_Possible_Current_Value_Condition): Allow fully qualified names
      	not just identifiers.
      	(Check_Possible_Current_Value_Condition): Acquire left operand of AND
      	or AND THEN for possible tracking.
      	(Analyze_Iteration_Scheme): Check for setting Current_Value for the
      	case of while loops so we can track values in the loop body.
      
      From-SVN: r118303
      Robert Dewar committed
    • sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we generate… · b67a385c
      sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we generate the same errors compiling under -gnatc.
      
      2006-10-31  Ed Schonberg  <schonberg@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      	    Robert Dewar  <dewar@adacore.com>
      
      	* sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
      	generate the same errors compiling under -gnatc.
      	(Try_Object_Operation): If no candidate interpretation succeeds, but
      	there is at least one primitive operation with the right name, report
      	error in call rather than on a malformed selected component.
      	(Analyze_Selected_Component): If the prefix is an incomplete type from
      	a limited view, and the full view is available, use the full view to
      	determine whether this is a prefixed call to a primitive operation.
      	(Operator_Check): Verify that a candidate interpretation is a binary
      	operation before checking the type of its second formal.
      	(Analyze_Call): Add additional warnings for function call contexts not
      	yet supported.
      	(Analyze_Allocator): Move the check for "initialization not allowed for
      	limited types" after analyzing the expression. This is necessary,
      	because OK_For_Limited_Init looks at the structure of the expression.
      	Before analysis, we don't necessarily know what sort of expression it
      	is. For example, we don't know whether F(X) is a function call or an
      	indexed component; the former is legal in Ada 2005; the latter is not.
      	(Analyze_Allocator): Correct code for AI-287 -- extension aggregates
      	were missing. We also didn't handle qualified expressions. Now also
      	allow function calls. Use new common routine OK_For_Limited_Init.
      	(Analyze_Type_Conversion): Do not perform some legality checks in an
      	instance, because the error message will be redundant or spurious.
      	(Analyze_Overloaded_Selected_Component): Do not do style check when
      	setting an entity, since we do not know it is the right entity yet.
      	(Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
      	(Analyze_Overloaded_Selected_Component): Same change
      	(Analyze_Selected_Component): Remove unnecessary prefix type retrieval
      	since regular incomplete subtypes are transformed into corresponding
      	subtypes of their full views.
      	(Complete_Object_Operation): Treat name of transformed subprogram call
      	as coming from source, for browsing purposes.
      	(Try_Primitive_Operation): If formal is an access parameter, compare
      	with base type of object to determine whether it is a primitive
      	operation.
      	(Operator_Check): If no interpretation of the operator matches, check
      	whether a use clause on any candidate might make the operation legal.
      	(Try_Class_Wide_Operation): Check whether the first parameter is an
      	access type whose designated type is class-wide.
      
      From-SVN: r118302
      Ed Schonberg committed