aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
AgeCommit message (Collapse)AuthorFilesLines
2006-12-08Fix ChangeLog.Eric Botcazou1-0/+9
From-SVN: r119656
2006-12-05Merge gimple-tuples-branch into mainline.Aldy Hernandez2-2/+3
From-SVN: r119546
2006-12-02Makefile.in, [...]: Fix comment typos.Kazu Hirata6-7/+13
* Makefile.in, mingw32.h, trans.c: Fix comment typos. * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions. Fix typos. From-SVN: r119437
2006-11-26Fix oversight.Eric Botcazou1-0/+5
From-SVN: r119228
2006-11-17re PR ada/27936 (gnatbind fails to link)Eric Botcazou2-36/+30
PR ada/27936 * trans.c (add_decl_expr): Do not dynamically elaborate padded objects if the initializer takes into account the padding. From-SVN: r118939
2006-11-11tree.def (FIX_CEIL_EXPR, [...]): Remove unused tree codes.Richard Guenther2-3/+5
2006-11-11 Richard Guenther <rguenther@suse.de> * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR): Remove unused tree codes. * tree-vrp.c (extract_range_from_unary_expr): Remove handling of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR. * tree-pretty-print.c (dump_generic_node, op_prio): Likewise. * tree.c (stabilize_reference): Likewise. * fold-const.c (fold_convert_const_int_from_real, operand_equal_p, fold_unary): Likewise. * tree-gimple.c (is_gimple_cast): Likewise. * dwarf2out.c (loc_descriptor_from_tree_1): Likewise. * expr.c (expand_expr_real_1): Likewise. * tree-eh.c (tree_could_trap_p): Likewise. * gimplify.c (gimplify_expr): Likewise. * tree-inline.c (estimate_num_insns_1): Likewise. * tree-cfg.c (verify_expr): Likewise. cp/ * typeck.c (build_unary_op): Likewise. java/ * check-init.c (check_init): Likewise. ada/ * trans.c (maybe_stabilize_reference): Likewise. fortran/ * trans-intrinsic.c (enum rounding_mode): New enum. (build_fix_expr, gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod, gfc_conv_intrinsic_function): Use it instead of FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR and FIX_TRUNC_EXPR. From-SVN: r118692
2006-11-05re PR ada/29707 (s-osinte.adb:86:13: warning: function "To_Target_Priority" ↵Arnaud Charlet3-0/+14
is not referenced) * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads (To_Target_Priority): New function. Fix PR ada/29707 From-SVN: r118496
2006-10-31Fix typo.Arnaud Charlet1-1/+1
From-SVN: r118340
2006-10-31Resync.Arnaud Charlet1-0/+2544
From-SVN: r118337
2006-10-31Resync.Arnaud Charlet14-67/+1829
From-SVN: r118333
2006-10-31gigi.h: (tree_code_for_record_type): Declare.Eric Botcazou6-464/+949
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
2006-10-31fmap.adb: Put routines in alpha orderRobert Dewar72-511/+523
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
2006-10-31s-osinte-tru64.adb: Mark Asm statements Volatile to prevent warnings (seems ↵Robert Dewar6-138/+220
a reasonable change... 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
2006-10-31debug.adb: Update flags documentationRobert Dewar13-310/+1015
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
2006-10-31a-rttiev.ads, [...]: This is a significant redesign primarily for the sake ↵Pat Rogers2-194/+174
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
2006-10-31symbols-processing-vms-ia64.adb, [...] (Process): Do not include symbols ↵Vincent Celier2-37/+93
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
2006-10-31g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.Doug Rupp1-9/+34
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
2006-10-31a-crbtgo.ads: Commented each subprogramMatt Heaney19-1163/+1098
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
2006-10-31makegpr.adb (Check_Compilation_Needed): Take into account path names with ↵Vincent Celier1-104/+129
spaces. 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
2006-10-31a-direct.ads, [...] (Search): New procedure in Ada 2005Vincent Celier2-2/+44
2006-10-31 Vincent Celier <celier@adacore.com> * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005 From-SVN: r118322
2006-10-31a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed in ↵Vincent Celier1-1/+2
file names. 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
2006-10-31s-stchop.ads: make this unit preelaborate.Olivier Hainque2-2/+9
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
2006-10-31widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding...Robert Dewar1-8/+35
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
2006-10-31s-tpobop.adb (Requeue_Call): Introduce a dispatching point when requeuing to ↵Jose Ruiz1-0/+6
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
2006-10-312006-10-31 Javier Miranda <miranda@adacore.com>Javier Miranda7-8/+108
* 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
2006-10-31s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set True when...Gary Dismukes1-16/+64
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
2006-10-31s-restri.ads, [...]: Mark this package as Preelaborate.Arnaud Charlet4-97/+26
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
2006-10-31sprint.adb (Sprint_Node_Actual, [...]): Do not print null exclusion twice in ↵Ed Schonberg1-62/+360
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
2006-10-31sinfo.ads, sinfo.adb (Set_Synchronized_Present, [...]): Add ↵Robert Dewar5-888/+2701
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
2006-10-31sem_util.ads, [...] (Enter_Name): Exclude -gnatwh warning messages for ↵Robert Dewar3-282/+1742
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
2006-10-31sem_type.adb (Add_One_Interp): If node is an indirect call...Ed Schonberg1-40/+100
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
2006-10-31sem_eval.adb (Compile_Time_Compare): Make use of information from ↵Robert Dewar1-12/+138
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
2006-10-31sem_elab.ads, [...] (Check_Elab_Assign): New procedure Add new calls to this ↵Robert Dewar2-47/+289
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
2006-10-31sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms ↵Hristian Kirtchev1-122/+166
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
2006-10-31sem_ch9.adb (Analyze_Protected_Definition): Remove call to ↵Hristian Kirtchev1-283/+50
Check_Overriding_Indicator. 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
2006-10-31sem_ch8.adb: Minor error msg rewordingRobert Dewar1-78/+296
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
2006-10-31sem_ch7.adb (Check_Anonymous_Access_Types): New procedure...Ed Schonberg1-84/+170
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
2006-10-31sem_ch6.ads, [...] (Analyze_Subprogram_Declaration): A null procedure cannot ↵Ed Schonberg2-231/+1094
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
2006-10-31sem_ch5.ads, [...] (Analyze_Loop_Statement): Add circuit to warn on infinite ↵Robert Dewar2-89/+287
loops. 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
2006-10-31sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we ↵Ed Schonberg1-64/+191
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
2006-10-31sem_ch13.adb: Storage pool cannot be given for access to subprogram type.Robert Dewar1-212/+198
2006-10-31 Robert Dewar <dewar@adacore.com> Thomas Quinot <quinot@adacore.com> * sem_ch13.adb: Storage pool cannot be given for access to subprogram type. (New_Stream_Subprogram): When processing an attribute definition clause for a stream-oriented subprogram, record an entity node occurring at the point of clause to use for checking the visibility of the clause, as defined by 8.3(23) as amended by AI-195. (New_Stream_Subprogram): New procedure, factoring behaviour from both New_Stream_Function and New_Stream_Procedure. (New_Stream_Function, New_Stream_Procedure): Removed. (Analyze_Attribute_Definition_Clause, case Address): Check new Alignment_Check check From-SVN: r118301
2006-10-31sem_ch12.ads, [...] (Save_References): If node is an operator that has been ↵Ed Schonberg2-338/+983
constant-folded... 2006-10-31 Ed Schonberg <schonberg@adacore.com> Hristian Kirtchev <kirtchev@adacore.com> * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator that has been constant-folded, preserve information of original tree, for ASIS uses. (Analyze_Formal_Derived_Type): Set the limited present flag of the newly generated private extension declaration if the formal derived type is synchronized. Carry synchronized present over to the generated private extension. (Validate_Derived_Type_Instance): Ensure that the actual of a synchronized formal derived type is a synchronized tagged type. (Instantiate_Formal_Package): When creating the instantiation used to validate the actual package of a formal declared without a box, check whether the formal itself depends on a prior actual. (Instantiate_Formal_Subprogram): Create new entities for the defining identifiers of the formals in the renaming declaration, for ASIS use. (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating a renaming declaration or a subtype declaration for an actual in an instance, capture location information of declaration in generic, for ASIS use. (Instantiate_Formal_Package): Add comments on needed additional tests. AI-317 (partial parametrization) is fully implemented. (Validate_Private_Type_Instance): Add check for actual which must have preelaborable initialization Use new // insertion for some continuation messages (Analyze_Formal_Object_Declaration): Change usage of Expression to Default_Expression. Add type retrieval when the declaration has an access definition. Update premature usage of incomplete type check. (Check_Access_Definition): New subsidiary routine. Check whether the current compilation version is Ada 05 and the supplied node has an access definition. (Instantiate object): Alphabetize local variables. Handle the creation of new renaming declarations with respect to the kind of definition used - either an access definition or a subtype mark. Guard against unnecessary error message in the context of anonymous access types after they have been resolved. Add check for required null exclusion in a formal object declaration. (Switch_View): A private subtype of a non-private type needs to be switched (the base type can have been switched without its private dependents because of the last branch of Check_Private_View. (Check_Private_View): Do not recompute Base_Type (T), instead use cached value from BT. (Instantiate_Type): Emit an error message whenever a class-wide type of a tagged incomplete type is used as a generic actual. (Find_Actual_Type): Extend routine to handle a component type in a child unit that is imported from a formal package in a parent. (Validate_Derived_Type_Instance): Check that analyzed formal and actual agree on constrainedness, rather than checking against ultimate ancestor (Instantiate_Subprogram_Body): Create a cross-reference link to the generic body, for navigation purposes. From-SVN: r118300
2006-10-31sem_ch11.adb (Analyze_Handled_Statements): Move final test for useless ↵Robert Dewar1-9/+22
assignments here and conditionalize it on absence... 2006-10-31 Robert Dewar <dewar@adacore.com> * sem_ch11.adb (Analyze_Handled_Statements): Move final test for useless assignments here and conditionalize it on absence of exception handlers. (Analyze_Exception_Handlers): Small code reorganization of error detection code, for new handling of formal packages. From-SVN: r118299
2006-10-31sem_attr.ads, [...] (Analyze_Access_Attribute): Diagnose properly an attempt ↵Ed Schonberg4-266/+571
to apply Unchecked_Access to a protected operation. 2006-10-31 Ed Schonberg <schonberg@adacore.com> Thomas Quinot <quinot@adacore.com> Javier Miranda <miranda@adacore.com> Gary Dismukes <dismukes@adacore.com> * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose properly an attempt to apply Unchecked_Access to a protected operation. (OK_Self_Reference): New subprogram to check the legality of an access attribute whose prefix is the type of an enclosing aggregate. Generalizes previous mechanism to handle attribute references nested arbitrarily deep within the aggregate. (Analyze_Access_Attribute): An access attribute whose prefix is a type can appear in an aggregate if this is a default-initialized aggregate for a self-referential type. (Resolve_Attribute, case Access): Ditto. Add support for new implementation defined attribute Stub_Type. (Eval_Attribute, case Attribute_Stub_Type): New case. (Analyze_Attribute, case Attribute_Stub_Type): New case. (Stream_Attribute_Available): Implement using new subprogram from sem_cat, Has_Stream_Attribute_Definition, instead of incorrect Has_Specified_Stream_Attribute flag. Disallow Storage_Size and Storage_Pool for access to subprogram (Resolve_Attribute, case 'Access et al): Take into account anonymous access types of return subtypes in extended return statements. Remove accessibility checks on anonymous access types when Unchecked_Access is used. (Analyze_Attribute): Add support for the use of 'Class to convert a class-wide interface to a tagged type. Add support for the attribute Priority. (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for whether the designated type is discriminated with a constrained partial view and require static matching in that case. Add local variable Des_Btyp. The Designated_Type of an access to incomplete subtype is either its non-limited view if coming from a limited with or its etype if regular incomplete subtype. * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type): Fix predicate to identify and allow cases of (expander-generated) references to tag of designated object of a RACW. (Validate_Static_Object_Name): In Ada 2005, a formal object is non-static, and therefore cannot appear as a primary in a preelaborable package. (Has_Stream_Attribute_Definition): New subprogram, abstracted from Has_Read_Write_Attributes. (Has_Read_Write_Attributes): Reimplement in termes of Has_Stream_Attribute_Definition. (Missing_Read_Write_Attributes): When checking component types in a record, unconditionally call Missing_Read_Write_Attributes recursively (remove guard checking for Is_Record_Type / Is_Access_Type). From-SVN: r118298
2006-10-31scng.adb (Scan, [...]): Better msg for identifier starting with a digit.Robert Dewar1-1/+47
2006-10-31 Robert Dewar <dewar@adacore.com> * scng.adb (Scan, case of numeric literal): Better msg for identifier starting with a digit. From-SVN: r118297
2006-10-31rtsfind.adb: Remove s-polint from comment as it exists no more.Arnaud Charlet2-268/+283
* rtsfind.adb: Remove s-polint from comment as it exists no more. * rtsfind.ads: Move entity RE_Get_Active_Partition_Id to package System.DSA_Services. Move all the entities in obsolete package System.PolyORB_Interface to System.Partition_Interface. (RE_Storage_Size): New function in System.Tasking. (RE_Get_Ceiling): New entity. (RE_Set_Ceiling): New entity. (RO_PE_Get_Ceiling): New entity. (RO_RE_Set_Ceiling): New entity. (Inherit_CPP_DT): New entity From-SVN: r118296
2006-10-31restrict.ads, [...] (Restriction_Active): Now returns False if only a ↵Arnaud Charlet3-24/+36
restriction warning is active for the given restriction. 2006-10-31 Arnaud Charlet <charlet@adacore.com> Robert Dewar <dewar@adacore.com> * restrict.ads, restrict.adb (Restriction_Active): Now returns False if only a restriction warning is active for the given restriction. This is desirable because we do not want to modify code in the case where only a warning is set. (Set_Profile_Restrictions): Make sure that a Profile_Warnings never causes overriding of real restrictions. Take advantage of new No_Restrictions constant. * raise.h: (__gnat_set_globals): Change profile. From-SVN: r118295
2006-10-31repinfo.adb (List_Entities): Don't list entities from renaming declarations.Robert Dewar1-21/+27
2006-10-31 Robert Dewar <dewar@adacore.com> * repinfo.adb (List_Entities): Don't list entities from renaming declarations. From-SVN: r118294
2006-10-31prj-nmsc.adb (Check_Ada_Name): For children of package A...Vincent Celier3-28/+72
2006-10-31 Vincent Celier <celier@adacore.com> * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S on VMS, change "__" to '.' before checking the name. (Record_Ada_Source): Always add the source file name in the list of of sources, even if it is not the first time, as it is for another source index. (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single dot, instead of replacing only the first '_'. * prj-part.adb (Parse): Convert project file path to canonical form * prj-proc.adb (Recursive_Process): Make sure that, when a project is extended, the project id of the project extending it is recorded in its data, even when it has already been processed as an imported project. From-SVN: r118293
2006-10-31prj-makr.adb (Packages_To_Check_By_Gnatname): New global constantVincent Celier1-4/+17
2006-10-31 Vincent Celier <celier@adacore.com> * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter Packages_To_Check. From-SVN: r118292