X-Git-Url: https://gcc.gnu.org/git/?a=blobdiff_plain;f=gcc%2Fada%2FChangeLog;h=5641887a2176764d4c6fcd629c1473701a5eb30c;hb=326f9a757c64d1d6c37e45184d4da7a44ee720e2;hp=2a992754006c307e42d603b51dda654f30b2e858;hpb=ccdeca37fe155145a1857d13557b8dfb9eca2dd5;p=gcc.git diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 2a992754006c..5641887a2176 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,6673 @@ +2007-02-03 Kazu Hirata + + * misc.c, utils2.c: Fix comment typos. + +2007-01-24 Roger Sayle + + * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of + TREE_CONSTANT_OVERFLOW. + (allocatable_size_p, annotate_value): Likewise. + * trans.c (gnat_to_gnu): Likewise. + * utils.c (unchecked_convert): Likewise. + * utils2.c (build_simple_component_ref): Likewise. + +2007-01-23 Richard Guenther + + PR bootstrap/30541 + * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE). + (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX. + (gnatboot3): Likewise. + (GNATBIND): Do not define. + * Makefile.in (GNATBIND): Do not define. + +2007-01-08 Richard Guenther + + * cuintp.c (build_cst_from_int): Use built_int_cst_type. + * trans.c (gnat_to_gnu): Likewise. + +2006-12-07 Geoffrey Keating + + * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE. + * adaint.c: Likewise. + +2006-12-05 Aldy Hernandez + + Merge from gimple-tuples-branch. + + 2006-11-02 Aldy Hernandez + * ada-tree.h (lang_tree_node): Handle gimple tuples. + * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with + GIMPLE_MODIFY_STMT. + +2006-12-02 Kazu Hirata + + * Makefile.in, mingw32.h, trans.c: Fix comment typos. + * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions. + Fix typos. + +2006-11-17 Eric Botcazou + + PR ada/27936 + * trans.c (add_decl_expr): Do not dynamically elaborate padded objects + if the initializer takes into account the padding. + +2006-11-11 Richard Guenther + + * trans.c (maybe_stabilize_reference): Remove handling of + FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR. + +2006-11-05 Arnaud Charlet + + * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads + (To_Target_Priority): New function. + Fix PR ada/29707 + +2006-10-31 Robert Dewar + + * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb, + a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb, + s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb, + a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, + a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, + a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb, + a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb, + a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb, + a-szbzha.adb: Minor reformatting. Fix header. + + * a-numaux-x86.adb: Add parentheses for use of unary minus + * a-ngcefu.adb: Supply missing parentheses for unary minus + * a-ngcoty.adb: Add parens for use of unary minus + * a-ngelfu.adb: Add missing parens for unary minus + * a-tifiio.adb: Add parentheses for uses of unary minus + +2006-10-31 Robert Dewar + Bob Duff + Ed Schonberg + + * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus + with multiplying operator. + (Expected_Type_Is_Any_Real): New function to determine from the Parent + pointer whether the context expects "any real type". + (Resolve_Arithmetic_Op): Do not give an error on calls to the + universal_fixed "*" and "/" operators when they are used in a context + that expects any real type. Also set the type of the node to + Universal_Real in this case, because downstream processing requires it + (mainly static expression evaluation). + Reword some continuation messages + Add some \\ sequences to continuation messages + (Resolve_Call): Refine infinite recursion case. The test has been + sharpened to eliminate some false positives. + Check for Current_Task usage now includes entry barrier, and is now a + warning, not an error. + (Resolve): If the call is ambiguous, indicate whether an interpretation + is an inherited operation. + (Check_Aggr): When resolving aggregates, skip associations with a box, + which are priori correct, and will be replaced by an actual default + expression in the course of expansion. + (Resolve_Type_Conversion): Add missing support for conversion from + a class-wide interface to a tagged type. Minor code cleanup. + (Valid_Tagged_Converion): Add support for abstact interface type + conversions. + (Resolve_Selected_Component): Call Generate_Reference here rather than + during analysis, and use May_Be_Lvalue to distinguish read/write. + (Valid_Array_Conversion): New procedure, abstracted from + Valid_Conversion, to incorporate accessibility checks for arrays of + anonymous access types. + (Valid_Conversion): For a conversion to a numeric type occurring in an + instance or inlined body, no need to check that the operand type is + numeric, since this has been checked during analysis of the template. + Remove legacy test for scope name Unchecked_Conversion. + + * sem_res.ads: Minor reformatting + + * a-except.adb, a-except-2005.adb: Turn off subprogram ordering + (PE_Current_Task_In_Entry_Body): New exception code + (SE_Restriction_Violation): Removed, not used + + * a-except.ads: Update comments. + + * types.h, types.ads: Add definition for Validity_Check + (PE_Current_Task_In_Entry_Body): New exception code + (SE_Restriction_Violation): Removed, not used + +2006-10-31 Thomas Quinot + + * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned + error status. + +2006-10-31 Hristian Kirtchev + Jose Ruiz + + * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private + part of Ada.Calendar: all subprogram raise Unimplemented. + (Split_W_Offset): Temp function body, raising Unimplemented + + * a-calend.ads, a-calend-vms.ads: + Add imported variable Invalid_TZ_Offset used to designate targets unable + to support time zones. + (Unimplemented): Temporary function raised by the body of new + subprograms below. + (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This + unit provides handling of leap seconds and is used by the new Ada 2005 + packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting. + (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This + version returns an extra value which is the offset to UTC. + + * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff. + (Leap_Sec_Ops): New body for package in private part of Ada.Calendar. + (Split_W_Offset): New function body. + (Time_Of): When a date is close to UNIX epoch, compute the time for + that date plus one day (that amount is later substracted after + executing mktime) so there are no problems with time zone adjustments. + + * a-calend-mingw.adb: Remove Windows specific version no longer needed. + + * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb, + a-catizo.ads, a-catizo.adb: New files. + + * impunit.adb: Add new Ada 2005 entries + + * sysdep.c: Add external variable __gnat_invalid_tz_offset. + Rename all occurences of "__gnat_localtime_r" to + "__gnat_localtime_tzoff". + (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time + zone data and calculate the GMT offset. + (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64): + Use the field "tm_gmtoff" to extract the GMT offset. + (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use + the external variable "timezone" to calculate the GMT offset. + +2006-10-31 Arnaud Charlet + Jose Ruiz + + * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, + s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, + s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads, + s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from + System.Any_Priority to a POSIX priority on the target. + + * system-linux-ia64.ads: + Extend range of Priority types on Linux to use the whole range made + available by the system. + + * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New + function maps from System.Any_Priority to a POSIX priority on the + target. + (PTHREAD_PRIO_PROTECT): Set real value. + (PTHREAD_PRIO_INHERIT): Now a function. + (SIGCPUFAIL): New signal. + (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals + are documented as reserved by the OS. + + * system-aix.ads: Use the full range of priorities provided by the + system on AIX. + + * s-taprop-posix.adb: Call new function To_Target_Priority. + (Set_Priority): Take into account Task_Dispatching_Policy and + Priority_Specific_Dispatching pragmas when determining if Round Robin + must be used for scheduling the task. + + * system-linux-x86_64.ads, system-linux-x86.ads, + system-linux-ppc.ads: Extend range of Priority types on Linux to use + the whole range made available by the system. + + * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, + s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, + s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache + when deallocating the TCB in order to avoid potential references to + deallocated data. + (Set_Priority): Take into account Task_Dispatching_Policy and + Priority_Specific_Dispatching pragmas when determining if Round Robin + or FIFO within priorities must be used for scheduling the task. + + * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in + the Thread field (to be used internally by the run-time system) and the + kernel-level task id in the LWP field (to be used by the debugger). + (Create_Task): Reorganize to unify the calls to taskSpawn into a single + instance, and propagate the current task options to the spawned task. + (Set_Priority): Take into account Priority_Specific_Dispatching pragmas. + (Initialize): Set Round Robin dispatching when the corresponding pragma + is in effect. + +2006-10-31 Robert Dewar + + * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, + system-linux-hppa.ads, system-hpux-ia64.ads, + system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, + system-vxworks-sparcv9.ads, system-solaris-x86.ads, + system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, + system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, + system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, + system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, + system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off, + Default_Bit_Order) to kill constant condition warnings for references + to this switch. + +2006-10-31 Vincent Celier + Eric Botcazou + + * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb, + mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb, + mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of + Ext_To, when building the library file name + + * mlib-tgt-vxworks.adb: ditto. + (Get_Target_Suffix): Add support for x86 targets. + + * mlib-fil.ads, mlib-fil.adb: (Append_To): New function + + * mlib-tgt-darwin.adb: + Use Append_To, instead of Ext_To, when building the library file name + (Flat_Namespace): New global variable. + (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options. + (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options. + (Link_Shared_Libgcc): Delete. + (Build_Dynamic_Library): Adjust for above changes. + Use Opt package. + (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later. + +2006-10-31 Eric Botcazou + + * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer. + (Initialize): Add type conversions required by above change. + +2006-10-31 Jose Ruiz + + * s-osinte-vxworks.ads, s-osinte-vxworks.adb: + (getpid): New body for this function that uses the underlying taskIdSelf + function for VxWorks 5 and VxWorks 6 in kernel mode. + (unsigned_int): New type, modular to allow logical bit operations. + (taskOptionsGet): New imported function. + + * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP + field to be compliant with the type used by the corresponding operating + system primitive. + +2006-10-31 Pascal Obry + Eric Botcazou + Vincent Celier + + * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the + ASCII version of the registry API. This is needed as the GNAT runtime + is now UNICODE by default. + Include version.h. + (get_gcc_version): Do not hardcode the return value. + (__gnat_file_time_name): On Windows properly set the default returned + value to -1 which corresponds to Invalid_Time. + (__gnat_fopen): New routine. A simple wrapper on all plateforms + except on Windows where it does conversion for unicode support. + (__gnat_freopen): Idem. + (__gnat_locate_exec_on_path): If environment variable PATH does not + exist, return a NULL pointer + + * adaint.h: (__gnat_fopen): Declare. + (__gnat_freopen): Likewise. + + * mingw32.h (_tfreopen): Define this macro here for older MingW + version. + Activate the unicode support on platforms using a MingW runtime + version 3.9 or newer. + + * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen. + This is needed for proper unicode support on Windows. + (freopen): Idem. + +2006-10-31 Eric Botcazou + Nicolas Setton + Olivier Hainque + Gary Dismukes + + * 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) : 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. + : 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. + : 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) : Restore comment. + (gnat_to_gnu_entity) : Do not use a dummy type. + (gnat_to_gnu_entity) : 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) : 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) : Do not force + TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate. + : Likewise. + (gnat_to_gnu_entity) : Add support for regular + incomplete subtypes and incomplete subtypes of incomplete types visible + through a limited with clause. + (gnat_to_gnu_entity) : 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) : Ignore constant overflow + stemming from type conversion for the lhs. + (Attribute_to_gnu) : Also divide the alignment by the + number of bits per unit for components of records. + (gnat_to_gnu) : 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) : 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. + +2006-10-31 Bob Duff + + * a-filico.adb (Finalize(List_Controller)): Mark the finalization list + as finalization-started, so we can raise Program_Error on 'new'. + + * s-finimp.adb: Raise Program_Error on 'new' if finalization of the + collection has already started. + + * s-finimp.ads (Collection_Finalization_Started): Added new special + flag value for indicating that a collection's finalization has started. + + * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to + create a task whose master has already waited for dependent tasks. + +2006-10-31 Robert Dewar + + * lib.adb, lib.ads: (In_Predefined_Unit): New functions + + * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, + a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, + a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, + a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, + a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, + a-except-2005.ads: Add pragma Preelaborable_Warning + +2006-10-31 Robert Dewar + Jose Ruiz + + * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files. + + * ali.adb (Get_Name): Properly handle scanning of wide character names + encoded with brackets notation. + (Known_ALI_Lines): Add S lines to this list. + (Scan_ALI): Acquire S (priority specific dispatching) lines. + New flag Elaborate_All_Desirable in unit table + + * ali.ads (Priority_Specific_Dispatching): Add this range of + identifiers to be used for Priority_Specific_Dispatching table entries. + (ALIs_Record): Add First_Specific_Dispatching and + Last_Specific_Dispatching that point to the first and last entries + respectively in the priority specific dispatching table for this unit. + (Specific_Dispatching): Add this table for storing each S (priority + specific dispatching) line encountered in the input ALI file. + New flag Elaborate_All_Desirable in unit table + + * bcheck.adb: (Check_Configuration_Consistency): Add call to + Check_Consistent_Dispatching_Policy. + (Check_Consistent_Dispatching_Policy): Add this procedure in charge of + verifying that the use of Priority_Specific_Dispatching, + Task_Dispatching_Policy, and Locking_Policy is consistent across the + partition. + + * bindgen.adb: (Public_Version_Warning): function removed. + (Set_PSD_Pragma_Table): Add this procedure in charge of getting the + required information from ALI files in order to initialize the table + containing the specific dispatching policy. + (Gen_Adainit_Ada): Generate the variables required for priority specific + dispatching entries (__gl_priority_specific_dispatching and + __gl_num_specific_dispatching). + (Gen_Adainit_C): Generate the variables required for priority specific + dispatching entries (__gl_priority_specific_dispatching and + __gl_num_specific_dispatching). + (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching + pragma entries. + (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed. + (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures. + (Tab_To): Removed. + (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of + a call to gnat_set_globals. + Generate a string containing settings from + Priority_Specific_Dispatching pragma entries. + (Gen_Object_Files_Options): Do not include the runtime libraries when + pragma No_Run_Time is specified. + + * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for + consistency with s-intman-posix.adb. + (__gnat_error_handler, case FreeBSD): Account for the fact that the + handler is installed with SA_SIGINFO. + (__gnat_adjust_context_for_raise, FreeBSD case): New function for + FreeBSD ZCX support, copied from Linux version. + Add MaRTE-specific definitions for the linux target. Redefine sigaction, + sigfillset, and sigemptyset so the routines defined by MaRTE. + (__gl_priority_specific_dispatching): Add this variable that stores the + string containing priority specific dispatching policies in the + partition. + (__gl_num_specific_dispatching): Add this variable that indicates the + highest priority for which a priority specific dispatching pragma + applies. + (__gnat_get_specific_dispatching): Add this routine that returns the + priority specific dispatching policy, as set by a + Priority_Specific_Dispatching pragma appearing anywhere in the current + partition. The input argument is the priority number, and the result + is the upper case first character of the policy name. + (__gnat_set_globals): Now a dummy function. + (__gnat_handle_vms_condition): Feed adjust_context_for_raise with + mechargs instead of sigargs, as the latter can be retrieved from the + former and sigargs is not what we want on ia64. + (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the + mechargs argument. + (__gnat_adjust_context_for_raise, ia64-vms): New function. + (tasking_error): Remove unused symbol. + (_abort_signal): Move this symbol to the IRIX specific part since this + is the only target that uses this definition. + (Check_Abort_Status): Move this symbol to the IRIX specific part since + this is the only target that uses this definition. + (Lock_Task): Remove unused symbol. + (Unlock_Task): Remove unused symbol. + + * lib-writ.adb (Write_ALI): Output new S lines for + Priority_Specific_Dispatching pragmas. + Implement new flag BD for elaborate body desirable + + * lib-writ.ads: Document S lines for Priority Specific Dispatching. + (Specific_Dispatching): Add this table for storing the entries + corresponding to Priority_Specific_Dispatching pragmas. + Document new BD flag for elaborate body desirable + + * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list + of known pragmas. + +2006-10-31 Javier Miranda + + * a-tags.ads, a-tags.adb: + (Predefined_DT): New function that improves readability of the code. + (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address, + Inherit_DT): Use the new function Predefined_DT to improve code + readability. + (Register_Interface_Tag): Update assertion. + (Set_Interface_Table): Update assertion. + (Interface_Ancestor_Tags): New subprogram required to implement AI-405: + determining progenitor interfaces in Tags. + (Inherit_CPP_DT): New subprogram. + + * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the + analysis of the thunk code. + (Expand_Interface_Conversion): Handle run-time conversion of + access to class wide types. + (Expand_Dispatching_Call): When generating the profile for the + subprogram itype for a dispatching operation, properly terminate the + formal parameters chaind list (set the Next_Entity of the last formal + to Empty). + (Collect_All_Interfaces): Removed. This routine has been moved to + sem_util and renamed as Collect_All_Abstract_Interfaces. + (Set_All_DT_Position): Hidden entities associated with abstract + interface primitives are not taken into account in the check for + 3.9.3(10); this check is done with the aliased entity. + (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for + interfacing with CPP by default. + (Expand_Interface_Conversion): Add missing support for static conversion + from an interface to a tagged type. + (Collect_All_Interfaces): Add new out formal containing the list of + abstract interface types to cleanup the subprogram Make_DT. + (Make_DT): Update the code to generate the table of interfaces in case + of abstract interface types. + (Is_Predefined_Dispatching_Alias): New function that returns true if + a primitive is not a predefined dispatching primitive but it is an + alias of a predefined dispatching primitive. + (Make_DT): If the ancestor of the type is a CPP_Class and we are + compiling under full ABI compatibility mode we avoid the generation of + calls to run-time services that fill the dispatch tables because under + this mode we currently inherit the dispatch tables in the IP subprogram. + (Write_DT): Emit an "is null" indication for a null procedure primitive. + (Expand_Interface_Conversion): Use an address as the type of the formal + of the internally built function that handles the case in which the + target type is an access type. + +2006-10-31 Robert Dewar + + * binde.adb (Better_Choice, Worse_Choice): Implement new preferences. + +2006-10-31 Robert Dewar + + * bindusg.ads, bindusg.adb: + Change to package and rename procedure as Display, which + now ensures that it only outputs usage information once. + +2006-10-31 Jose Ruiz + + * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when + using RTPs. + + * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater + when using RTPs. + +2006-10-31 Robert Dewar + Ed Schonberg + + * treepr.adb: Use new subtype N_Membership_Test + + * checks.ads, checks.adb: Add definition for Validity_Check + (Range_Or_Validity_Checks_Suppressed): New function + (Ensure_Valid): Test Validity_Check suppressed + (Insert_Valid_Check): Test Validity_Check suppressed + (Insert_Valid_Check): Preserve Do_Range_Check flag + (Validity_Check_Range): New procedure + (Expr_Known_Valid): Result of membership test is always valid + (Selected_Range_Checks): Range checks cannot be applied to discriminants + by themselves. Disabling those checks must also be done for task types, + where discriminants may be used for the bounds of entry families. + (Apply_Address_Clause_Check): Remove side-effects if address expression + is non-static and is not the name of a declared constant. + (Null_Exclusion_Static_Checks): Extend to handle Function_Specification. + Code cleanup and new error messages. + (Enable_Range_Check): Test for some cases of suppressed checks + (Generate_Index_Checks): Suppress index checks if index checks are + suppressed for array object or array type. + (Apply_Selected_Length_Checks): Give warning for compile-time detected + length check failure, even if checks are off. + (Ensure_Valid): Do not generate a check on an indexed component whose + prefix is a packed boolean array. + * checks.adb: (Alignment_Checks_Suppressed): New function + (Apply_Address_Clause_Check): New procedure, this is a completely + rewritten replacement for Apply_Alignment_Check + (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that + we request a discriminal value only in case of discriminants. + (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for + assignments where the target subtype is unconstrained and the target + object is a parameter or dereference (other aliased cases are known + to be unconstrained). + +2006-10-31 Robert Dewar + + * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads, + prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads, + vms_conv.adb: Fix bad table increment values (much too small) + + * table.adb (Realloc): Make sure we get at least some new elements + Defends against silly small values for table increment + +2006-10-31 Robert Dewar + Ed Schonberg + Bob Duff + + * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all + entities. Move other fields around to make this possible + (Is_Derived_Type): Add missing call to Is_Type. + (Extra_Formals): New function for subprograms, entries, subprogram + types. + (Set_Extra_Formals): New procedure for subprograms, entries, subp types. + (First_Formal_With_Extras): New function for subprogs, entries, subp + types. + (Write_Field28_Name): New procedure for node display of "Extra_Formals". + Add node information for E_Return_Statement. + (Elaborate_Body_Desirable): New flag + (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type + to be Is_Inherently_Limited_Type, because return-by-reference has + no meaning in Ada 2005. + (E_Return_Statement): New entity kind. + (Return_Applies_To): Field of E_Return_Statement. + (Is_Return_Object): New flag in object entities. + (Is_Dynamic_Scope): Make it True for E_Return_Statement. + (Must_Have_Preelab_Init): New flag + (Known_To_Have_Preelab_Init): New flag + (Is_Formal_Object): Move from Sem_Ch8 body to Einfo + (Is_Visible_Formal): New flag on entities in formal packages. + (Low_Bound_Known): New flag + (Non_Limited_View, Set_Non_Limited_View): Add membership test agains + Incomplete_Kind. + (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name + output when Id is an incomplete subtype. + +2006-10-31 Robert Dewar + + * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m + Avoid abbreviation Creat + (Finalize): List all sources in extended mail source if -gnatl + switch is active. + Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set + (Finalize): Implement new -gnatl=xxx switch to output listing to file + (Set_Specific_Warning_On): New procedure + (Set_Specific_Warning_Off): New procedure + Add implementation of new insertion \\ + (Error_Msg_Internal): Add handling for Error_Msg_Line_Length + (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram + types. + (Error_Msg_Internal): Make sure that we set Last_Killed to + True when a message from another package is suppressed. + Implement insertion character ~ (insert string) + (First_Node): Minor adjustments to get better placement. + + * frontend.adb: + Implement new -gnatl=xxx switch to output listing to file + + * gnat1drv.adb: + Implement new -gnatl=xxx switch to output listing to file + + * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch + (Commands_To_Stdout): New flag + Implement new -gnatl=xxx switch to output listing to file + New switch Dump_Source_Text + (Warn_On_Deleted_Code): New warning flag for -gnatwt + Define Error_Msg_Line_Length + (Warn_On_Assumed_Low_Bound): New switch + + * osint.ads, osint.adb + (Normalize_Directory_Name): Fix bug. + Implement new -gnatl=xxx switch to output listing to file + (Concat): Removed, replaced by real concatenation + Make use of concatenation now allowed in compiler + (Executable_Prefix.Get_Install_Dir): First get the full path, so that + we find the 'lib' or 'bin' directory even when the tool has been + invoked with a relative path. + (Executable_Name): New function taking string parameters. + + * osint-c.ads, osint-c.adb: + Implement new -gnatl=xxx switch to output listing to file + + * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File + + * switch-c.adb: + Implement new -gnatl=xxx switch to output listing to file + Recognize new -gnatL switch + (no longer keep in old warning about old style usage) + Use concatenation to simplify code + Recognize -gnatjnn switch + (Scan_Front_End_Switches): Clean up handling of -gnatW + (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg + +2006-10-31 Robert Dewar + + * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure + (Set_Specific_Warning_Off): New procedure + (Warning_Specifically_Suppressed): New function + (Validate_Specific_Warnings): New procedure + (Output_Msg_Text): Complete rewrite to support -gnatjnn + + * err_vars.ads: Implement insertion character ~ (insert string) + +2006-10-31 Bob Duff + Ed Schonberg + + * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if + the parent part is a build-in-place function call, generate assignments. + (Expand_Record_Aggregate): Call Convert_To_Assignments if any components + are build-in-place function calls. + (Replace_Self_Reference): New subsidiary of + Make_OK_Assignment_Statement, to replace an access attribute that is a + self-reference into an access to the appropriate component of the + target object. Generalizes previous mechanism to handle self-references + nested at any level. + (Is_Self_Referential_Init): Remove, not needed. + (Is_Self_Referential_Init): New predicate to simplify handling of self + referential components in record aggregates. + (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to + check for presence of entity before checking for self-reference. + (Has_Default_Init_Comps): Return True if a component association is a + self-reference to the enclosing type, which can only come from a + default initialization. + (Make_OK_Assignment_Statement): If the expression is of the form + Typ'Acc, where Acc is an access attribute, the expression comes from a + default initialized self-referential component. + (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type + that has been derived from several abstract interfaces we must also + initialize the tags of the secondary dispatch tables. + +2006-10-31 Ed Schonberg + Thomas Quinot + Javier Miranda + Robert Dewar + + * exp_attr.adb: + (Expand_Access_To_Protected_Op): If the context indicates that an access + to a local operation may be transfered outside of the object, create an + access to the wrapper operation that must be used in an external call. + (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP + target, pass the Valid attribute applied to a floating-point prefix on + to the back end without expansion. + (Storage_Size): Use the new run-time function Storage_Size to retrieve + the allocated storage when it is specified by a per-object expression. + (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type. + Nothing to do here, the attribute has been rewritten during semantic + analysis. + (Expand_Attribute_Reference): Handle expansion of the new Priority + attribute + (Find_Fat_Info): Handle case of universal real + (Expand_Access_To_Protected_Op): Fix use of access to protected + subprogram from inside the body of a protected entry. + (Expand_Access_To_Protected_Op): Common procedure for the expansion of + 'Access and 'Unrestricted_Access, to transform the attribute reference + into a fat pointer. + (Is_Constrained_Aliased_View): New predicate to help determine whether a + subcomponent's enclosing variable is aliased with a constrained subtype. + (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05, + test Is_Constrained_Aliased_View rather than Is_Aliased_View, because + an aliased prefix must be known to be constrained in order to use True + for the attribute value, and now it's possible for some aliased views + to be unconstrained. + +2006-10-31 Robert Dewar + + * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue + (Expand_Entity_Reference): Correct error of not handling subprogram + formals in current_value processing. + +2006-10-31 Javier Miranda + Robert Dewar + Ed Schonberg + Gary Dismukes + + * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not + register in the final list objects containing class-wide interfaces; + otherwise we incorrectly register the tag of the interface in the final + list. + (Make_Controlling_Function_Wrappers): Add missing barrier to do not + generate the wrapper if the parent primitive is abstract. This is + required to report the correct error message. + (Expand_N_Subtype_Indication): Do validity checks on range + (Clean_Task_Names): If an initialization procedure includes a call to + initialize a task (sub)component, indicate that the procedure will use + the secondary stack. + (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI + compatibility for interfacing with CPP by default. + (Expand_N_Object_Declaration): Only build an Adjust call when the + object's type is a nonlimited controlled type. + * exp_ch3.adb: Add with and use of Exp_Ch6. + (Expand_N_Object_Declaration): Check for object initialization that is a + call to build-in-place function and apply Make_Build_In_Place_Call_In_ + Object_Declaration to the call. + (Freeze_Type): When the designated type of an RACW was not frozen at the + point where the RACW was declared, validate the primitive operations + with respect to E.2.2(14) when it finally is frozen. + (Build_Initialization_Call,Expand_Record_Controller): Rename + Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because + return-by-reference has no meaning in Ada 2005. + (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top + to register tag of the immediate ancestor interfaces in the + run-time structure. + (Init_Secondary_Tags): Moved to the specification to allow the + initialization of extension aggregates with abstract interfaces. + (Build_Master_Renaming): Make public, for use by function declarations + whose return type is an anonymous access type. + (Freeze_Record_Type): Replace call to Insert_List_Before by call to + Insert_List_Before_And_Analyze after the generation of the specs + associated with null procedures. + (Expand_Tagged_Root): Update documentation in its specification. + (Init_Secondary_Tags): Update documentation. + (Build_Init_Procedure): If we are compiling under CPP full ABI compa- + tibility mode and the immediate ancestor is a CPP_Pragma tagged type + then generate code to inherit the contents of the dispatch table + directly from the ancestor. + (Expand_Record_Controller): Insert controller component after tags of + implemented interfaces. + (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to + create null procedure overridings when null procedures are inherited + from interfaces. + (Make_Null_Procedure_Specs): New procedure to generate null procedure + declarations for overriding null primitives inherited from interfaces. + (Is_Null_Interface_Procedure): New function in + Make_Null_Procedure_Specs. + (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the + immediate ancestor of a tagged type is an abstract interface type we + must generate the specification of the predefined primitives associated + with controlled types (because the dispatch table of the ancestor is + null and hence these entries cannot be inherited). This is required to + elaborate well the dispatch table. + +2006-10-31 Javier Miranda + Ed Schonberg + Bob Duff + Gary Dismukes + Robert Dewar + + * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type + conversion. + (Expand_N_In): Do validity checks on range + (Expand_Selected_Component): Use updated for of Denotes_Discriminant. + (Expand_N_Allocator): For "new T", if the object is constrained by + discriminant defaults, allocate the right amount of memory, rather than + the maximum for type T. + (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects + when the allocator is initialized by a build-in-place call, since the + allocator is already rewritten as a reference to the function result, + and this prevents an unwanted duplication of the function call. + Add with and use of Exp_Ch6. + (Expand_Allocator_Expresssion): Check for an allocator whose expression + is a call to build-in-place function and apply + Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and + untagged designated types). + (Expand_N_Unchecked_Type_Conversion): Do not do integer literal + optimization if source or target is biased. + (Expand_N_Allocator): Add comments for case of an allocator within a + function that returns an anonymous access type designating tasks. + (Expand_N_Allocator): apply discriminant checks for access + discriminants of anonymous access types (AI-402, AI-416) + +2006-10-31 Bob Duff + Robert Dewar + Gary Dismukes + Ed Schonberg + + * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure. + + * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range + (Expand_N_Assignment_Statement): Call + Make_Build_In_Place_Call_In_Assignment if the right-hand side is a + build-in-place function call. Currently, this can happen only for + assignments that come from aggregates. + Add -gnatd.l --Use Ada 95 semantics for limited function returns, + in order to alleviate the upward compatibility introduced by AI-318. + (Expand_N_Extended_Return_Statement): Add support for handling the + return object as a build-in-place result. + (Expand_Non_Function_Return): Implement simple return statements nested + within an extended return. + (Enable_New_Return_Processing): Turn on the new processing of return + statements. + (Expand_Non_Function_Return): For a return within an extended return, + don't raise Program_Error, because Sem_Ch6 now gives a warning. + (Expand_N_Extended_Return_Statement): Implement AI-318 + (Expand_Simple_Function_Return): Ditto. + (Expand_N_If_Statement): Handle new -gnatwt warning + (Expand_N_Case_Statement): Handle new -gnatwt warning + (Expand_N_Assignment): Handle assignment to the Priority attribute of + a protected object. + (Expand_N_Assignment_Statement): Implement -gnatVe/E to control + validity checking of assignments to elementary record components. + (Expand_N_Return_Statement): return Class Wide types on the secondary + stack independantly of their controlled status since with HIE runtimes, + class wide types are not potentially controlled anymore. + + * expander.adb (Expand): Add case for new N_Extended_Return_Statement + node kind. + + * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid + Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because + it expects a block, procedure, or task. The return statement will get + turned into a block, and Expand_Cleanup_Actions will happen then. + +2006-10-31 Robert Dewar + Ed Schonberg + Bob Duff + Gary Dismukes + + * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression + capability. + (Expand_Inlined_Call): Tagged types are by-reference types, and + therefore should be replaced by a renaming declaration in the expanded + body, as is done for limited types. + (Expand_Call): If this is a call to a function with dispatching access + result, propagate tag from context. + (Freeze_Subprogram): Enable full ABI compatibility for interfacing with + CPP by default. + (Make_Build_In_Place_Call_In_Assignment): New procedure to do + build-in-place when the right-hand side of an assignment is a + build-in-place function call. + (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion + of the explicit dereference of the allocator to the result subtype of + the build-in-place function. This is needed to satisfy type checking + in cases where the caller's return object is created by an allocator for + a class-wide access type and the type named in the allocator is a + specific type. + (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked + conversion of the reference to the declared object to the result subtype + of the build-in-place function. This is needed to satisfy type checking + in cases where the declared object has a class-wide type. Also, in the + class-wide case, change the type of the object entity to the specific + result subtype of the function, to avoid passing a class-wide object + without explicit initialization to the back end. + (Register_Interface_DT_Entry): Moved outside the body of + Freeze_Subprogram because this routine is now public; it is called from + Check_Dispatching_Overriding to handle late overriding of abstract + interface primitives. + (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for + adding an implicit access actual on a call to a build-in-place function. + (Expand_Actuals): Test for an actual parameter that is a call to a + build-in-place function and apply + Make_Build_In_Place_Call_In_Anonymous_Context to the call. + (Is_Build_In_Place_Function): New function to determine whether an + entity is a function whose calls should be handled as build-in-place. + (Is_Build_In_Place_Function_Call): New function to determine whether an + expression is a function call that should handled as build-in-place. + (Make_Build_In_Place_Call_In_Allocator): New procedure for handling + calls to build-in-place functions as the initialization of an allocator. + (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for + handling calls to build-in-place functions in contexts that do not + involve init of a separate object (for example, actuals of subprogram + calls). + (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for + handling calls to build-in-place functions as the initialization of an + object declaration. + (Detect_Infinite_Recursion): Add explicit parameter Process to + instantiation of Traverse_Body to avoid unreferenced warning. + (Check_Overriding_Inherited_Interfaces): Removed. + (Register_Interface_DT_Entry): Code cleanup. + (Register_Predefined_DT_Entry): Code cleanup. + (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around + inlined statements if within a transient scope. + (Expand_Inlined_Call.Process_Formals): When replacing occurrences of + formal parameters with occurrences of actuals in inlined body, establish + visibility on the proper view of the actual's subtype for the body's + context. + (Freeze_Subprogram): Do nothing if we are compiling under full ABI + compatibility mode and we have an imported CPP subprogram because + for now we assume that imported CPP primitives correspond with + objects whose constructor is in the CPP side (and therefore we + don't need to generate code to register them in the dispatch table). + (Expand_Actuals): Introduce copy of actual, only if it might be a bit- + aligned selected component. + (Add_Call_By_Copy_Node): Add missing code to handle the case in which + the actual of an in-mode parameter is a type conversion. + (Expand_Actuals): If the call does not come from source and the actual + is potentially misaligned, let gigi handle it rather than rejecting the + (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning + Class Wide types as returning by reference independantly of their + controlled status since with HIE runtimes class wide types are not + potentially controlled anymore. + +2006-10-31 Ed Schonberg + + * exp_ch9.adb (Update_Prival_Types): Simplify code for entity + references that are private components of the protected object. + (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function + (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc + instantiation to deal with warnings. + (Initialize_Protection): If expression for priority is non-static, use + System_Priority as its expected type, in case the expression has not + been analyzed yet. + +2006-10-31 Robert Dewar + + * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing + initialization of Homonym_Len. + (Fully_Qualify_Name): Remove kludge to eliminate anonymous block + names from fully qualified name. Fixes problem of duplicate + external names differing only in the presence of such a block name. + +2006-10-31 Thomas Quinot + Pablo Oliveira + + * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign + subprogram Ids, even if they are not yet assigned. + (Build_Subprogram_Id): It is now this function that will take care of + calling Assign_Subprogram_Ids if necessary. + (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids + should be done only once they are assigned. + (Build_From_Any_Function, case of tagged types): Add missing call to + Allocate_Buffer. + (Corresponding_Stub_Type): New subprogram. Returns the associated stub + type for an RACW type. + (Add_RACW_Features): When processing an RACW declaration for which the + designated type is already frozen, enforce E.2.2(14) rules immediately. + (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any + special reordering of controlling formals. + + * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the + associated stub type for an RACW type. + +2006-10-31 Ed Schonberg + + * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of + fixed-point operations in an integer context, i.e. as operands of a + conversion to an integer type, indicate that result must be rounded. + +2006-10-31 Robert Dewar + + * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character + cases, pass the encoding method, since it is now required by the run + time. + + * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid + assumption that Str'First = 1. + (Value_Wide_Character): Takes EM (encoding method) parameter and passes + it on to the Value_Wide_Wide_Character call. + (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and + properly handles a string of the form quote-encoded_wide_char-quote. + + * s-wchcnv.adb: Minor reformatting + +2006-10-31 Javier Miranda + + * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing + run-time membership test to ensure that the constructed object + implements the target abstract interface. + +2006-10-31 Robert Dewar + + * exp_prag.adb (Expand_Pragma_Common_Object): Use a single + Machine_Attribute pragma internally to implement the user pragma. + Add processing for pragma Interface so that it is now completely + equivalent to pragma Import. + + * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma + so that it can be applied to all entities, including record components + and enumeration literals. + (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether + priority ranges are correct, verify compatibility against task + dispatching and locking policies, and if everything is correct an entry + is added to the table containing priority specific dispatching entries + for this compilation unit. + (Delay_Config_Pragma_Analyze): Delay processing + Priority_Specific_Dispatching pragmas because when processing the + pragma we need to access run-time data, such as the range of + System.Any_Priority. + (Sig_Flags): Add Pragma_Priority_Specific_Dispatching. + Allow pragma Unreferenced as a context item + Add pragma Preelaborable_Initialization + (Analyze_Pragma, case Interface): Interface is extended so that it is + now syntactically and semantically equivalent to Import. + (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on + insertion characters. + Add handling for Pragma_Wide_Character_Encoding + (Process_Restrictions_Restriction_Warnings): Ensure that a warning + never supercedes a real restriction, and that a real restriction + always supercedes a warning. + (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of + appropriate form. + +2006-10-31 Bob Duff + Ed Schonberg + Robert Dewar + + * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs, + Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be + Is_Inherently_Limited_Type, because return-by-reference has no meaning + in Ada 2005. + (Find_Node_To_Be_Wrapped): Use new method of determining the result + type of the function containing a return statement, because the + Return_Type field was removed. We now use the Return_Applies_To field. + + * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test + (Build_Task_Image_Decl): If procedure is not called from an + initialization procedure, indicate that function that builds task name + uses the sec. stack. Otherwise the enclosing initialization procedure + will carry the indication. + (Insert_Actions): Remove N_Return_Object_Declaration. We now use + N_Object_Declaration instead. + (Kill_Dead_Code): New interface to implement -gnatwt warning for + conditional dead code killed, and change implementation accordingly. + (Insert_Actions): Add N_Return_Object_Declaration case. + Correct comment to mention N_Extension_Aggregate node. + (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad + attempts to save information for global variables which cannot be + safely tracked. + (Get_Current_Value_Condition): Handle conditions the other way round + (constant on left). Also handle right operand of AND and AND THEN + (Set_Current_Value_Condition): Corresponding changes + (Append_Freeze_Action): Remove unnecessary initialization of Fnode. + (Get_Current_Value_Condition): Handle simple boolean operands + (Get_Current_Value_Condition): Handle left operand of AND or AND THEN + (Get_Current_Value_Condition): If the variable reference is within an + if-statement, does not appear in the list of then_statments, and does + not come from source, treat it as being at unknown location. + (Get_Current_Value_Condition): Enhance to allow while statements to be + processed as well as if statements. + (New_Class_Wide_Subtype): The entity for a class-wide subtype does not + come from source. + (OK_To_Do_Constant_Replacement): Allow constant replacement within body + of loop. This is safe now that we fixed Kill_Current_Values. + (OK_To_Do_Constant_Replacement): Check whether current scope is + Standard, before examining outer scopes. + +2006-10-31 Vincent Celier + + * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target. + When True, apply VMS treatment to children of packages A, G, I and S. + For F320-016 + + * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target + +2006-10-31 Robert Dewar + Ed Schonberg + + * freeze.adb: Add handling of Last_Assignment field + (Warn_Overlay): Supply missing continuation marks in error msgs + (Freeze_Entity): Add check for Preelaborable_Initialization + + * g-comlin.adb: Add Warnings (Off) to prevent new warning + + * g-expect.adb: Add Warnings (Off) to prevent new warning + + * lib-xref.adb: Add handling of Last_Assignment field + (Generate_Reference): Centralize handling of pragma Obsolescent here + (Generate_Reference): Accept an implicit reference generated for a + default in an instance. + (Generate_Reference): Accept a reference for a node that is not in the + main unit, if it is the generic body corresponding to an subprogram + instantiation. + + * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings + + * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for + -gnatwq/Q. + (Warn_On_Useless_Assignment): Suppress warning if enclosing inner + exception handler. + (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on + use clauses, to avoid messages on packages used to qualify, and also + to avoid messages from obsolescent units. + (Warn_On_Useless_Assignments): Don't generate messages for imported + and exported variables. + (Warn_On_Useless_Assignments): New procedure + (Output_Obsolescent_Entity_Warnings): New procedure + (Check_Code_Statement): New procedure + + * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag + Change name Is_Ada_2005 to Is_Ada_2005_Only + (Last_Assignment): New field for useless assignment warning + +2006-10-31 Olivier Hainque + + * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the + closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16. + +2006-10-31 Bob Duff + Robert Dewar + Ed Schonberg + + * g-awk.adb (Default_Session, Current_Session): Compile this file in + Ada 95 mode, because it violates the new rules for AI-318. + + * g-awk.ads: Use overloaded subprograms in every case where we used to + have a default of Current_Session. This makes the code closer to be + correct for both Ada 95 and 2005. + + * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005 + code, relying on the fact that the compiler generates a warning + instead of an error in -gnatg mode. + + * lib-xref.ads (Xref_Entity_Letters): Add entry for new + E_Return_Statement entity kind. + Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters. + + * par.adb (P_Interface_Type_Definition): Addition of one formal to + report an error if the reserved word abstract has been previously found. + (SS_End_Type): Add E_Return for new extended_return_statement syntax. + + * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for + parenthesized range attribute usage + (P_Expression_No_Right_Paren): Add missing comment about error recovery. + + * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant" + in the syntax for extended_return_statement. This is not in the latest + RM, but the ARG is expected to issue an AI allowing this. + (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove + N_Return_Object_Declaration. We now use N_Object_Declaration instead. + (P_Return_Object_Declaration, P_Return_Subtype_Indication, + P_Return_Statement): Parse the new syntax for extended_return_statement. + + * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected, + Output_End_Missing): Add error-recovery code for the new + extended_return_statement syntax; that is, the new E_Return entry on + the scope stack. + + * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from + limited to nonlimited, because otherwise we violate the new Ada 2005 + rules about returning limited types in function Create_AST_Handler in + s-asthan.adb. + + * sem.adb (Analyze): Add cases for new node kinds + N_Extended_Return_Statement and N_Return_Object_Declaration. + + * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component + type is in the same category as type of context before applying check, + to prevent anomalies in instantiations. + (Resolve_Aggregate): Remove test for limited components in aggregates. + It's unnecessary in Ada 95, because if it has limited components, then + it must be limited. It's wrong in Ada 2005, because limited aggregates + are now allowed. + (Resolve_Record_Aggregate): Move check for limited types later, because + OK_For_Limited_Init requires its argument to have been resolved. + (Get_Value): When copying the component default expression for a + defaulted association in an aggregate, use the sloc of the aggregate + and not that of the original expression, to prevent spurious + elaboration errors, when the expression includes function calls. + (Check_Non_Limited_Type): 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. + (Resolve_Extension_Aggregate): Minor fix to bad error message (started + with space can upper case letter). + + * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set + Has_Static_Discriminants flag + (Record_Type_Declaration): Diagnose an attempt to declare an interface + type with discriminants. + (Process_Range_Expr_In_Decl): Do validity checks on range + (Build_Discriminant_Constraints): Use updated form of + Denotes_Discriminant. + (Process_Subtype): If the subtype is a private subtype whose full view + is a concurrent subtype, introduce an itype reference to prevent scope + anomalies in gigi. + (Build_Derived_Record_Type, Collect_Interface_Primitives, + Record_Type_Declaration): The functionality of the subprograms + Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces + is now performed by a single routine. + (Build_Derived_Record_Type): If the type definition includes an explicit + indication of limitedness, then the type must be marked as limited here + to ensure that any access discriminants will not be treated as having + a local anonymous access type. + (Check_Abstract_Overriding): Issue a detailed error message when an + abstract subprogram was not overridden due to incorrect mode of its + first parameter. + (Analyze_Private_Extension_Declaration): Add support for the analysis of + synchronized private extension declarations. Verify that the ancestor is + a limited or synchronized interface or in the generic case, the ancestor + is a tagged limited type or synchronized interface and all progenitors + are either limited or synchronized interfaces. + Derived_Type_Declaration): Check for presence of private extension when + dealing with synchronized formal derived types. + Process_Full_View): Enchance the check done on the usage of "limited" by + testing whether the private view is synchronized. + Verify that a synchronized private view is completed by a protected or + task type. + (OK_For_Limited_Init_In_05): New function. + (Analyze_Object_Declaration): Move check for limited types later, + because OK_For_Limited_Init requires its argument to have been resolved. + Add -gnatd.l --Use Ada 95 semantics for limited function returns, + in order to alleviate the upward compatibility introduced by AI-318. + (Constrain_Corresponding_Record): If the constraint is for a component + subtype, mark the itype as frozen, to avoid out-of-scope references to + discriminants in the back-end. + (Collect_Implemented_Interfaces): Protect the recursive algorithm of + this subprogram against wrong sources. + (Get_Discr_Value, Is_Discriminant): Handle properly references to a + discriminant of limited type completed with a protected type, when the + discriminant is used to constrain a private component of the type, and + expansion is disabled. + (Find_Type_Of_Object): Do not treat a return subtype that is an + anonymous subtype as a local_anonymous_type, because its accessibility + level is the return type of the enclosing function. + (Check_Initialization): In -gnatg mode, turn the error "cannot + initialize entities of limited type" into a warning. + (OK_For_Limited_Init): Return true for generated nodes, since it + sometimes violates the legality rules. + (Make_Incomplete_Declaration): If the type for which an incomplete + declaration is created happens to be the currently visible entity, + preserve the homonym chain when removing it from visibility. + (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of + inherited subprograms. + (Access_Definition): If this is an access to function that is the return + type of an access_to_function definition, context is a type declaration + and the scope of the anonymous type is the current one. + (Analyze_Subtype_Declaration): Add the defining identifier of a regular + incomplete subtype to the set of private dependents of the original + incomplete type. + (Constrain_Discriminated_Type): Emit an error message whenever an + incomplete subtype is being constrained. + (Process_Incomplete_Dependents): Transform an incomplete subtype into a + corresponding subtype of the full view of the original incomplete type. + (Check_Incomplete): Properly detect invalid usage of incomplete types + and subtypes. + +2006-10-31 Hristian Kirtchev + + * g-catiio.ads, g-catiio.adb (Value): New function. + Given an input String, try and parse a valid Time value. + +2006-10-31 Vincent Celier + + * g-debpoo.adb (Is_Valid): Correctly compute Offset using + Integer_Address arithmetic, as in Set_Valid. + +2006-10-31 Arnaud Charlet + Robert Dewar + + * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of + handling executable extension manually and duplicating code. + + * make.adb: Implement new -S switch + (Gnatmake): Use new function Osint.Executable_Name instead + of handling executable extension manually. + + * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix + is specified, the executable name ends with this suffix. + Take advantage of Osint.Executable_Name instead of duplicating code. + + * switch-m.adb: Recognize new gnatmake -S switch + + * targparm.ads, targparm.adb (Executable_Extension_On_Target): New + variable. + (Get_Target_Parameters): Set Executable_Extension_On_Target if + available. + + * makeusg.adb: Add line for gnatmake -S switch + +2006-10-31 Vincent Celier + + * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc, + call it with -static-libgcc, as there are some platforms, such as + Darwin, where one of these two switches is compulsory to link. + +2006-10-31 Vincent Celier + + * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined, + instead of ADA_PROJECT_PATH, for the project path. + (Gnatls): When displaying the project path directories, use host dir + specs. + + * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path + names in the project path, as absolute paths may correspond to + multi-valued VMS logical names. + +2006-10-31 Vincent Celier + + * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an + absolute path name. + (Locate_Regular_File): Ditto + (Change_Dir): Remove, no longer used + (Normalize_Pathname): Do not use Change_Dir to get the drive letter + on Windows. Get it calling Get_Current_Dir. + (OpenVMS): Remove imported boolean, no longer needed. + (Normalize_Pathname)[VMS]: Do not resolve directory names. + (Pid_To_Integer): New function to convert a Process_Id to Integer + +2006-10-31 Thomas Quinot + + * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling + sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components + to No_Socket. + (Selector_Type): Add default value of No_Socket for R_Sig_Socket and + W_Sig_Socket. + +2006-10-31 Robert Dewar + + * g-speche.ads, g-speche.adb: Add special case to recognize misspelling + initial letter o as a zero. + +2006-10-31 Robert Dewar + + * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First + +2006-10-31 Robert Dewar + + * layout.adb (Layout_Record_Type): Deal with non-static subtypes of + variant records + (Layout_Variant_Record): Retrieve the discriminants from the entity + rather than from the type definition, because in the case of a full + type for a private type we need to take the discriminants from the + partial view. + (Layout_Component_List): When applying the Max operator to variants with + a nonstatic size, check whether either operand is static and scale that + operand from bits to storage units before applying Max. + (Layout_Type): In VMS, if a C-convention access type has no explicit + size clause (and does not inherit one in the case of a derived type), + then the size is reset to 32 from 64. + +2006-10-31 Vincent Celier + + * lib-load.adb (Load_Unit): Skip the test for a unit not found when + its file has already been loaded, according to the unit being loaded, + not to the current value of Multiple_Unit_Index. + +2006-10-31 Thomas Quinot + Eric Botcazou + Arnaud Charlet + + * Makefile.in: Set EH mechanism to ZCX for FreeBSD. + (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if + possible. + (a-except.o): Pass it to the compiler. + (gnatlib-shared-vms): Removed -nostartfiles switch in link step. + (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific + a-calend-mingw.adb version. + + * Makefile.rtl: Added s-dsaser. + Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones] + (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and + Ada.Dispatching.Round_Robin. + Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists + + * Make-lang.in: Remove all references to gt-ada-decl.h. + Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler + sources. + Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects. + Update dependencies. + + * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD + +2006-10-31 Vincent Celier + + * mlib-utl.adb (Initialized): Remove, no longer used + (Initialize): Remove, no longer used + (Ar): If Ar_Exec is null, get the location of the archive builder and, + if there is one, the archive indexer. Fail if the archive builder cannot + be found. + (Gcc): If the driver path is unknown, get it. Fail if the driver cannot + be found. + +2006-10-31 Ed Schonberg + + * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs, + Process_Body_Clauses): If the context of a body includes a use clause + for P.Q then a with_clause for P in the same body is not redundant, + even if the spec also has a with_clause on P. + Add missing continuation mark to error msg + (Build_Limited_Views): A limited view of a type is tagged if its + declaration includes a record extension. + (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit + node, even if the subunit has errors. This avoids malfunction by + Lib.Check_Same_Extended_Unit in the presence of syntax errors. + (Analyze_Compilation_Unit): Add circuit to make sure we get proper + generation of obsolescent messages for with statements (cannot do + this too early, or we cannot implement avoiding the messages in the + case of obsolescent units withing obsolescent units). + (Install_Siblings): If the with_clause is on a remote descendant of + an ancestor of the current compilation unit, find whether there is + a sibling child unit that is immediately visible. + (Remove_Private_With_Clauses): New procedure, invoked after completing + the analysis of the private part of a nested package, to remove from + visibility the private with_clauses of the enclosing package + declaration. + (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is + now centralized in Generate_Reference. + (Install_Limited_Context_Clauses): Remove superfluous error + message associated with unlimited view visible through use + and renamings. In addition, at the point in which the error + is reported, we add the backslash to the text of the error + to ensure that it is reported as a single error message. + Use new // insertion for some continuation messages + (Expand_Limited_With_Clause): Use copy of name rather than name itself, + to create implicit with_clause for parent unit mentioned in original + limited_with_clause. + (Install_Limited_With_Unit): Set entity of parent identifiers if the + unit is a child unit. For ASIS queries. + (Analyze_Subunit): If the subunit appears within a child unit, make all + ancestor child units directly visible again. + +2006-10-31 Robert Dewar + + * par-ch10.adb (P_Context_Clause): Minor error message fix + +2006-10-31 Hristian Kirtchev + Javier Miranda + + * par-ch12.adb: Grammar update and cleanup. + (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add + support for synchronized derived type definitions. + Add the new actual Abstract_Present to every call to + P_Interface_Type_Definition. + (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of + a formal object declaration with an access definition or a subtype mark + with a null exclusion. + (P_Generic_Association): Handle association with box, and others_choice + with box, to support Ada 2005 partially parametrized formal packages. + +2006-10-31 Robert Dewar + Javier Miranda + + * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses + (P_Type_Declaration): Remove barrier against the reserved word "limited" + after "abstract" to give support to the new syntax of AARM 3.4 (2/2). + (P_Type_Declaration): Minor code cleanup. Add support for synchronized + private extensions. + (P_Type_Declaration): Add the new actual Abstract_Present to every call + to P_Interface_Type_Definition. + (P_Interface_Type_Definition): Addition of one formal to report an error + if the reserved word abstract has been previously found. + (P_Identifier_Declarations): Update grammar rules. Handle parsing of an + object renaming declaration with an access definition or subtype mark + with a possible null exclusion. + + * par-ch9.adb: Minor error msg fix + + * par-load.adb: Add missing continuation mark to error msg + + * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation + +2006-10-31 Vincent Celier + + * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for + unknown attribute in unknown package or in package that does not need + to be checked. + (Parse_Package_Declaration): Do not issue warning for unknown package in + quiet output. + +2006-10-31 Vincent Celier + + * 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. + +2006-10-31 Vincent Celier + + * 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. + +2006-10-31 Robert Dewar + + * repinfo.adb (List_Entities): Don't list entities from renaming + declarations. + +2006-10-31 Arnaud Charlet + Robert Dewar + + * 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. + +2006-10-31 Arnaud Charlet + + * 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 + +2006-10-31 Robert Dewar + + * scng.adb (Scan, case of numeric literal): Better msg for identifier + starting with a digit. + +2006-10-31 Ed Schonberg + Thomas Quinot + Javier Miranda + Gary Dismukes + + * 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). + +2006-10-31 Robert Dewar + + * 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. + +2006-10-31 Ed Schonberg + Hristian Kirtchev + + * 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. + +2006-10-31 Robert Dewar + Thomas Quinot + + * 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 + +2006-10-31 Ed Schonberg + Javier Miranda + Robert Dewar + + * 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. + +2006-10-31 Robert Dewar + Ed Schonberg + Gary Dismukes + + * 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. + +2006-10-31 Ed Schonberg + Hristian Kirtchev + Bob Duff + + * 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. + +2006-10-31 Ed Schonberg + Javier Miranda + + * 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. + +2006-10-31 Robert Dewar + Hristian Kirtchev + Javier Miranda + Ed Schonberg + + * 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. + +2006-10-31 Hristian Kirtchev + Ed Schonberg + + * 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. + +2006-10-31 Hristian Kirtchev + Ed Schonberg + Javier Miranda + Gary Dismukes + + * 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. + +2006-10-31 Robert Dewar + Ed Schonberg + + * 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. + +2006-10-31 Robert Dewar + + * sem_eval.adb (Compile_Time_Compare): Make use of information from + Current_Value in the conditional case, to evaluate additional + comparisons at compile time. + +2006-10-31 Ed Schonberg + Hristian Kirtchev + Javier Miranda + + * 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. + +2006-10-31 Robert Dewar + Hristian Kirtchev + Ed Schonberg + + * 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 + +2006-10-31 Robert Dewar + + * 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 + +2006-10-31 Robert Dewar + Ed Schonberg + Bob Duff + + * 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. + +2006-10-31 Ed Schonberg + Robert Dewar + Bob Duff + + * 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. + +2006-10-31 Arnaud Charlet + + * 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. + +2006-10-31 Gary Dismukes + + * 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. + +2006-10-31 Javier Miranda + + * 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. + +2006-10-31 Jose Ruiz + + * 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. + +2006-10-31 Robert Dewar + + * 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 + +2006-10-31 Olivier Hainque + + * 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. + +2006-10-31 Vincent Celier + + * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed + in file names. + +2006-10-31 Vincent Celier + + * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005 + +2006-10-31 Vincent Celier + + * 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. + +2006-10-31 Matt Heaney + + * 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 + +2006-10-31 Doug Rupp + + * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function. + Call TBK$SYMBOLIZE without omitting parameters. + +2006-10-31 Vincent Celier + + * symbols-processing-vms-ia64.adb, + symbols-processing-vms-alpha.adb (Process): Do not include symbols + that come from generic instantiations in bodies. + +2006-10-31 Pat Rogers + + * 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. + +2006-10-31 Robert Dewar + Cyrille Comar + Ben Brosgol + + * 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 + +2006-10-31 Robert Dewar + Thomas Quinot + Arnaud Charlet + + * 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. + +2006-10-23 Rafael Avila de Espindola + * utils.c (builtin_function): Rename to gnat_builtin_function. + Move common code to add_builtin_function. + * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as + gnat_builtin_function. + * gigi.h (builtin_function): Rename to gnat_builtin_function. + Change the signature. + +2006-10-16 Brooks Moses + + * Makefile.in: Add TEXI2PDF definition. + * Make-lang.in: Add "ada.pdf" target. + +2006-10-03 Kazu Hirata + + * decl.c, utils.c: Fix comment typos. + * utils.c: Fix a typo. + +2006-09-28 Eric Botcazou + + * decl.c (gnat_to_gnu_entity) : Do not set "const" flag + on "pure" Ada subprograms if SJLJ exceptions are used. + * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING + on the declaration node of JMPBUF_SAVE. + * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes + of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception. + * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS. + +2006-08-20 Laurent GUERBY + + PR ada/28716 + g-socket.adb (Bind_Socket): Call Set_Address. + +2006-09-15 Eric Botcazou + + PR ada/15802 + * decl.c (same_discriminant_p): New static function. + (gnat_to_gnu_entity) : When there is a parent + subtype and we have discriminants, fix up the COMPONENT_REFs + for the discriminants to make them reference the corresponding + fields of the parent subtype after it has been built. + +2006-09-15 Roger Sayle + + PR ada/18817 + * utils.c (max_size): Perform constant folding of (A ? B : C) - D + into A ? B - D : C - D when calculating the size of a MINUS_EXPR. + +2006-09-13 Olivier Hainque + + PR ada/29025 + * trans.c (gnat_gimplify_expr) : When taking the address + of a SAVE_EXPR, just make the operand addressable/not-readonly and + let the common gimplifier code make and propagate a temporary copy. + (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable + out/in-out actuals and defer setting the addressable/readonly bits + to the gimplifier. + +2006-09-13 Eric Botcazou + + PR ada/28591 + * decl.c (components_to_record): Defer emitting debug info for the + record type associated with the variant until after we are sure to + actually use it. + +2006-09-13 Eric Botcazou + + PR ada/21952 + * gigi.h (gnat_internal_attribute_table): Declare. + * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above. + * utils.c (gnat_internal_attribute_table): New global variable. + (builtin_function): Always call decl_attributes on the builtin. + (handle_const_attribute): New static function. + (handle_nothrow_attribute): Likewise. + +2006-07-28 Volker Reichelt + + * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies. + +2006-06-23 Olivier Hainque + + * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have + not been able to get a constant upper bound from TYPE_SIZE_UNIT. + +2006-06-20 James A. Morrison + Eric Botcazou + + PR ada/18692 + * Make-lang.in: Add check-gnat to lang_checks. Rename existing + check-gnat into check-acats. + +2006-06-17 Karl Berry + + * gnat-style.texi (@dircategory): Use "Software development" + instead of "Programming", following the Free Software Directory. + +2006-06-12 John David Anglin + + PR ada/27944 + * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'. + +2006-06-06 Laurent GUERBY + + PR ada/27769 + mlib-utl.adb: Use Program_Name. + +2006-05-28 Kazu Hirata + + * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c, + sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c, + trans.c, utils.c: Fix comment typos. Follow spelling + conventions. + * gnat_rm.texi, gnat_ugn.texi, : Fix typos. Follow spelling + conventions. + +2006-05-19 Nicolas Setton + + * misc.c (gnat_dwarf_name): New function. + (LANG_HOOKS_DWARF_NAME): Define to it. + +2006-05-14 H.J. Lu + + * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H). + (ada/misc.o): Likewise. + (ada/utils.o): Likewise. + +2006-04-08 Aurelien Jarno + + * Makefile.in: Add Ada support for GNU/kFreeBSD. + * s-osinte-kfreebsd-gnu.ads: New file. + +2006-03-29 Carlos O'Donell + + * Make-lang.in: Rename docdir to gcc_docdir. + +2006-03-04 Eric Botcazou + + * gigi.h (get_ada_base_type): Delete. + * utils2.c (get_ada_base_type): Likewise. + * trans.c (convert_with_check): Operate in the real base type. + +2006-03-03 Richard Kenner + + * uintp.adb (Num_Bits): Handle Uint_Int_First specially. + +2006-03-02 Richard Sandiford + + * utils.c (create_var_decl): Use have_global_bss_p when deciding + whether to make the decl common. + +2006-02-20 Rafael Ávila de Espíndola + + * Make-lang.in (Ada): Remove + (.PHONY): Remove Ada + +2006-02-17 Ed Schonberg + + * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an + aggregate, check the interpretations of the other operand to find one + that may be a boolean array. + + (Analyze_Selected_Component): Fix flow-of-control typo in case where + the prefix is a private extension. + +2006-02-17 Eric Botcazou + + PR ada/26315 + + * utils2.c (find_common_type): If both input types are BLKmode and + have the same constant size, keep using the first one. + + * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround. + + * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant. + + * misc.c (gnat_handle_option): New case for -Woverlength-strings. + +2006-02-17 Jose Ruiz + + * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, + s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, + s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, + s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add + Abort_Defer/Undefer pairs to avoid the possibility of a task being + aborted while owning a lock. + +2006-02-17 Javier Miranda + Robert Dewar + + * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed + through an access to class-wide interface we force the displacement of + the pointer to the allocated object to reference the corresponding + secondary dispatch table. + (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2, + if Long_Shifts are supported on the target, even if 64 bit divides + are not supported (configurable run time mode). + (Expand_N_Type_Conversion): Do validity check if validity checks on + operands are enabled. + (Expand_N_Qualified_Expression): Do validity check if validity checks + on operands are enabled. + +2006-02-17 Ed Schonberg + + * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity + must be materialized when the renamed expression is an explicit + dereference. + +2006-02-17 Ed Schonberg + + * freeze.adb (Statically_Discriminated_Components): Return false if + the bounds of the type of the discriminant are not static expressions. + + * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if + the bounds of the discriminant type are not static. + +2006-02-17 Robert Dewar + + * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD, + then we close To if it is valid. + +2006-02-17 Vasiliy Fofanov + + * init.c (facility_resignal_table): new array + (__gnat_default_resignal_p): enhance default predicate to resignal if + VMS condition has one of the predefined facility codes. + +2006-02-17 Vasiliy Fofanov + + * Makefile.in: Use VMS64 specialized versions of several units in + Interfaces.C hierarchy to be compatible with HP C default size choices. + Use the default version of Ada.Synchronous_Task_Control for VxWorks 653. + +2006-02-17 Ed Schonberg + + * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram + instantiation, the corresponding entity is the related_instance of the + wrapper package created for the instance. + +2006-02-17 Ed Schonberg + + * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if + the current instance is nested within another instance in a child unit. + +2006-02-17 Javier Miranda + Ed Schonberg + + * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent + type we cannot inherit the primitive operations; we inherit the + Corresponding_Record_Type (which has the list of primitive operations). + (Check_Anonymous_Access_Types): When creating anonymous access types for + access components, use Rewrite in order to preserve the tree structure, + for ASIS use. + (Analyze_Object_Declaration): For limited types with access + discriminants with defaults initialized by an aggregate, obtain + subtype from aggregate as for other mutable types. + (Derived_Type_Declaration): If the derived type is a limited interface, + set the corresponding flag (Is_Limited_Record is not sufficient). + +2006-02-17 Ed Schonberg + + * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order + to inline a function that returns an unconstrained type, the return + expression must be the first variable declared in the body of the + function. + +2006-02-17 Javier Miranda + + * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an + abstract interface type, the static analysis is not enough to know if + the interface is implemented or not by the source tagged type. Hence + we must pass the work to the expander to generate the required code to + evaluate the conversion at run-time. + (Resolve_Equality_Op): Do not apply previous + transformation if expansion is disasbled, to prevent anomalies when + locating global references in a generic unit. + +2006-02-17 Vincent Celier + + * snames.ads, snames.adb: New standard names for new project attributes: + archive_builder, archive_indexer, compiler_pic_option, + config_body_file_name, config_body_file_name_pattern, + config_file_switches, config_file_unique, config_spec_file_name, + config_spec_file_name_pattern, default_builder_switches, + default_global_compiler_switches, default_language, + dependency_file_kind, global_compiler_switches, include_path, + include_path_file, language_kind, linker_executable_option, + linker_lib_dir_option, linker_lib_name_option, mapping_file_switches, + roots, runtime_project. + +2006-02-17 Matthew Heaney + + * a-convec.ads, a-convec.adb: + (operator "&"): handle potential overflow for large index types + (Insert): removed Contraint_Error when using large index types + (Insert_Space): removed Constraint_Error for large index types + (Length): moved constraint check from Length to Insert + + * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared + as not null access. + Explicit raise statements now include an exception message. + (operator "&"): handle potential overflow for large index types + (Insert): removed Contraint_Error when using large index types + (Insert_Space): removed Constraint_Error for large index types + (Length): moved constraint check from Length to Insert + +2006-02-17 Robert Dewar + + * s-wchcnv.adb: Document handling of [ on output (we do not change + this to ["5B"] and the new comments say why not. + + * gnat_ugn.texi: + Add note for -gnatVo that this now includes the cases of type + conversions and qualified expressions. + Add comments on handling of brackets encoding for Text_IO + +2006-02-17 Ramon Fernandez + Thomas Quinot + Robert Dewar + Javier Miranda + + * expander.adb: Fix typo in comment + + * exp_pakd.adb: Fix typo + Minor comment reformatting. + + * g-dyntab.adb: Minor reformatting + + * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of + aliased subprograms to look for the abstract interface subprogram. + +2006-02-16 Eric Botcazou + + * env.c (__gnat_setenv): Use size_t. + (__gnat_unsetenv): Likewise. + (__gnat_clearenv): Likewise. + +2006-02-16 Arnaud Charlet + + * opt.ads (Ada_Version_Default): Set to Ada 2005 by default. + +2006-02-13 Arnaud Charlet + + * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads, + g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads, + i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb, + s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb, + s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb, + s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb, + s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb, + s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads, + s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed, + no longer used. + +2006-02-13 Jose Ruiz + + * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit + protection against race conditions is not needed. + (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the + fallback handler. + (Set_Specific_Handler): Add mutual exclusive access to the specific + handler. + (Specific_Handler): Add mutual exclusive access for retrieving the + specific handler. + + * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall + back handler. + + * s-taskin.ads (Common_ATCB): Remove pragma Atomic for + Fall_Back_Handler and Specific_Handler. + + * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task + termination handlers. + Set two different owerflow depending on the maximal stack size. + + * s-solita.adb (Task_Termination_Handler_T): Document why explicit + protection against race conditions is not needed when executing the + task termination handler. + +2006-02-13 Robert Dewar + + * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb, + a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb, + a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads, + a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb, + a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb, + a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads, + a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads, + a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb, + a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads, + a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb, + a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb, + a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads, + a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb, + a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb, + a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb, + a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb, + a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, + a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb, + a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads, + a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb, + g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb, + g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb, + mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb, + prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb, + s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb, + s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads, + s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb, + s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb, + s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads, + s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb, + a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb, + fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb, + par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb, + system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor + reformatting. + +2006-02-13 Hristian Kirtchev + + * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb, + s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb, + s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb, + s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb, + a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb, + s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb, + a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb, + s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb, + s-tataat.adb, s-tpobop.adb: Remove redundant with clauses. + +2006-02-13 Arnaud Charlet + + * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, + s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, + s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, + s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, + s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, + s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed, + replaced by anonymous access type. + (pthread_sigmask): Now take an access sigset_t + + * s-osinte-hpux.ads: Ditto. + (pthread_mutex_t, pthread_cond_t): Update definitions to support + properly 32 and 64 bit ABIs. + +2006-02-13 Pascal Obry + + * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, + s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, + s-taprop-linux.adb, s-taprop-solaris.adb, + s-taprop-vms.adb (Create_Task): Remove task adjustment code. This + adjustement is already done when calling this routine. + +2006-02-13 Pascal Obry + + * system-mingw.ads (Underlying_Priorities): Update the priority mapping + table to take advantage of the 16 priority levels available on Windows + 2000 and XP. On NT4 there are only 7 priority levels, this is properly + supported by this new mapping. + +2006-02-13 Nicolas Setton + + * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types. + (get_encoding): New subprogram. Extracts the encodings from an encoded + Ada name. + +2006-02-13 Pascal Obry + Nicolas Roche + Arnaud Charlet + + * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode + support. + (__gnat_try_lock): Add unicode support by using a specific section on + Windows. + (__gnat_get_current_dir): Idem. + (__gnat_open_read): Idem. + (__gnat_open_rw): Idem. + (__gnat_open_create): Idem. + (__gnat_create_output_file): Idem. + (__gnat_open_append): Idem. + (__gnat_open_new): Idem. + (__gnat_file_time_name): Idem. + (__gnat_set_file_time_name): Idem. + (__gnat_stat): Idem. + (win32_no_block_spawn): Idem. + (__gnat_locate_exec_on_path): Idem. + (__gnat_opendir): New routine. + (__gnat_closedir): Idem. + (__gnat_readdir): Add new parameter length (pointer to int). Update + implementation to use it and add specific Win32 code for Unicode + support. + (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c + (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c + (convert_addresses): Do not define this dummy routine on VMS. + + * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT + runtime Unicode support will be activated. + (S2WS): String to Wide-String conversion. This version just copy a + string in non Unicode version. + (WS2S): Wide-String to String conversion. This version just copy a + string in non Unicode version. + + * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c. + (Open): Now import __gnat_opendir from adaint.c. + (Read): Change the implementation to support unicode characters. It is + not possible to use strlen() on Windows as this version supports only + standard ASCII characters. So the length of the directory entry is now + returned from the imported __gnat_readdir routine. + Update copyright notice. + + * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c. + (opendir): Moved to adaint.c. + + * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation. + (Get_Directory): Fix wrong indexing. + (Getenv): replace __gnat_get_env_value_ptr from adaint.c by + __gnat_getenv from env.c + (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv + from env.c + + * env.h, env.c: New file. + + * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from + adaint.c by __gnat_getenv from env.c + + * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from + adaint.c by __gnat_getenv from env.c + + * Make-lang.in: Add env.o in the list of C object needed by gnat1 + and gnatbind. + Update dependencies. + +2006-02-13 Richard Kenner + Olivier Hainque + Eric Botcazou + + * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted. + + * gigi.h (value_factor_p): Add prototype and description, now public. + + * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type + promotion for field with rep clause if the associated size was proven + to be in error. + Expand comments describing attempts to use a packable type. + (gnat_to_gnu_entity) : Inherit alias set of what we are making a + subtype of to ensure conflicts amongst all subtypes in a hierarchy, + necessary since these are not different types and pointers may + actually designate any subtype in this hierarchy. + (gnat_to_gnu_entity, case E_Record_Type): Always make fields for + discriminants but put them into record only if not Unchecked_Union; + pass flag to components_to_record showing Unchecked_Union. + (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no + components before variants; don't set TYPE_UNCHECKED_UNION_P. + (components_to_record): New argument UNCHECKED_UNION. + Remove special case code for Unchecked_Union and instead use main code + with small changes. + + PR ada/26096 + (gnat_to_gnu_entity) : Do not initialize the + aligning variable with the expression being built, only its inner + field. + + * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to + emit_sequence_entry_statements. + (emit_sequence_entry_statements, body_with_handlers_p): Delete. + (establish_gnat_vms_condition_handler): Move before + Subprogram_Body_to_gnu. + (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler + for a subprogram if it has a foreign convention or is exported. + (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is + substituted for a CONST_DECL. + (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass + Etype to assoc_to_constructor. + (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore + discriminants of Unchecked_Union. + (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses + don't need cluttering preprocessor directives. + (establish_gnat_vms_condition_handler): New function. Establish the GNAT + condition handler as current in the compiled function. + (body_with_handlers_p): New function. Tell whether a given sequence of + statements node is attached to a package or subprogram body and involves + exception handlers possibly nested within inner block statements. + (emit_sequence_entry_statements): New function, to emit special + statements on entry of sequences when necessary. Establish GNAT + condition handler in the proper cases for VMS. + (Handled_Sequence_Of_Statements_to_gnu): Start block code with + emit_sequence_entry_statements. + + * utils2.c (find_common_type): If both input types are BLKmode and + have a constant size, use the smaller one. + (build_simple_component_ref): Also match if FIELD and NEW_FIELD are + the same. + + * utils.c (value_factor_p): Make public, to allow uses from other gigi + units. + (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types. + (convert, case UNION_TYPE): Remove special treatment for unchecked + unions. + + PR ada/18659 + (update_pointer_to): Update variants of pointer types to + unconstrained arrays by attaching the list of fields of the main + variant. + +2006-02-13 Arnaud Charlet + Robert Dewar + + * a-exexpr.adb, a-exexpr-gcc.adb + (Process_Raise_Exception): Removed, merged with Propagate_Exception. + (Propagate_Exception): Now take extra From_Signal_Handler parameter. + Remove code unused for exception propagation for the compiler itself + from a-except.adb and update to still share separate packages. + + * a-except.ads, a-except.adb: Ditto. + Add comments that this version is now used only by the compiler and + other basic tools. The full version that includes the Ada 2005 stuff + is in separate files a-except-2005.ads/adb. The reason is that we do + not want to cause bootstrap problems with compilers not recognizing + Wide_Wide_String. + Add exception reason code PE_Implicit_Return + Add new exception reason code (Null Exception_Id) + + * a-except-2005.adb, a-except-2005.ads: New files. + + * s-wchcon.ads: (Get_WC_Encoding_Method): New function. + + * s-wchcon.adb: New file. + + * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c. + (traceback.o deps): Likewise. + (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris. + Activate build of GMEM instrumentation library on VMS targets. + (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib. + Use a-except-2005.ads/adb for all run-time library builds unless + specified otherwise. + [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to + s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads. + Use s-parame.adb on all native platforms. + Use s-parame-vxworks.adb on all vxworks platforms. + Add env.c env.h in LIBGNAT_SRCS + Add env.o in LIBGNAT_OBJS + (GNATMAKE_OBJS): Remove ctrl_c.o object. + (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of + s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that + supports VxWorks 6 RTPs. + (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of + i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs. + + * types.h, types.ads (Terminate_Program): New exception + Add comment on modifying multiple versions of a-except.adb when the + table of exception reasons is modified. + Add exception reason code PE_Implicit_Return + Add new exception reason code (Null Exception_Id) + + * clean.adb (Initialize): Get the target parameters before checking + if target is OpenVMS. Move the OpenVMS specific code here from package + body elaboration code. + +2006-02-13 Thomas Quinot + Vincent Celier + Robert Dewar + + * ali-util.adb (Get_File_Checksum): Update to account for change in + profile of Initialize_Scanner. + + * gprep.adb (Gnatprep): Update to account for change in profile of + Initialize_Scanner. + (Process_One_File): Same. + + * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the + common code between Get_Code_Unit and Get_Source_Unit. Reimplement + that behaviour using the new Unit information recorded in the source + files table, rather than going through all units every time. + (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit. + (Get_Source_Unit): Same. + + * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for + change in profile of Initialize_Scanner. + (Prepare_To_Preprocess): Same. + + * lib.ads: Fix typo in comment (templace -> template). + + * prj-part.adb (Parse_Single_Project): Update to account for change in + profile of Initialize_Scanner. + + * scn.adb (Initialize_Scanner): Account for change in profile of + Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng. + Also record the association of the given Source_File_Index to the + corresponding Unit_Number_Type. + + * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove + procedure. + (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords. + Remove Unit formal for generic scanner: this formal + is only relevant to Scn (the scanner instance used to parse Ada source + files), not to other instances. Update comment accordingly. + (Scan): Use new function Snames.Is_Keyword_Name. + + * sinfo-cn.adb: Fix typo in comment. + + * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute + Unit. + + * sinput.ads (Source_File_Record): New component Unit, used to capture + the unit identifier (if any) associated to a source file. + + * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component + Unit in Source_File_Record. + + * sinput-p.adb (Source_File_Is_Subunit): Update to account for change + in profile of Initialize_Scanner. + + * scans.adb (Initialize_Ada_Keywords): New procedure + + * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the + Ada keywords in the Namet table, without the need to call + Initialize_Scanner. + + * snames.adb: Add pragma Ada_2005 (synonym for Ada_05) + (Is_Keyword_Name): New function + + * snames.ads: Add subtype Configuration_Pragma_Names + Add pragma Ada_2005 (synonym for Ada_05) + (Is_Keyword_Name): New function + + * snames.h: Add pragma Ada_2005 (synonym for Ada_05) + +2006-02-13 Arnaud Charlet + + * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice + index. + + * a-stwima.adb (To_Set): Add extra check when N = 0. + + * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow. + +2006-02-13 Arnaud Charlet + + * s-parame-mingw.adb, s-parame-linux.adb, + s-parame-solaris.adb: Removed, replaced by s-parame.adb + + * s-parame-vxworks.ads: Fix typo. + + * s-parame-vxworks.adb: New file. + + * s-parame.adb: Version now used by all native platforms. + (Default_Stack_Size): Use 2 megs for default stack size and use + __gl_default_stack_size when available. + (Minimum_Stack_Size): Use 12K. + + * s-taprop-mingw.adb: Set default stack size linker switch to 2megs. + (Create_Task): Refine implementation taking advantage of the XP stack + size support. On XP, we now create the thread using the flag + STACK_SIZE_PARAM_IS_A_RESERVATION. + + * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant. + + * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows + XP and 0 on older Windows versions. + + * interfac-vms.ads: Removed, no longer used. + +2006-02-13 Matthew Heaney + + * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, + a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, + a-cohase.adb: All explicit raise statements now include an exception + message. + + * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb + (Update_Element_Preserving_Key): renamed op to just Update_Element. + Explicit raise statements now include an exception message + + * a-cihase.ads, a-cohase.ads: Removed comment. + + * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb, + a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads, + a-szbzha.adb, a-szfzha.ads: New files. + +2006-02-13 Matthew Heaney + + * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of + quicksort. + +2006-02-13 Eric Botcazou + + * lang.opt: Wvariadic-macros: New option. + Wold-style-definition: Likewise. + Wmissing-format-attribute: Likewise. + + * misc.c (gnat_handle_option): New cases for -Wvariadic-macros, + -Wold-style-definition and -Wmissing-format-attribute. + +2006-02-13 Robert Dewar + + * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec) + + * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files. + +2006-02-13 Nicolas Roche + + * a-envvar.adb, a-envvar.ads: New files. + +2006-02-13 Douglas Rupp + + * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads + + * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files. + +2006-02-13 Pat Rogers + + * a-rttiev.adb, a-rttiev.ads: New files. + +2006-02-13 Hristian Kirtchev + + * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb, + a-wwboio.ads, a-zzboio.adb, a-zzboio.ads: New files. + + * impunit.adb, Makefile.rtl: Added new Ada 2005 units. + +2006-02-13 Robert Dewar + + * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, + sem_case.adb: Minor code reorganization (not Present should be No) + +2006-02-13 Geert Bosch + Gary Dismukes + + * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of + 0, since the lower bound of the actual string may be greater than one. + + PR ada/20753 + + (Put): Fix condition to raise Layout_Error when invalid + layout is requested. + +2006-02-13 Vincent Celier + + * back_end.adb (Scan_Compiler_Arguments): Check if + Search_Directory_Present is True and, if it is, add the argument in + the source search directory path. + + * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set + Search_Directory_Present to True. + +2006-02-13 Joel Brobecker + + * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as + volatile, to tell the compiler to preserve this variable at any level + of optimization. + (Gen_Versions_Ada): Temporarily work around codegen bug. + +2006-02-13 Vincent Celier + + * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke + gcc to link with option -shared-libgcc. + (Gnatlink): Remove duplicate switches -shared-libgcc + +2006-02-13 Robert Dewar + + * gnatvsn.ads (Current_Year): New constant, used to easily update + copyright on all GNAT tools. + + * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed + copyright notice. + +2006-02-13 Robert Dewar + + * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space + after hyphen (small aesthetic change useful for a range of numbers + using ^-^. + Suppress range checks for a couple of assignments which otherwise + cause validity checks with validity checking turned on. + + * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size): + Improvement in error message for object. + (Rep_Item_Too_Late): Remove '!' in warning message. + +2006-02-13 Robert Dewar + Eric Botcazou + + * err_vars.ads: Suppress range checks for a couple of assignments + which otherwise cause validity checks with validity checking turned on. + Update comments. + + * errout.adb (Error_Msg_Internal): Do not suppress warning messages. + Make message unconditional if it is a warning. + (Error_Msg_NEL): Always output warning messages. + Suppress range checks for a couple of assignments which otherwise + cause validity checks with validity checking turned on. + + * errout.ads (Message Insertion Characters): Document that '!' is + implied by '?' in error messages. + + * gnat1drv.adb: (Bad_Body): Remove '!' in warning message. + (Gnat1drv): Use a goto to end of main subprogram instead of + Exit_Program (E_Success) so that finalization can occur normally. + +2006-02-13 Eric Botcazou + + * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has + wrapped around. + +2006-02-13 Vincent Celier + + * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New + Unchecked_Conversion functions. + (Modification_Time): Use direct conversion of OS_Time to Calendar time + when OpenVMS returns False. + + * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads, + a-dirval.adb (OpenVMS): New Boolean function + +2006-02-13 Ed Schonberg + Thomas Quinot + + * checks.adb (Build_Discriminant_Checks): If the expression being + checks is an aggregate retrieve the values of its discriminants to + generate the check, rather than creating a temporary and a reference + to it. + (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag + (Install_Null_Excluding_Check): Ditto + (Selected_Length_Checks): Build actual subtype for the original Ck_Node, + not for the renamed object, so that the actual itype is attached in the + proper context. + +2006-02-13 Robert Dewar + Vincent Celier + + * debug.adb: Eliminate numeric switches for binder/gnatmake + + * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug + switches for the compiler. + (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake + (Scan_Make_Switches): When failing with an illegal switch, output an + error message with the full switch. + Eliminate numeric switches for binder/gnatmake + + * switch.ads, switch.adb (Bad_Switch): New procedure + + * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches. + Remove 0-9 as debug flag character possibilities + -d is now controlling the primary stack size when its value is a + positive. Also add checks against invalid values, and support for kb, + mb. Ditto for -D switch. + +2006-02-13 Robert Dewar + Serguei Rybin + + * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with + save/restore routines. + Properly handle Ada_Version_Explicit and Ada_Version_Config, which + were not always properly handled previously. + Since we are changing the tree format anyway, also get rid of the + junk obsolete Immediate_Errors flag. + (Tree_Read): Change the way of reading Tree_Version_String - now we + read the version string from the tree even if its length is not the + same as the length of the version string computed from Gnatvsn. + (Search_Directory_Present): New Boolean flag for the compiler. + Define Tree_Version_String as a dynamic string. + (Default_Stack_Size): new variable, used to handle switch -d. + + * par-prag.adb: + For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit + only for main unit. + Add pragma Ada_2005 (synonym for Ada_05) + Properly handle Ada_Version_Explicit and Ada_Version_Config, which + were not always properly handled previously. + + * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change + explicit Ada_95 to Ada_2005. + +2006-02-13 Javier Miranda + Robert Dewar + Ed Schonberg + + * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend + against errors in the source program: a private types for which the + corresponding full type declaration is missing and pragma CPP_Virtual + is used. + (Is_Unchecked_Union): Check flag on Implementation_Base_Type. + (Is_Known_Null): New flag + (Has_Pragma_Pure): New flag + (No_Return): Present in all entities, set only for procedures + (Is_Limited_Type): A type whose ancestor is an interface is limited if + explicitly declared limited. + (DT_Offset_To_Top_Func): New attribute that is present in E_Component + entities. Only used for component marked Is_Tag. If present it stores + the Offset_To_Top function used to provide this value in tagged types + whose ancestor has discriminants. + + * exp_ch2.adb: Update status of new Is_Known_Null flag + + * sem_ch7.adb: Maintain status of new Is_Known_Null flag + + * sem_cat.adb (Get_Categorization): Don't treat function as Pure in + the categorization sense if Is_Pure was set by pragma Pure_Function. + +2006-02-13 Quentin Ochem + Olivier Hainque + + * bindusg.adb: Updated documentation for -d and -D switches. + + * raise.h (__gnat_set_globals): added new parameter for + Default_Stack_Size. + + * init.c (__gnat_adjust_context_for_raise) : Implement. + (__gnat_handle_vms_condition): Adjust context before raise. + (__gnat_install_handler): Restore the global vector setup for GCC + versions before 3.4, as the frame based circtuitry is not available + in this case. + (__gnat_set_globals): added a parameter default_stack_size + (__gl_default_stack_size): new variable. + +2006-02-13 Ed Schonberg + + * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable + "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept + does not exist in the Ada RM. + (Compatible_Int_Bounds): Determine whether two integer range bounds + are of equal length and have the same start and end values. + (Is_Int_Range_Bounds): Determine whether a node is an integer range. + (Build_Record_Aggr_Code): Perform proper sliding of a nested array + aggregate when it is part of an object declaration. + (Build_Record_Aggr_Code) If the aggregate ttype is a derived type that + constrains discriminants of its parent, add explicitly the discriminant + constraints of the ancestor by retrieving them from the + stored_constraint of the parent. + +2006-02-13 Robert Dewar + + * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If + attribute Mechanism_Code is applied to renamed subprogram, modify + prefix to point to base subprogram. + Max/Min attributes now violate Restriction No_Implicit_Conditionals + + * sinfo.ads: Document that Mechanism_Code cannot be applied to + renamed subprograms so that the front-end must replace the prefix + appropriately. + +2006-02-13 Javier Miranda + Gary Dismukes + + * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for + availability of RE_Interface_Tag. + (Build_Initialization_Call): Fix wrong access to the discriminant value. + (Freeze_Record_Type): Do not generate the tables associated with + timed and conditional dispatching calls through synchronized + interfaces if compiling under No_Dispatching_Calls restriction. + When compiling for Ada 2005, for a nonabstract + type with a null extension, call Make_Controlling_Function_Wrappers + and insert the wrapper function declarations and bodies (the latter + being appended as freeze actions). + (Predefined_Primitive_Bodies): Do not generate the bodies of the + predefined primitives associated with timed and conditional + dispatching calls through synchronized interfaces if we are + compiling under No_Dispatching_Calls. + (Build_Init_Procedure): Use RTE_Available to check if a run-time + service is available before generating a call. + (Make_Controlling_Function_Wrappers): New procedure. + (Expand_N_Full_Type_Declaration): Create a class-wide master for + access-to-limited-interfaces because they can be used to reference + tasks that implement such limited interface. + (Build_Offset_To_Top_Functions): Build the tree corresponding to the + procedure spec and body of the Offset_To_Top function that is generated + when the parent of a type with discriminants has secondary dispatch + tables. + (Init_Secondary_Tags): Handle the case in which the parent of the type + containing secondary dispatch tables has discriminants to generate the + correct arguments to call Set_Offset_To_Top. + (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions. + + * a-tags.ads, a-tags.adb: (Check_Index): Removed. + Add Wide_[Wide_]Expanded_Name. + (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly + the same functionality of Get_Prim_Op_Address but applied to predefined + primitive operations because the pointers to the predefined primitives + are now saved in a separate table. + (Parent_Size): Modified to get access to the separate table of primitive + operations or the parent type. + (Set_Predefined_Prim_Op_Address): New subprogram that provides the same + functionality of Set_Prim_Op_Address but applied to predefined primitive + operations. + (Set_Signature): New subprogram used to store the signature of a DT. + (Displace): If the Offset_To_Top value is not static then call the + function generated by the expander to get such value; otherwise use + the value stored in the table of interfaces. + (Offset_To_Top): The type of the actual has been changed to Address to + give the correct support to tagged types with discriminants. In this + case this value is stored just immediately after the tag field. + (Set_Offset_To_Top): Two new formals have been added to indicate if the + offset_to_top value is static and hence pass this value to the run-time + to store it in the table of interfaces, or else if this value is dynamic + and then pass to the run-time the address of a function that is + generated by the expander to provide this value for each object of the + type. + + * rtsfind.ads (Default_Prin_Op_Count): Removed. + (Default_Prim_Op_Count): New entity + (Get_Predefined_Prim_Op_Address): New entity + (Set_Predefined_Prim_Op_Address): New entity + (RE_Set_Signature): New entity + +2006-02-13 Thomas Quinot + Ed Schonberg + + * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to + Make_Adjust_Call done for a newly-allocated object. + + * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements + in a subprogram are wrapped in a cleanup block, indicate that the + subprogram contains an inner block with an exception handler. + (Make_Adjust_Call): New Boolean formal Allocator indicating whether the + Adjust call is for a newly-allocated object. In that case we must not + assume that the finalization list chain pointers are correct (since they + come from a bit-for-bit copy of the original object's pointers) so if + the attach level would otherwise be zero (no change), we set it to 4 + instead to cause the pointers to be reset to null. + + * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning + reset chain pointers to null. + +2006-02-13 Ed Schonberg + + * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a + string, and the context requires a loop for the assignment (e.g. + because the left-hand side is packed), generate a unique name for the + temporary that holds the string, to prevent spurious name clashes. + +2006-02-13 Ed Schonberg + Javier Miranda + Robert Dewar + Gary Dismukes + + * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that + return unconstrained arrays. + Update comments. + (Expand_Call): An indirect call through an access parameter of a + protected operation is not a protected call. + Add circuit to raise CE in Ada 2005 mode following call + to Raise_Exception. + (Register_DT_Entry): Do nothing if + the run-time does not give support to abstract interfaces. + (Freeze_Subprogram): In case of dispatching operations, do not generate + code to register the operation in the dispatch table if the source + is compiled with No_Dispatching_Calls. + (Register_Predefined_DT_Entry): Generate code that calls the new + run-time subprogram Set_Predefined_Prim_Op_Address instead of + Set_Prim_Op_Address. + + * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks + on array assignments if the right-hand side is a function call that has + been inlined. Check is performed on the assignment in the block. + (Process_Bounds): If bounds and range are overloaded, apply preference + rule for root operations to disambiguate, and diagnose true ambiguity. + (Analyze_Assignment): Propagate the tag for a class-wide assignment with + a tag-indeterminate right-hand side even when Expander_Active is True. + Needed to ensure that dispatching calls to T'Input are allowed and + get the tag of the target class-wide object. + + * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override + an inherited primitive operation that already overrides several + abstract interface primitives. For transitivity, the new entity must + also override all the abstract interface primitives covered by the + inherited overriden primitive. + Emit warning if new entity differs from homograph in same scope only in + that one has an access parameter and the other one has a parameter of + a general access type with the same designated type, at the same + position in the signature. + (Make_Inequality_Operator): Use source locations of parameters and + subtype marks from corresponding equality operator when creating the + tree structure for the implicit declaration of "/=". This does not + change anything in behaviour except that the decoration of the + components of the subtree created for "/=" allows ASIS to get the + string images of the corresponding identifiers. + (Analyze_Return_Statement): Remove '!' in warning message. + (Check_Statement_Sequence): Likewise. + (Analyze_Subprogram_Body): For an access parameter whose designated type + is an incomplete type imported through a limited_with clause, use the + type of the corresponding formal in the body. + (Check_Returns): Implicit return in No_Return procedure now raises + Program_Error with a compile time warning, instead of beging illegal. + (Has_Single_Return): Function returning unconstrained type cannot be + inlined if expression in unique return statement is not an identifier. + (Build_Body_To_Inline): It is possible to inline a function call that + returns an unconstrained type if all return statements in the function + return the same local variable. Subsidiary procedure Has_Single_Return + verifies that the body conforms to this restriction. + + * sem_res.adb (Resolve_Equality_Op): If the operands do not have the + same type, and one of them is of an anonymous access type, convert + the other operand to it, so that this is a valid binary operation for + gigi. + (Resolve_Type_Conversion): Handle subtypes of protected types and + task types when accessing to the corresponding record type. + (Resolve_Allocator): Add '\' in 2-line warning message. + Remove '!' in warning message. + (Resolve_Call): Add '\' in 2-line warning message. + (Valid_Conversion): Likewise. + (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the + resulting type may be an access type with an implicit dereference. + Obtain the proper component from the designated type. + (Make_Call_Into_Operator): Handle properly a call to predefined equality + given by an expanded name with prefix Standard, when the operands are + of an anonymous access type. + (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_ + Explicit_Dereference and Resolve_Selected_Component, to verify that the + prefix of the expression is not of an incomplete type. Allows full + diagnoses of all semantic errors. + (Resolve_Actuals): If the actual is an allocator whose directly + designated type is a class-wide interface we build an anonymous + access type to use it as the type of the allocator. Later, when + the subprogram call is expanded, if the interface has a secondary + dispatch table the expander will add a type conversion to force + the displacement of the pointer. + (Resolve_Call): If a function that returns an unconstrained type is + marked Inlined_Always and inlined, the call will be inlined and does + not require the creation of a transient scope. + (Check_Direct_Boolean_Op): Removed + (Resolve_Comparison_Op): Remove call to above + (Resolve_Equality_Op): Remove call to above + (Resolve_Logical_Op): Inline above, since this is only call. + (Valid_Conversion): Handle properly conversions between arrays of + convertible anonymous access types. + + PR ada/25885 + + (Set_Literal_String_Subtype): If the lower bound is not static, wrap + the literal in an unchecked conversion, because GCC 4.x needs a static + value for a string bound. + +2006-02-13 Ed Schonberg + Hristian Kirtchev + + * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the + components of the corresponding record, take into account component + definitions that are access definitions. + (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a + procedure is not considered a dispatching call and will be expanded + properly. + +2006-02-13 Javier Miranda + + * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the + controlling argument of the dispatching call is an abstract interface + class-wide type then we use it directly. + Check No_Dispatching_Calls restriction. + (Default_Prim_Op_Position): Remove the code that looks for the last + entity in the list of aliased subprograms. This code was wrong in + case of renamings. + (Fill_DT_Entry): Add assertion to avoid the use of this subprogram + when the source is compiled with the No_Dispatching_Calls restriction. + (Init_Predefined_Interface_Primitives): No need to inherit primitives + if we are compiling with restriction No_Dispatching_Calls. + (Make_Disp_XXX): Addition of assertion to avoid the use of all these + subprograms if we are compiling under No_Dispatching_Calls restriction. + (Make_DT): Generate a dispatch table with a single dummy entry if + we are compiling with the No_Dispatching_Calls restriction. In + addition, in this case we don't generate code that calls to the + following run-time subprograms: Set_Type_Kind, Inherit_DT. + (Make_Select_Specific_Data_Table): Add assertion to avoid the use + of this subprogram if compiling with the No_Dispatching_Calls + restriction. + (Expand_Type_Conversion): Instead of using the actual parameter, + the argument passed as parameter to the conversion function was + erroneously referenced by the expander. + (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address, + Set_Predefined_Primitive_Op_Address and Set_Signature. + (Expand_Dispatching_Call): Generate call to + Get_Predefined_Prim_Op_Address for predefined primitives. + (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for + predefined primitives. + (Make_DT, Make_Secondary_DT): If the tagged type has no user defined + primitives we reserve one dummy entry to ensure that the tag does not + point to some memory that is associated with some other object. In + addition, remove all the old code that generated the assignments + associated with the signature of the dispatch table and replace them + by a call to the new subprogram Set_Signature. + (Set_All_DT_Position): Change the algorithm because now we have a + separate dispatch table associated with predefined primitive operations. + (Expand_Interface_Conversion): In case of non-static offset_to_top + add explicit dereference to get access to the object after the call + to displace the pointer to the object. + (Expand_Interface_Thunk): Modify the generation of the actual used + in the calls to the run-time function Offset_To_Top to fulfil its + new interface. + (Make_DT): Add the new actuals required to call Set_Offset_To_Top. + +2006-02-13 Ed Schonberg + + * exp_dist.adb (Copy_Specification): For access parameters, copy + Null_Exclusion flag, which will have been set for stream subprograms + in Ada2005 mode. + +2006-02-13 Pascal Obry + + * expect.c (__gnat_expect_portable_execvp): New implementation. The + previous implementation was using the C runtime spawnve routine but + the corresponding wait was using directly the Win32 API. This was + causing some times a lock when waiting for an event using + WaitForSingleObject in __gnat_waitpid. This new implementation uses + the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32 + API fixes this problem. + +2006-02-13 Robert Dewar + + * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze + call. + +2006-02-13 Thomas Quinot + + * exp_pakd.ads: Fix typos in comments. + + * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed + array reference that is an explicit dereference, mark the converted + (packed) array reference as analyzed to prevent a forthcoming + reanalysis from resetting its type to the original (non-packed) array + type. + +2006-02-13 Ed Schonberg + Javier Miranda + Eric Botcazou + + * exp_util.ads, exp_util.adb (Find_Prim_Op, + Is_Predefined_Primitive_Operation): When + searching for the predefined equality operator, verify that operands + have the same type. + (Is_Predefined_Dispatching_Operation): Remove the code that looks + for the last entity in the list of aliased subprograms. This code + was wrong in case of renamings. + (Set_Renamed_Subprogram): New procedure + (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the + Exp_Type constant computed when entering this subprogram. + (Known_Null): New function + (OK_To_Do_Constant_Replacement): New function + (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag + (Side_Effect_Free): An attribute reference 'Input is not free of + side effect, unlike other attributes that are functions. (from code + reading). + (Remove_Side_Effects): Expressions that involve packed arrays or records + are copied at the point of reference, and therefore must be marked as + renamings of objects. + (Is_Predefined_Dispatching_Operation): Return false if the operation is + not a dispatching operation. + + PR ada/18819 + (Remove_Side_Effects): Lift enclosing type conversion nodes for + elementary types in all cases. + +2006-02-13 Javier Miranda + + * freeze.adb (Freeze_Entity): Handle subtypes of protected types and + task types when accessing to the corresponding record type. + Remove '!' in warning message. + +2006-02-13 Olivier Hainque + + * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment), + to avoid useless and space inefficient overalignments on targets where + Max_Alignment is larger than 16. + +2006-02-13 Pascal Obry + + * g-catiio.adb (Sec_Number): New type used to compute the number of + seconds since 1-1-1970. + (Image) [Natural]: The parameter was an Integer, as we can't deal with + negative numbers (years, months...) it is better to have a Natural here. + Code clean-up. + (Image) [Number]: Change parameter from Long_Integer to Number. + (Image): Use Number type to compute the seconds since 1-1-1970 to fix an + overflow for dates past year 2038. + +2006-02-13 Matthew Heaney + + * g-dyntab.adb (Index_Of): conversion from Natural can no longer raise + Constraint_Error. + +2006-02-13 Arnaud Charlet + + * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and + native platforms. + (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that + finalization can occur normally. + +2006-02-13 Vincent Celier + + * gnatcmd.adb (Rules_Switches): New table + (Add_To_Rules_Switches): New procedure + (GNATCmd): For command CHECK, put all options following "-rules" in the + Rules_Switches table. Append these -rules switches after the -cargs + switches. + +2006-02-13 Robert Dewar + + * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM): + These two cases were generating incorrect output, and if this unit + was built with checks on, generated a discriminant mismatch constraint + error. + +2006-02-13 Ed Schonberg + Robert Dewar + + * lib-xref.adb (Get_Type_Reference): For a private type whose full + view is an array type, indicate the component type as well, for + navigation purposes. + (Generate_Reference): Don't consider array ref on LHS to be a case + of violating pragma Unreferenced. + Do not give Ada 2005 warning except on real reference. + +2006-02-13 Vincent Celier + + * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the + main source, add switch -mdebug-main=_ada_ so that the executable can + be debugged by the standard VMS debugger. + (Gnatmake): Set No_Main_Subprogram to True when there is no main + subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly. + Exit the Multi_Main_Loop when Unique_Compile is True after compilation + of the last source, as the binding and linking phases are never + performed. + Set all executable obsolete when rebuilding a library. + + * makeutl.adb (Linker_Options_Switches): Do not process empty linker + options. + +2006-02-13 Javier Miranda + + PR ada/23973 + + * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the + code to improve the error message reported when the program has + declarations of abstract interface types and it is not compiled with + the -gnat05 switch. + (P_Access_Definition): Reorganize the code to improve the error + message reported when the new Ada 2005 syntax for anonymous + access types is used and the program is not compiled with the + -gnat05 switch. + +2006-02-13 Robert Dewar + + * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb, + stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch + (MODE_IN) + +2006-02-13 Javier Miranda + + * par-endh.adb (Explicit_Start_Label): Add code to protect the parser + against source containing syntax errors. + +2006-02-13 Vincent Celier + + * prj.adb (Reset): Initialize the first element of table Namings with + the standard naming data. + +2006-02-13 Vincent Celier + + * prj.ads (Error_Warning): New enumeration type + + * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is + unknown, use the location of the project to report the error. + (When_No_Sources): New global variable + (Report_No_Ada_Sources): New procedure + (Check): New parameter When_No_Sources. Set value of global variable + When_No_Sources, + (Find_Sources): Call Report_No_Ada_Sources when appropriate + (Get_Sources_From_File): Ditto + (Warn_If_Not_Sources): Better warning messages indicating the unit name + and the file name. + + * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources. + Call Prj.Proc.Process with parameter When_No_Sources. + + * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources. + Call Recursive_Check with parameter When_No_Sources. + (Recursive_Check): New parameter When_No_Sources. Call itself and + Prj.Nmsc.Check with parameter When_No_Sources. + (Process): New parameter When_No_Sources. Call Check with parameter + When_No_Sources. + (Copy_Package_Declarations): New procedure to copy renamed parameters + and setting the location of the declared attributes to the location + of the renamed package. + (Process_Declarative_Items): Call Copy_Package_Declarations for renamed + packages. + +2006-02-13 Vincent Celier + + * prj-makr.adb (Make): Preserve the comments from the original project + file. + When removing nodes (attributes Source_Dirs, Source_Files, + Source_List_File and package Naming), save the comments and attach the + saved comments to the newly created nodes. + Do not add a with clause for the naming package if one already exists. + +2006-02-13 Javier Miranda + Gary Dismukes + Robert Dewar + + * restrict.ads (No_Dispatching_Calls): New GNAT restriction. + + * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of + aliased entities to look for the overriden abstract interface + subprogram. + (Is_Interface_Subprogram): Complete documentation. + (Check_Dispatching_Operation): Do not generate code to register the + operation in the dispatch table if the source is compiled with + restriction No_Dispatching_Calls. + (Override_Dispatching_Operation): Check for illegal attempt to override + No_Return procedure with procedure that is not No_Return + (Check_Dispatching_Call): Suppress the check for an abstract operation + when the original node of an actual is a tag-indeterminate attribute + call, since the attribute, which must be 'Input, can never be abstract. + (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a + call to the Input attribute (even when rewritten). + (Propagate_Tag): Augment comment to indicate the possibility of a call + to an Input attribute. + + * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow + calling it from Exp_Ch3.Make_Controlling_Function_Wrappers. + + * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction. + No_Wide_Characters is no longer partition-wide + No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257) + rather than GNAT + +2006-02-13 Douglas Rupp + + * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type. + +2006-02-13 Javier Miranda + + * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that + handles default-initialized components to keep separate the management + of this feature but also avoid the unrequired resolution and + expansion of components that do not have partially initialized + values. + (Collect_Aggr_Bounds): Add '\' in 2-line warning message. + (Check_Bounds): Likewise. + (Check_Length): Likewise. + +2006-02-13 Javier Miranda + Ed Schonberg + + * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an + abstract interface type call analyze_and_resolve to expand the type + conversion into the corresponding displacement of the + reference to the base of the object. + (Eval_Attribute, case Width): For systems where IEEE extended precision + is supported, the maximum exponent occupies 4 decimal digits. + (Accessibility_Message): Add '\' in 2-line warning message. + (Resolve_Attribute): Likewise. + (case Attribute_Access): Significantly revise checks + for illegal access-to-subprogram Access attributes to properly enforce + the rules of 3.10.2(32/2). + Diagnose use of current instance with an illegal attribute. + + * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal + to a Node_Id. + (Enclosing_Generic_Unit): New function to return a node's innermost + enclosing generic declaration node. + (Compile_Time_Constraint_Error): Remove '!' in warning messages. + (Type_Access_Level): The accessibility level of anonymous acccess types + associated with discriminants is that of the current instance of the + type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)). + (Compile_Time_Constraint_Error): Handle case of conditional expression. + (Kill_Current_Values_For_Entity): New function + (Enter_Name): Change formal type to Entity_Id + +2006-02-13 Hristian Kirtchev + Ed Schonberg + Gary Dismukes + + * sem_ch10.adb (Check_Redundant_Withs): New procedure in + Analyze_Compilation_Unit. + Detect and warn on redundant with clauses detected in a package spec + and/or body when -gnatwr is used. + (Analyze_Context): Analyze config pragmas before other items + (Install_Context_Items): Don't analyze config pragmas here + (Install_Limited_Withed_Unit): Set limited entity of package in + with_clause so that cross-reference information or warning messages on + unused packages can be properly generated + (Is_Visible_Through_Renamings): Return false if the limited_with_clause + has Error_Posted set. Prevent infinite loops in illegal programs. + (Check_Private_Child_Unit): Move test for a nonprivate with clause down + to the point of the error test requiring the current unit to be private. + This ensures that private with clauses are not exempted from the basic + checking for being a descendant of the same library unit parent as a + withed private descendant unit. + (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to + handle private with clauses properly, as well as to account for cases + where the withed unit is a public descendant of a private ancestor + (in which case the current unit must be a descendant of the private + ancestor's parent). The spec comments were updated accordingly. Also, + the old error message in this subprogram was replaced with error + messages that mirror the errors tested and reported by + Check_Private_Child_Unit. + Parameter and variable names improved for readability. + (Install_Limited_Context_Clauses): Remove test for a withed unit being + private as the precondition for calling + Check_Private_Limited_Withed_Unit since that subprogram has been + revised to test public units as well as private units. + +2006-02-13 Thomas Quinot + Robert Dewar + Ed Schonberg + Javier Miranda + + * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption + that Scope_Stack.First = 1. + Properly handle Ada_Version_Explicit and Ada_Version_Config, which + were not always properly handled previously. + (Formal_Entity): Complete rewrite, to handle properly some complex case + with multiple levels of parametrization by formal packages. + (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator + to the corresponding derived type declaration for proper semantics. + + * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message. + (Check_Component): Enforce restriction on components of + unchecked_unions: a component in a variant cannot contain tasks or + controlled types. + (Unchecked_Union): Allow nested variants and multiple discriminants, to + conform to AI-216. + Add pragma Ada_2005 (synonym for Ada_05) + Properly handle Ada_Version_Explicit and Ada_Version_Config, which + were not always properly handled previously. + Document that pragma Propagate_Exceptions has no effect + (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure + (Set_Convention_From_Pragma): Check that if a convention is + specified for a dispatching operation, then it must be + consistent with the existing convention for the operation. + (CPP_Class): Because of the C++ ABI compatibility, the programmer is no + longer required to specify an vtable-ptr component in the record. For + compatibility reasons we leave the support for the previous definition. + (Analyze_Pragma, case No_Return): Allow multiple arguments + + * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a + non-overrideen inherited operation with a controlling result as + illegal only its implicit declaration comes from the derived type + declaration of its result's type. + (Check_Possible_Deferred_Completion): Relocate the object definition + node of the subtype indication of a deferred constant completion rather + than directly analyzing it. The analysis of the generated subtype will + correctly decorate the GNAT tree. + (Record_Type_Declaration): Check whether this is a declaration for a + limited derived record before analyzing components. + (Analyze_Component_Declaration): Diagnose record types not explicitly + declared limited when a component has a limited type. + (Build_Derived_Record_Type): Code reorganization to check if some of + the inherited subprograms of a tagged type cover interface primitives. + This check was missing in case of a full-type associated with a private + type declaration. + (Constant_Redeclaration): Check that the subtypes of the partial and the + full view of a constrained deferred constant statically match. + (Mentions_T): A reference to the current type in an anonymous access + component declaration must be an entity name. + (Make_Incomplete_Type_Declaration): If type is tagged, set type of + class_wide type to refer to full type, not to the incomplete one. + (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not + available. Required to give support to the certified run-time. + (Analyze_Component_Declaration): In case of anonymous access components + perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2). + (Process_Discriminants): For an access discriminant, use the + discriminant specification as the associated_node_for_itype, to + simplify accessibility checks. + +2006-02-13 Ed Schonberg + Javier Miranda + + * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no + abstract interpretations on an operator, remove interpretations that + yield Address or a type derived from it, if one of the operands is an + integer literal. + (Try_Object_Operation.Try_Primitive_Operation, + Try_Object_Operation.Try_Class_Wide_Operation): Set proper source + location when creating the new reference to a primitive or class-wide + operation as a part of rewriting a subprogram call. + (Try_Primitive_Operations): If context requires a function, collect all + interpretations after the first match, because there may be primitive + operations of the same type with the same profile and different return + types. From code reading. + (Try_Primitive_Operation): Use the node kind to choose the proper + operation when a function and a procedure have the same parameter + profile. + (Complete_Object_Operation): If formal is an access parameter and prefix + is an object, rewrite as an Access reference, to match signature of + primitive operation. + (Find_Equality_Type, Find_One_Interp): Handle properly equality given + by an expanded name with prefix Standard, when the operands are of an + anonymous access type. + (Remove_Abstract_Operations): If the operation is abstract because it is + inherited by a user-defined type derived from Address, remove it as + well from the set of candidate interpretations of an overloaded node. + (Analyze_Membership_Op): Membership test not applicable to cpp-class + types. + +2006-02-13 Bob Duff + + * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about + redundant use clauses. + In particular, if the scope of two use clauses overlaps, but one is not + entirely included in the other, we should not warn. This can happen + with nested packages. + (Analyze_Subprogram_Renaming): Protect the compiler against previously + reported errors. The bug was reported when the compiler was built + with assertions enabled. + (Find_Type): If the node is a 'Class reference and the prefix is a + synchronized type without a corresponding record, return the type + itself. + +2006-02-13 Javier Miranda + + * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that + if this is the full-declaration associated with a private declaration + that implement interfaces, then the private type declaration must be + limited. + (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object + as aliased. The use of the 'access attribute is not available for such + object (for this purpose the object should be explicitly marked as + aliased, but being an anonymous type this is not possible). + +2006-02-13 Ed Schonberg + Robert Dewar + + * sem_elab.adb (Same_Elaboration_Scope): A package that is a + compilation unit is an elaboration scope. + (Add_Task_Proc): Add '\' in 2-line warning message. + (Activate_All_Desirable): Deal with case of unit with'ed by parent + +2006-02-13 Ed Schonberg + Javier Miranda + + * sem_type.adb (Write_Overloads): Improve display of candidate + interpretations. + (Add_One_Interp): Do not add to the list of interpretations aliased + entities corresponding with an abstract interface type that is an + immediate ancestor of a tagged type; otherwise we have a dummy + conflict between this entity and the aliased entity. + (Disambiguate): The predefined equality on universal_access is not + usable if there is a user-defined equality with the proper signature, + declared in the same declarative part as the designated type. + (Find_Unique_Type): The universal_access equality operator defined under + AI-230 does not cover pool specific access types. + (Covers): If one of the types is a generic actual subtype, check whether + it matches the partial view of the other type. + +2006-02-13 Thomas Quinot + + * sinput-d.adb (Write_Line): Update the Source_Index_Table after each + line. This is necessary to allow In_Extended_Main_Unit to provide + correct results for itypes while writing out expanded source. + (Close_File): No need to update the source_index_table here since it's + now done for each line. + +2006-02-13 Ed Schonberg + Robert Dewar + + * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to + preserve the source unit where the itype is declared, and prevent a + backend abort. + (Note_Implicit_Run_Time_Call): New procedure + (Write_Itype): Handle missing cases (E_Class_Wide_Type and + E_Subprogram_Type) + + * sprint.ads: Document use of $ for implicit run time routine call + +2006-02-13 Quentin Ochem + + * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of + task name. + +2006-02-13 Bob Duff + + * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of + Scan_Unsigned, so we do not scan leading blanks and sign twice. + Integer'Value("- 5") and Integer'Value("-+5") now correctly + raise Constraint_Error. + + * s-vallli.adb (Scan_Long_Long_Integer): Call + Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we + do not scan leading blanks and sign twice. + Integer'Value("- 5") and Integer'Value("-+5") now correctly + raise Constraint_Error. + + * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned, + Scan_Long_Long_Unsigned): Split out most of the processing from + Scan_Long_Long_Unsigned out into + Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version. + This prevents scanning leading blanks and sign twice. + Also fixed a bug: Modular'Value("-0") should raise Constraint_Error + See RM-3.5(44). + + * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split + out most of the processing from Scan_Unsigned out into + Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version. + This prevents scanning leading blanks and sign twice. + + * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for + use with Modular'Value attribute. + (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value + attribute. + +2006-02-13 Robert Dewar + + * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value + +2006-02-13 Eric Botcazou + + * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1. + (PPC VxWorks): Likewise. + (Generic unwinder): Define FORCE_CALL to 0 if not already defined. + (forced_callee): Make non-inlinable and non-pure. + (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1. + +2006-02-13 Arnaud Charlet + Ben Brosgol + Robert Dewar + + * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64 + support. + Document that gnatbind -M option is for cross environments only. + Added description of using gnatmem to trace gnat rtl allocs and deallocs + Add note on use of $ to label implicit run time calls + Add documentation for -gnatyI (check mode IN) + Updated chapter on compatibility with HP Ada + VMS-oriented edits. + Ran spell and corrected errors + Add documentation for gnatbind -d and rework documentation of -D + at the same time. + Add subprogram/data elimination section. + Minor editing of annex A. + Add section for gnatcheck. + Add documentation for restriction No_Dispatching_Calls + Add documentation for pragma Ada_2005 + Remove mention of obsolete pragma Propagate_Exceptions + Document that pragma Unreferenced can appear after DO in ACCEPT + Clarify Pure_Function for library level units + Mention Max/Min in connection with No_Implicit_Conditionals + No_Wide_Characters restriction is no longer partition-wide + Add a nice example for Universal_Literal_String attribute + Document that pragma No_Return can take multiple arguments + + * ug_words: Added entry for gnatcheck + + * g-ctrl_c.ads (Install_Handler): Enhance comments + + * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination + + * g-trasym.ads: Add documentation on how to do off line symbolic + traceback computation. + + * s-fatgen.adb: Add comments for Unaligned_Valid + + * stand.ads: Fix typo in comment + +2006-02-09 Rainer Orth + + * Make-lang.in (check-gnat): Run run_acats with $(SHELL). + +2006-02-06 Roger Sayle + + * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE. + +2006-02-03 John David Anglin + + PR target/25926 + * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target + implementation that calls __main. + +2006-01-25 Peter O'Gorman + + PR bootstrap/25859 + * Makefile.in (GCC_LINK): Remove quotes. + (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)" + or $(GCC_LINK). + + (powerpc-darwin): Pass -shared-libgcc when building shared library. + +2006-01-20 John David Anglin + + PR ada/24533 + * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8. + +2005-12-28 John David Anglin + + * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t. + +2005-12-12 Arnaud Charlet + + * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer + needed. + +2005-12-12 Arnaud Charlet + + * Make-lang.in: Update dependencies + +2005-12-12 Arnaud Charlet + + * Make-lang.in: Add rule for ada/exp_sel.o + +2005-12-12 Arnaud Charlet + + * Makefile.in (mingw section): Remove EH_MECHANISM setting. + +2005-12-09 Arnaud Charlet + + * gnatvsn.ads (Library_Version): Bump to version 4.2 + (ASIS_Version_Number): Bumped. + +2005-12-09 Doug Rupp + + * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change + Ada bind file prefix on VMS from b$ to b__. + (Build_Dynamic_Library): Change Init file suffix on VMS from $init to + __init. + + * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to + Targparm.OpenVMS_On_Target. + (Object_Suffix): Initialize with target object suffix. + (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__. + + * butil.adb: Change some Hostparm.OpenVMS checks to + Targparm.OpenVMS_On_Target. + + * clean.adb: Change some Hostparm.OpenVMS checks to + Targparm.OpenVMS_On_Target. + (Object_Suffix): Initialize with call to Get_Target_Object_Suffix. + ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change + Ada bind file prefix on VMS from b$ to b__. + + * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in + --GCC so that Get_Target_Parameters can find system.ads. + (Gnatlink): Call Get_Target_Parameters in mainline. + Initialize standard packages for Targparm. + Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target. + (Process_Args): Also Check for object files with target object + extension. + (Make_Binder_File_Names): Create with target object extension. + (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$ + to b__. + + * mlib-prj.adb: Change some Hostparm.OpenVMS checks to + Targparm.OpenVMS_On_Target. + ({declaration},Build_Library,Check_Library): Change Ada bind file + prefix on VMS from b$ to b__. + + * osint-b.adb: Change some Hostparm.OpenVMS checks to + Targparm.OpenVMS_On_Target. + (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to + b__. + + * targext.c: New file. + + * Makefile.in: add support for vxworks653 builds + (../../vxaddr2line): gnatlink with targext.o. + (TOOLS_LIBS): Move targext.o to precede libgnat. + (init.o, initialize.o): Minor clean up in dependencies. + (GNATLINK_OBJS): Add targparm.o, snames.o + Add rules fo building targext.o and linking it explicitly with all + tools. + Also add targext.o to gnatlib. + + * Make-lang.in: Add rules for building targext.o and linking it in + with gnat1 and gnatbind. + Add entry for exp_sel.o. + + * osint.adb Change some Hostparm.OpenVMS checks to + Targparm.OpenVMS_On_Target. + (Object_File_Name): Use target object suffix. + + * osint.ads (Object_Suffix): Remove, no longer used. + (Target_Object_Suffix): Initialize with target object suffix. + + * rident.ads: Add special exception to license. + + * targparm.adb (Get_Target_Parameters): Set the value of + Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive + value. + (Get_Target_Parameters): Set OpenVMS_On_Target if openvms. + + * targparm.ads: Add special exception to license. + + * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New + function. + (Copy_File): Make sure from file is closed if error on to file + (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions. + + * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix. + (Executable_Suffix): Intialize with Get_Target_Executable_Suffix. + + * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with + target object suffix. + +2005-12-09 Jose Ruiz + Quentin Ochem + Florian Villoing + + * a-taster.ads, a-taster.adb: New files. + + * a-elchha.adb (Last_Chance_Handler): Change the task termination soft + link to the version that does nothing. This way the task termination + routine is not executed twice for the environment task when finishing + because of an unhandled exception. + + * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination + handler because of an unhandled exception. + + * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from + System.Tasking.Utilities instead of that in System.Tasking.Stages. + + * s-finimp.adb (initialization code): Modify the soft link for the + finalization of the global list instead of Adafinal. + + * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this + non-tasking version of the soft link for task termination. We do + nothing since if we are using the non-tasking version it + means that the task termination functionality is not used. + (Null_Finalize_Global_List): Add this null version for the procedure + in charge of finalizing the global list for controlled objects. + (Null_Adafinal): Remove this procedure. Adafinal_NT has been created + instead for handling run-time termination in a more flexible way. + (Adafinal_NT): This new procedure will take care of finalizing the + global list for controlled objects if needed, but no tasking + finalization. + + * s-tarest.adb (Task_Lock): Do not try to lock again the + Global_Task_Lock if we already own it. Otherwise, we get blocked in + some run-time operations. + (Task_Unlock): Do not try to actually unlock the Global_Task_Lock + until all nested locks have been released. + (Task_Wrapper): Call the fall-back task termination handler. It + applies to all tasks but the environment task. + (Finalize_Global_Tasks): Add the call for the task termination + procedure for the environment task. + (Task_Wrapper): suppress warnings around declaration of + Secondary_Stack_Address. + + * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been + moved to the Common_ATCB record. + (Task_Lock): Global_Task_Lock_Nesting has been moved to the + Common_ATCB record. + (Task_Unlock): Global_Task_Lock_Nesting has been moved to the + Common_ATCB record. + + * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting, + Fall_Back_Handler, and Specific_Handler. + + * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already + defined in Ada.Task_Termination, to avoid circular dependencies. + (Termination_Handler): Redefine this type here, alredy defined in + Ada.Task_Termination, for avoiding circular dependencies. + (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required + for storing task termination handlers. In addition, + Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to + Common_ATCB because it is used by both the regular and the restricted + run times. + (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to + Common_ATCB because it is used by both the regular and the restricted + run times. + (Common_ATCB): Added a dynamic task analyzer field. + + * s-tassta.adb (Abort_Tasks): Move the code in charge of checking + potentially blocking operations to System.Tasking.Utilities.Abort_Tasks. + (Task_Wrapper): Call the task termination handler. It applies to all + tasks but the environment task. + (Finalize_Global_Tasks): Call the task termination procedure for the + environment task. The call to Finalize_Global_List is now performed + using the soft links mechanism. + (Task_Wrapper): added dynamic stack analysis. + + * s-tasuti.adb (Abort_Tasks): The code in charge of checking + potentially blocking operations has been moved from + System.Tasking.Stages.Abort_Tasks to this procedure. There can be + direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass + through System.Tasking.Stages.Abort_Tasks, and we do not want to miss + this run-time check. + + * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version + of task termination procedure. + (Init_Tasking_Soft_Links): Install the task-safe version of the soft + link for the task termination procedure. + + * bindusg.adb: (Bindusg): Added documentation for -u option. + + * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis. + (Get_Main_C): Add handling of dynamic stack analysis. + (Gen_Output_File_C): Add external functions for dynamic stack analysis. + + * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination). + (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis + (GNATRTL_NONTASKING_OBJS): Add AltiVec files. + + * opt.ads: Added flags used by dynamic stack measurement. + (Max_Line_Length): Remove (not used anymore) + + * s-io.ads, s-io.adb (Standard_Error): new subprogram + (Standart_Output): new subprogram + (Set_Output): new subprogram + (Put): now uses the value of Current_Out to know if the output has to be + send to stderr or stdout. + + * s-stausa.ads: Complete implementation. + + * switch-b.adb: Added handling of -u switch for dynamic stack analysis. + + * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the + list of Ada 05 files. + (GNAT Library Units): Add AltiVec files. + + * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb, + g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads + g-alvety.ads, g-alvevi.ads: New files providing altivec API. + +2005-12-09 Nicolas Setton + + * adaint.c (__gnat_locate_regular_file): Return immediately if + file_name is empty. + +2005-12-09 Javier Miranda + Hristian Kirtchev + + * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body + to the specification because the frontend generates code that uses this + subprogram. + (Set_Interface_Table): Add missing assertion. + Update documentation describing the run-time structure. + (Displace): New subprogram that displaces the pointer to the object + to reference one of its secondary dispatch tables. + (IW_Membership): Modified to use the new table of interfaces. + (Inherit_TSD): Modified to use the new table of interfaces. + (Register_Interface_Tag): Use the additional formal to fill the + contents of the new table of interfaces. + (Set_Interface_Table): New subprogram that stores in the TSD the + pointer to the table of interfaces. + (Set_Offset_To_Top): Use the additional formal to save copy of + the offset value in the table of interfaces. + Update structure of GNAT Primary and Secondary dispatch table diagram. + Add comment section on GNAT dispatch table prologue. + (Offset_To_Signature): Update the constant value of the Signature field. + (Dispatch_Table): Update comment on hidden fields in the prologue. + (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD, + Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change + the type of formal parameter T to Tag, introduce additional assertions. + (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type + conversion. + (Get_Tagged_Kind, Set_Tagged_Kind): New bodies. + + * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual + in all the calls to Expand_Interface_Thunk. Instead of referencing the + record component containing the tag of the secondary dispatch table we + have to use the Offset_To_Top run-time function to get this information; + otherwise if the pointer to the base of the object has been displace + we get a wrong value if we use the 'position attribute. + + * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in + all the calls to Expand_Interface_Thunk. + (Make_Secondary_DT): Secondary dispatch tables do not have a table of + interfaces; hence the call to Set_Interface_Table was clearly wrong. + (Collect_All_Interfaces): Modify the internal subprogram Collect to + ensure that the interfaces implemented by the ancestors are placed + at the header of the generated list. + (Expand_Interface_Conversion): Handle the case in which the displacement + associated with the interface conversion is not statically known. In + this case we generate a call to the new run-time subprogram Displace. + (Make_DT): Generate and fill the new table of interfaces. + (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for + Get_Tagged_Kind and Set_Tagged_Kind. + (Tagged_Kind): New function that determines the tagged kind of a type + with respect to limitedness and concurrency and returns a reference to + RE_Tagged_Kind. + (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body, + Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the + primary dispatch table for a type. + (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and + secondary dispatch table respectively of a tagged type. + + * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal. + (Expand_Interface_Conversion): New subprogram to indicate if the + displacement of the type conversion is statically known. + (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind. + + * rtsfind.ads (RE_Offset_To_Top): New entity + (RTU_Id): Add Ada_Task_Termination to the list so that it is made + accessible to users. + (Re_Displace): New entity + (RE_Interface_Data): New entity + (RE_Set_Interface_Data): New_Entity + (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind, + Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged, + RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected, + RE_TK_Tagged, RE_TK_Task. + + * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram + Init_Secondary_Tags_Internal to allow its use with interface types and + also to generate the code for the new additional actual required + by Set_Offset_To_Top. + (Build_Init_Statements): In case of components associated with abstract + interface types there is no need to generate a call to its IP. + (Freeze_Record_Type): Generate Select Specific Data tables only for + concurrent types. + (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate + the bodies and specifications of the predefined primitive operations + dealing with dispatching selects and abort, 'Callable, 'Terminated only + for concurrent types. + + * exp_sel.ads, exp_sel.adb: New files. + + * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body, + Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle + properly protected objects and attach handler in the case of the + restricted profile. + Move embeded package Select_Expansion_Utilities into a separate external + package. + (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select, + Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel. + (Build_K, Build_S_Assignment): New subprograms, part of the select + expansion utilities. + (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call, + Expand_N_Timed_Entry_Call): Optimize expansion of select statements + where the trigger is a dispatching procedure of a limited tagged type. + +2005-12-09 Olivier Hainque + + * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand + pointer initialization values. Make a SAVE_EXPR instead. Add comments + about the use and expansion of SAVE_EXPRs in the various possible + renaming handling cases. + (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by + abusing DECL_FCONTEXT. + +2005-12-09 Matthew Heaney + + * a-convec.adb (Merge): Added assertions to check whether vector params + are sorted. + + * a-coinve.adb (Merge): Added assertions to check whether vector params + are sorted. + + * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302 + draft. + (Cursor'Read): raises PE + + * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem + to its default value. + + * a-cihama.adb: Manually check whether cursor's key and elem are + non-null + + * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode + (Merge): Assert that target and source lists are in order + (Swap): Declare non-const temporaries, to pass to Splice + + * a-cdlili.ads: (Splice): Changed param name and param mode + + * a-cdlili.adb: (Splice): Changed param name and param mode + (Merge): Assert that target and source lists are in order + (Swap): Declare non-const temporaries, to pass to Splice + + * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null + (Write): declare Stream param as not null + + * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include + an exception message. + +2005-12-09 Thomas Quinot + Robert Dewar + + * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1, + which is the absolute maximum length we can support. + + * frontend.adb: For the processing of configuration pragma files, + remove references to Opt.Max_Line_Length, which is not checked anymore. + + * namet.ads (Name_Buffer): Adjust size to reflect increase on max line + length. + + * scn.adb, scng.adb: + Always check line length against the absolute supported maximum, + Hostparm.Max_Line_Length. + + * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported + value for the maximum line length is Max_Line_Length (not + Column_Number'Last). + Minor error msg update + (Set_Style_Check_Options): New interface returning error msg + Minor code reorganization (processing for 'M' was out of alpha order) + + * switch-c.adb: New interface for Set_Style_Check_Options + + * stylesw.ads (Set_Style_Check_Options): New interface returning error + msg. + +2005-12-09 Javier Miranda + + * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records + with IP subprogram were only supported if there were limited types. + + * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized + records with IP subprogram were only supported if there were limited + types. + +2005-12-09 Olivier Hainque + Eric Botcazou + + * trans.c (tree_transform, emit_check): Adjust calls to + build_call_raise, passing the now expected GNAT_NODE argument. + + * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better + source line information than what the current global locus indicates + when appropriate. + + * utils2.c (build_simple_component_ref): Return 0 if the offset of the + field has overflowed. + (build_call_raise): Add a GNAT_NODE argument to convey better source + line information than what the current global locus indicates when + appropriate. + (build_component_ref): Adjust call to build_call_raise. + +2005-12-09 Pascal Obry + + * g-diopit.adb (Find): Fix test to exit the iterator and make sure that + the iterator is quitting iteration on parent directory. + +2005-12-09 Javier Miranda + + * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types + and the assignment to a class-wide object, before the assignment we + generate a run-time check to ensure that the tag of the Target is + covered by the tag of the source. + +2005-12-09 Robert Dewar + + * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean + parameter in call to Image_Wide_Character. + + * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean + parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency. + (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with + annoying FFFE/FFFF inconsistency. + +2005-12-09 Robert Dewar + Javier Miranda + Ed Schonberg + + * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case + of type conversion. + (Find_Interface): New subprogram that given a tagged type and one of its + component associated with the secondary table of an abstract interface + type, return the entity associated with such abstract interface type. + (Make_Subtype_From_Expr): If type has unknown discriminants, always use + base type to create anonymous subtype, because entity may be a locally + declared subtype or generic actual. + (Find_Interface): New subprogram that given a tagged type and one of its + component associated with the secondary table of an abstract interface + type, return the entity associated with such abstract interface type. + + * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the + conversion cannot be handled at compile time. In this case we pass this + information to the expander to generate the appropriate code. + +2005-12-09 Robert Dewar + Ed Schonberg + Gary Dismukes + Javier Miranda + Hristian Kirtchev + + * einfo.adb (Itype_Printed): New flag + (Is_Limited_Type): Derived types do not inherit limitedness from + interface progenitors. + (Is_Return_By_Reference_Type): Predicate does not apply to limited + interfaces. + + * einfo.ads (Itype_Printed): New flag + Move Is_Wrapper_Package to proper section + Add missing Inline for Is_Volatile + + * output.ads, output.adb (Write_Erase_Char): New procedure + (Save/Restore_Output_Buffer): New procedures + (Save/Restore_Output_Buffer): New procedures + + * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes + Add missing support for anonymous access type + (Write_Id): Insert calls to Write_Itype + (Write_Itype): New procedure to output itypes + + * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle + use of "limited" in declaration. + + * sinfo.ads, sinfo.adb: + Formal derived types can carry an explicit "limited" indication. + + * sem_ch3.adb: Add with and use of Targparm. + (Create_Component): If Frontend_Layout_On_Target is True and the + copied component does not have a known static Esize, then reset + the size and positional fields of the new component. + (Analyze_Component_Declaration): A limited component is + legal within a protected type that implements an interface. + (Collect_Interfaces): Do not add to the list the interfaces that + are implemented by the ancestors. + (Derived_Type_Declaration): If the parent of the full-view is an + interface perform a transformation of the tree to ensure that it has + the same parent than the partial-view. This simplifies the job of the + expander in order to generate the correct object layout, and it is + needed because the list of interfaces of the full-view can be given in + any order. + (Process_Full_View): The parent of the full-view does not need to be + a descendant of the parent of the partial view if both parents are + interfaces. + (Analyze_Private_Extension_Declaration): If declaration has an explicit + "limited" the parent must be a limited type. + (Build_Derived_Record_Type): A derived type that is explicitly limited + must have limited ancestor and progenitors. + (Build_Derived_Type): Ditto. + (Process_Full_View): Verify that explicit uses of "limited" in partial + and full declarations are consistent. + (Find_Ancestor_Interface): Remove function. + (Collect_Implemented_Interfaces): New procedure used to gather all + implemented interfaces by a type. + (Contain_Interface): New function used to check whether an interface is + present in a list. + (Find_Hidden_Interface): New function used to determine whether two + lists of interfaces constitute a set equality. If not, the first + differing interface is returned. + (Process_Full_View): Improve the check for the "no hidden interface" + rule as defined by AI-396. + +2005-12-09 Robert Dewar + + * freeze.adb (Freeze_Record_Type): Only test for useless pack on record + types, not on record subtypes. + (Freeze_Entity): Code cleanup. Add barrier to the loop + that generates the references for primitive operations. This allows to + remove an unnecessary exception handler. + Code reformatting and comment clean ups. + +2005-12-09 Vincent Celier + + * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U + If GNAT CHECK is called with a project file, but with no + source on the command line, call gnatcheck with all the compilable + sources of the project. + Take into account the new command Check, for gnatcheck. Treat as for + other ASIS tools: take into account project, specific package Check and + Compiler switches. + For ASIS tools, add the switches in package Compiler for + the invocation of the compiler. + + * prj-attr.adb: Add package Check and its attributes + + * vms_conv.ads (Command_Type): New command Check, for gnatcheck + + * vms_conv.adb (Initialize): Change Params of command Check to + unlimited files. + Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target. + Add data for new command Check + + * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT + ELIM. + Add qualifiers for Check command options + (Command_Type): New command Check + +2005-12-09 Thomas Quinot + + * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a + command line switch overruns the output buffer. + +2005-12-09 Robert Dewar + + * sem_prag.adb: Processing for new pragma Complete_Representation + (Analyze_Pragma, case Debug): Implement two argument form. + + * par-prag.adb: Entry for new pragma Complete_Representation + (Prag, case Debug): Recognize two argument form of pragma Debug + New interface for Set_Style_Check_Options. + + * sem_ch13.adb: Implement new pragma Complete_Representation. + + * snames.adb, snames.ads, snames.h: Entry for new pragma + Complete_Representation. + +2005-12-09 Gary Dismukes + + * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for + available user-specified stream attributes on limited parameters to + also test the type directly rather than only its underlying type (for + Ada 95) and, in the case of Ada 2005, to check that the user-specified + attributes are visible at the point of the subprogram declaration. + For Ada 2005, the error message is modified to indicate that the + type's stream attributes must be visible (again, only for -gnat05). + +2005-12-09 Ed Schonberg + + * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of + anonymous access types. + + * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for + matching of anonymous access types and anonymous access to subprogram + types. 'R'M 4.9.1 (2/2). + +2005-12-09 Ed Schonberg + + * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference + rule prematurely when operands are universal, remaining ambiguities + will be removed during resolution. + Code cleanup. + + * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations + that are Ada 2005 functions. + (Has_Abstract_Interpretation): Subsidiary to + Remove_Conversions, to remove ambiguities caused by abstract operations + on numeric types when operands are universal. + +2005-12-09 Robert Dewar + + * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization + for case where spec is categorized. + +2005-12-09 Javier Miranda + + * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent + types use the corresponding record type. This was not needed before + the implementation of Ada 2005 synchronized types because + concurrent types were never tagged types in Ada 95. + +2005-12-09 Ed Schonberg + + * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the + first subtype of the type of the expression to verify that it is a + legal Time type. + +2005-12-09 Robert Dewar + + * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides + decoded names. + +2005-12-09 Quentin Ochem + Robert Dewar + Ed Falis + Florian Villoing + Thomas Quinot + Arnaud Charlet + + * gnat_ugn.texi: Created section "Stack Related Tools" + Moved "Stack Overflow Checking" subsection from "Switches for gcc" to + "Stack Related Tools" + Added subsection "Static Stack Usage Analysis" + Added subsection "Dynamic Stack Usage Analysis" + Include documentation of itypes in sprint listing (-gnatG) + Documented gnatbind -D switch (default sec stack size for fixed sec + stacks). + Added Interrupt_State and Persistent_BSS to list of configuration + pragmas. + Add missing doc for maximum value of nnn in -gnatyMnnn + + * gnat_rm.texi: Document the AltiVec binding. + Add documentation for pragma Complete_Representation + Shortened an overly long line (> 79 chars) + Clarify documentation of unchecked conversion in implementation + defined cases. + Document two argument form of pragma Debug + + * types.ads (Column_Number): Update documentation. + + * exp_ch7.ads (Make_Adjust_Call): Document the special processing for + library level Finalize_Storage_Only objects (these are not attached to + any finalization list). + + * system-mingw.ads: (Underlying_Priorities): Update comment. + +2005-12-09 Robert Dewar + + * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads, + i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads, + inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, + i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads, + krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb, + lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb, + interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads, + s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor + reformatting. + +2005-12-09 Robert Dewar + + * s-vaflop-vms-alpha.adb: (Ne_F): New function + (Ne_G): New function + + * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code + for tag assignment. + (Rewrite_Comparison): Handle case where operation is not a comparison + and ignore, and also handle type conversion case. + +2005-12-09 Thomas Quinot + + * exp_aggr.ads: Fix typo in comment. + ???-mark Convert_Aggr_In_Assignment as needing documentation. + +2005-12-09 Gary Dismukes + + * layout.adb: Replace various uses of byte by storage unit throughout. + (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a + static size, convert to storage units before returning, to conform to + spec. + +2005-12-09 Matthew Gingell + + * g-exctra.ads: Fix typo in comment. + +2005-12-09 Richard Kenner + + * utils.c: Minor reformatting. + +2005-12-09 Robert Dewar + + * g-soccon.ads: + Further comment fixes to make the status of the default file clear + + * s-bitops.adb: Clarify comment for Bits_Array + +2005-12-07 Rafael Ávila de Espíndola + + * Make-lang.in (ada.install-normal): Remove. + +2005-12-07 Rafael Ávila de Espíndola + + * Make-lang.in: Remove all dependencies on s-gtype. + +2005-12-05 Richard Guenther + + * utils.c (convert): Use fold_convert where appropriate. + +2005-12-05 Paolo Bonzini + + * Makefile.in (gnatlib): Fix regex, using \. instead of . when + a period is meant. + +2005-12-02 Richard Guenther + + * trans.c (gnat_gimplify_expr): Use buildN instead of build. + +2005-12-01 Roger Sayle + + * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST + nodes. + +2005-11-23 Laurent GUERBY + + * mlib-prj.adb (Build_Library): Initialize Delete. + +2005-11-21 Joel Sherrill + + * socket.c: Add extern int h_errno for rtems since networking header + files are not available at this point in a tool bootstrap. Newlib + only has basic C library header files. + +2005-11-19 Richard Guenther + Roger Sayle + + PR ada/23717 + * misc.c (internal_error_function): Don't use vsprintf to format + the error message text, instead use pp_format_text and the new + pretty printer APIs. This allows handling of %qs, %w, etc. + +2005-11-18 Laurent GUERBY + + PR ada/24857 + * Makefile.in: Use s-auxdec-empty for RTEMS. + +2005-11-17 Richard Kenner + + PR ada/22333 + * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make + a temporary if taking the address of something that is neither + reference, declaration, or constant, since the gimplifier + can't handle that case. + +2005-11-17 Laurent GUERBY + + PR ada/24857 + * s-auxdec-empty.ads, s-auxdec-empty.adb: New files. + +2005-11-16 Richard Guenther + + * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux. + +2005-11-16 Joel Sherrill + + PR ada/24855 + * raise-gcc.c: Add missing stdarg.h include. + +2005-11-16 Richard Guenther + + * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency. + (ada/misc.o): Likewise. + +2005-11-14 Thomas Quinot + + * g-soccon.ads: Minor reformatting. Update comments. + + * gsocket.h: Include in the VxWorks case, in order to + gain visibility on the declaration of struct timeval. + + * g-soccon-freebsd.ads, + g-soccon-darwin.ads, + g-soccon-tru64.ads, + g-soccon-aix.ads, + g-soccon-irix.ads, + g-soccon-hpux.ads, + g-soccon-solaris.ads, + g-soccon-vms.ads, + g-soccon-mingw.ads, + g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants. + + * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads, + g-soccon-solaris-64.ads, g-soccon-linux-64.ads, + g-soccon-linux-x86.ads: New files. + + * g-socthi-mingw.adb: + (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants + + * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads + (time_t, suseconds_t): New types constructed to match the tv_sec + and tv_usec fields of C struct timeval. + (Timeval): Construct structure in terms of the new types. + (Host_Errno): New function (imported from socket.c), returns last hosts + database error. + + * g-socthi-vxworks.adb: Add error handling circuitry. + + * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for + components of struct timeval. + (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry. + (Check_Selector): In error conditions, clear internal socket sets to + avoid a memory leak. + (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If, + Send_Timeout, Receive_Timeout. + + * g-socthi.ads (time_t, suseconds_t): New types constructed to match + the tv_sec and tv_usec fields of C struct timeval. + (Timeval): Construct structure in terms of the new types. + (Host_Errno): New function (imported from socket.c), returns last hosts + database error. + + * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the + hosts database last error code. + + * gen-soccon.c: Complete value expansion should not be performed on + TARGET, as it has the form of a math expression, and some components + may be platform-defined macros. + For VxWorks, generate the OK and ERROR values. + New constants giving the sizes of the components of C struct timeval. + +2005-11-14 Robert Dewar + Ed Schonberg + + PR ada/18434 + + * types.ads: Include All_Checks in Suppress_Array + + * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as + not(a=b), since we no longer do this rewriting, and hence it is not + needed. + (Elaboration_Checks_Suppressed): Add special casing to + deal with different cases of static and dynamic elaboration checks (all + checks does not count in the first case, but does in the second). + (Expr_Known_Valid): Do not assume that the result of any arbitrary + function call is valid, since this is not the case. + (Ensure_Valid): Do not apply validity check to a real literal + in a universal or fixed context + + * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for + elementary types using the operator in standard. It is cleaner not to + modify the programmers intent, especially in the case of floating-point. + (Rewrite_Comparison): Fix handling of /= (this was always wrong, but + it did not matter because we always rewrote a/=b to not(a=b). + (Expand_Allocator_Expression): For an allocator expression whose nominal + subtype is an unconstrained packed type, convert the expression to its + actual constrained subtype. + Implement warning for <= or >= where < or > not possible + Fix to Vax_Float tests (too early in many routines, causing premature + Vax_Float expansions. + + * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma + to be used with packages and generic packages as well as with + subprograms. + (Suppress): Set All_Checks, but not Elaboration_Check, for case + of pragma Suppress (All_Checks) + (Analyze_Pragma, case Warnings): Implement first argument allowed to be + a string literal for precise control over warnings. + Avoid raise of pragma in case of unrecognized pragma and just return + instead. + + * sem_prag.ads: Minor reformatting + + * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;" + with call to new procedure Bad_Switch. Call Scan_Pos with new parameter + Switch. Do not handle any exception. + Include -gnatwx as part of -gnatg (warn on redundant parens) + Allow optional = after -gnatm + (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no + longer sets Elaboration_Checks. + Code to set warning mode moved to Sem_Warn + so that it can be shared by pragma processing. + + * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if + statement. + + * s-taprop-solaris.adb: + Change some <= to =, to avoid new warning + + * a-exexda.adb, prj-proc.adb: + Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0) + Fix obvious typo (Total_Errors_Detected <= 0 should be = 0) + +2005-11-14 Robert Dewar + + * exp_vfpt.adb: Handle /= case + (Expand_Vax_Conversion): Properly recognize Conversion_OK flag + so that we do not get duplicate scaling for fixed point conversions. + + * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function + +2005-11-14 Matthew Gingell + + * system-lynxos-ppc.ads, system-lynxos-x86.ads: + Increase default priority on Lynx from 15 to 17, and meet the Ada + requirement that Default_Priority be ((Priority'First + + Priority'Last) / 2) by increasing the range of Interrupt_Priority. + +2005-11-14 Vincent Celier + + * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, + mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb, + mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, + mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, + mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads, + mlib-tgt-lynxos.adb (DLL_Prefix): New function + +2005-11-14 Doug Rupp + + * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in + private part. + +2005-11-14 Arnaud Charlet + + * s-traces-default.adb, s-trafor-default.ads, + s-tratas-default.adb: Fix compilation errors. + +2005-11-14 Jose Ruiz + + * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before + raising the exception so the memory used is freed. + +2005-11-14 Arnaud Charlet + + * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant. + (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used. + (convert_address): Update comments and list of platforms using this. + + * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed, + no longer used. + +2005-11-14 Pascal Obry + Vincent Celier + + * gnatdll.adb (Parse_Command_Line): Remove redundant use of + GNAT.Command_Line. + + * memroot.adb: Remove redundant with/use clause on + System.Storage_Elements. + +2005-11-14 Arnaud Charlet + + * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used. + (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp + related code to a-exexpr.adb + (Save_Occurrence_And_Private): Move GCC EH related code to + a-exexpr-gcc.adb + (Raise_Current_Excep): Add new variable Id with pragma + volatile, to ensure that the variable lives on stack. + + * a-exexpr-gcc.adb, raise-gcc.c: New file. + + * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code + from a-except.adb. + Move GCC EH related code to a-exexpr-gcc.adb + + * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and + 64-bit Solaris + Split the Linux version of g-soccon into separate variants for 32 and 64 + bit platforms. + (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET) + vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS). + install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use + of host variable $(RANLIB_FLAGS). + (alpha64-dec-*vms*): Fix translations for 64 bit compiler. + Code clean up: remove unused/obsolete targets. + (EH_MECHANISM): New variable introduced to differenciate between the + two EH mechanisms statically. + (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually. + (LIBGNAT_OBJS): Add raise-gcc.o + (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of + s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that + supports VxWorks 6 RTPs. + (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of + i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs. + + * raise.c: Move all GCC EH-related routines to raise-gcc.c + +2005-11-14 Jose Ruiz + + * s-tassta.adb (Create_Task): Move the code in charge of resetting the + deferral level, when abort is not allowed, to a later stage (the + Task_Wrapper). + (Task_Wrapper): If Abort is not allowed, reset the deferral level since + it will not get changed by the generated code. It was previously done + in Create_Task. + +2005-11-14 Thomas Quinot + Olivier Hainque + Eric Botcazou + + * decl.c: + Factor common code to build a storage type for an unconstrained object + from a fat or thin pointer type and a constrained object type. + (annotate_value): Handle BIT_AND_EXPR. + (annotate_rep): Don't restrict the back annotation of inherited + components to the type_annotate_only case. + (gnat_to_gnu_entity) : Do not invoke create_type_decl if + we are not defining the type. + : Likewise. + (gnat_to_gnu_entity) : Adjust comments and structure + to get advantage of the new maybe_stabilize_reference interface, to + ensure that what we reference is indeed stabilized instead of relying + on assumptions on what the stabilizer does. + (gnat_to_gnu_entity) : If the entity is an incomplete + type imported through a limited_with clause, use its non-limited view. + (Has_Stdcall_Convention): New macro, to centralize the Windows vs others + differentiation. + (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix + of #if sections + explicit comparisons of convention identifiers. + (gnat_to_gnu_entity) : Decrement force_global if necessary + before early-returning for certain types when code generation is + disabled. + (gnat_to_gnu_entity) : Adjust comment attached to the + nullification of gnu_expr we do for objects with address clause and + that we are not defining. + (elaborate_expression_1): Do not create constants when creating + variables needed by the debug info: the dwarf2 writer considers that + CONST_DECLs is used only to represent enumeration constants, and emits + nothing for them. + (gnat_to_gnu_entity) : When turning a non-definition of an + object with an address clause into an indirect reference, drop the + initializing expression. + Include "expr.h". + (STACK_CHECK_BUILTIN): Delete. + (STACK_CHECK_PROBE_INTERVAL): Likewise. + (STACK_CHECK_MAX_FRAME_SIZE): Likewise. + (STACK_CHECK_MAX_VAR_SIZE): Likewise. + (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree + corresponding to the renamed object as ignored for debugging purposes. + + * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size & + related): For a prefix that is a dereference of a fat or thin pointer, + if there is an actual subtype provided by the front-end, use that + subtype to build an actual type with bounds template. + (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype + is provided by the front-end, use that subtype to compute the size of + the deallocated object. + (gnat_to_gnu): When adding a statement into an elaboration procedure, + check for a potential violation of a No_Elaboration_Code restriction. + (maybe_stabilize_reference): New function, like gnat_stabilize_reference + with extra arguments to control whether to recurse through non-values + and to let the caller know if the stabilization has succeeded. + (gnat_stabilize_reference): Now a simple wrapper around + maybe_stabilize, for common uses without restriction on lvalues and + without need to check for the success indication. + (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to + pass false instead of 0 as the FORCE argument which is a bool. + (Identifier_to_gnu): Remove checks ensuring that an renamed object + attached to a renaming pointer has been properly stabilized, as no such + object is attached otherwise. + (call_to_gnu): Invoke create_var_decl to create the temporary when the + function uses the "target pointer" return mechanism. + Reinstate conversion of the actual to the type of the formal + parameter before any other specific treatment based on the passing + mechanism. This turns out to be necessary in order for PLACEHOLDER + substitution to work properly when the latter type is unconstrained. + + * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a + common pattern. + (maybe_stabilize_reference): New function, like gnat_stabilize_reference + with extra arguments to control whether to recurse through non-values + and to let the caller know if the stabilization has succeeded. + + * utils2.c (gnat_build_constructor): Only sort the fields for possible + static output of record constructor if all the components are constant. + (gnat_build_constructor): For a record type, sort the list of field + initializers in increasing bit position order. + Factor common code to build a storage type for an unconstrained object + from a fat or thin pointer type and a constrained object type. + (build_unary_op) : Always recurse down conversions between + types variants, and process special cases of VIEW_CONVERT expressions + as their NOP_EXPR counterpart to ensure we get to the + CORRESPONDING_VARs associated with CONST_DECls. + (build_binary_op) : Do not strip VIEW_CONVERT_EXPRs + on the right-hand side. + + * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring + a common pattern. + (convert) : Return the inner operand directly if we + are converting back to its original type. + (convert) : Fallthrough regular conversion code instead of + extracting the object if converting to a type variant. + (create_var_decl): When a variable has an initializer requiring code + generation and we are at the top level, check for a potential violation + of a No_Elaboration_Code restriction. + (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN + SIZE and SIZE_UNIT which we need for later back-annotations. + * utils.c: (convert) : Remove obsolete code. + : Do not lift the conversion if the target type + is an unchecked union. + (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions. + (convert) : When the types have the same + main variant, just replace the VIEW_CONVERT_EXPR. + : Revert 2005-03-02 change. + + * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR. + + * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions. + +2005-11-14 Matthew Heaney + + * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, + a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, + a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, + a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, + a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, + a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: + Compiles against the spec for ordered maps described in sections + A.18.6 of the most recent (August 2005) AI-302 draft. + +2005-11-14 Olivier Hainque + + * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations + to ensure bias adjustments take place when need be and to prevent + occurrences of intermediate overflows. + +2005-11-14 Matthew Gingell + Olivier Hainque + + * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on + ia64 HP-UX. + + * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven + tracebacks on ia64 HP-UX and provide explanatory comment. + Enable backtraces on ia64 GNU/Linux. + (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real + base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly. + +2005-11-14 Hristian Kirtchev + Javier Miranda + + * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads, + exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads, + exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads, + einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces. + + * a-tags.ads, a-tags.adb: Major rewrite and additions to implement + properly new Ada 2005 interfaces (AI-345) and add run-time checks (via + assertions). + + * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New + subprogram that generates the external name associated with a + secondary dispatch table. + (Get_Secondary_DT_External_Name): New subprogram that generates the + external name associated with a secondary dispatch table. + +2005-11-14 Emmanuel Briot + + * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity + line in the ALI file to include both an instantiation reference, and a + returned value. + +2005-11-14 Vincent Celier + + * clean.adb (Check_Project): Look for Ada code in extending project, + even if Ada is not specified as a language. + Use new function DLL_Prefix for DLL_Name + (Clean_Interface_Copy_Directory): New procedure + (Clean_Library_Directory): New procedure + (Clean_Directory): Remove procedure, no longer used + (Clean_Project): Do not delete any file in an externally built project + + * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object + directory of an extending project, even when there are no Ada source + present. + (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path + (Set_Ada_Paths.Add.Recursive_Add): Ditto + + * mlib-prj.adb (Check_Library): For all library projects, get the + library file timestamp. + (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir + (Build_Library): Use new function DLL_Prefix for the DLL_Name + (Clean): Remove procedure, no longer used + (Ultimate_Extension_Of): New function + (Build_Library): When cleaning the library directory, only remove an + existing library file and any ALI file of a source of the project. + When cleaning the interface copy directory, remove any source that + could be a source of the project. + + * prj.ads, prj.adb (Project_Empty): Add values of new components + Library_TS and All_Imported_Projects. + (Project_Empty): Add values for new components of Project_Data: + Library_ALI_Dir and Display_Library_ALI_Dir + + * prj-attr.adb: New project level attribute name Library_ALI_Dir + + * prj-nmsc.adb (Check_Library_Attributes): Take into account new + attribute Library_ALI_Dir. + (Check_Library_Attributes): The library directory cannot be the same as + any source directory of the project tree. + (Check_Stand_Alone_Library): The interface copy directory cannot be + the same as any source directory of the project tree. + + * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete + all temporary files. + +2005-11-14 Robert Dewar + Ed Schonberg + + * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package + (Check_Elab_Call): A call within a protected body is never an + elaboration call, and does not require checking. + (Same_Elaboration_Scope): Take into account protected types for both + entities. + (Activate_Elaborate_All_Desirable): New procedure + + * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate + desirable + + * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable + (Elab_Error_Msg): Use -da to include internal unit links, not -de. + + * lib-writ.ads, lib-writ.adb: + Implement new AD/ED for Elaborate_All/Elaborate desirable + Use new Elaborate_All_Desirable flag in N_With_Clause node + + * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for + N_Free_Statement nodes. + Define new class N_Subprogram_Instantiation + Add Elaborate_Desirable flag to N_With_Clause node + Add N_Delay_Statement (covering two kinds of delay) + + * debug.adb: Introduce d.f flag for compiler + Add -da switch for binder + +2005-11-14 Ed Schonberg + Cyrille Comar + + * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity + for task component, in the case of a limited aggregate. The enclosed + object declaration will create it earlier. Otherwise, in the case of a + nested aggregate, the object may appear in the wrong scope. + (Convert_Aggr_In_Object_Decl): Create a transient scope when needed. + (Gen_Assign): If the component being assigned is an array type and the + expression is itself an aggregate, wrap the assignment in a block to + force finalization actions on the temporary created for each row of the + enclosing object. + (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl + structures are initialized after all discriminants are set so that + they can be accessed even when their offset is dynamic. + +2005-11-14 Robert Dewar + Hristian Kirtchev + + * sem_attr.adb: Implement Machine_Rounding attribute + (Analyze_Access_Attribute): The access attribute may appear within an + aggregate that has been expanded into a loop. + (Check_Task_Prefix): Add semantic check for attribute 'Callable and + 'Terminated whenever the prefix is of a task interface class-wide type. + (Analyze_Attribute): Add semantic check for attribute 'Identity whenever + the prefix is of a task interface class-wide type. + + * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant + to avoid warnings. + + * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function + Remove pragma Inline for [Unaligned_]Valid. + Add comments that Valid routines do not work for Vax_Float + + * exp_attr.adb: Implement Machine_Rounding attribute + + * snames.h: Add entry for Machine_Rounding attribute + +2005-11-14 Javier Miranda + Robert Dewar + Hristian Kirtchev + + * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size + and related): For a prefix that is an explicit dereference of an + access to unconstrained packed array type, annotate the dereference + with an actual subtype so GIGI can make a correct size computation. + (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and + 'Unrestricted_Access, if the designated type is an interface we + add a type conversion to force the displacement of the pointer + to the secondary dispatch table. + Use Universal_Real instead of Long_Long_Float when we need a high + precision float type for the generated code (prevents gratuitous + Vax_Float stuff when pragma Float_Representation (Vax_Float) used) + (Expand_N_Attribute_Reference): Add support for attribute 'Callable and + 'Terminated for task interface class-wide objects. Generate a call to + the predefined dispatching routine used to retrieve the _task_id from + a task corresponding record. + (Expand_Fpt_Attribute): Major change to properly handle Vax_Float + + * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package + (Check_Dispatching_Operation): Protect the frontend againts + previously detected errors. + + * Makefile.rtl: Add new instantiations of system.fat_gen + + * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: + Change name of instantiated package for better consistency + with newly added system.fat_gen instantiations. + + * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads, + s-fvagfl.ads: New files. + +2005-11-14 Cyrille Comar + Thomas Quinot + + * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an + assignment of a value of a tagged type that has been rewritten to a + block statement, it is known by construction that no checks are + necessary for the statements within the block: analyze it with checks + suppressed. + (Expand_N_If_Statement): When killing a dead then-branch in an + if-statement that has elsif_parts, recompute the Current_Value node + for any entity whose value is known from the condition of the first + elsif_part. + (Expand_N_Return_Statement): When returning a mutable record, convert + the return value into its actual subtype in order to help the backend + to return the actual size instead of the maximum. This is another + aftermath of not returning mutable records on the sec-stack anymore. + + * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to + handling of error msg for suspicious reverse range iteration. + (Check_Possible_Current_Value_Condition): Move declaration from body to + spec, to allow this subprogram to be called from exp_ch5. + +2005-11-14 Thomas Quinot + + * exp_dist.adb (Append_Array_Traversal): Modify constrained case to + generate a set of nested array aggregates instead of a single flat + aggregate for multi-dimensional arrays. + +2005-11-14 Pascal Obry + + * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned + by spawnve is a process handle, no need to convert. Add a parameter + close to control wether the process handle must be closed. + (__gnat_waitpid): Fix implementation, the pid returned by spawnve is + a process handle, not need to convert. + (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec. + + * g-expect.adb: (Kill): Document the new close parameter. + (Close): Do not release the process handle in the kill there as + waitpid() is using it. + (Send_Signal): Release the process handle. + +2005-11-14 Robert Dewar + + * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we + need a high precision float type for the generated code (prevents + gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float) + used). + + * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we + need a high precision float type for the generated code (prevents + gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float) + used). + (Expand_Width_Attribute): In configurable run-time, the attribute is not + allowed on non-static enumeration subtypes. Force a load error to emit + the correct diagnostic. + +2005-11-14 Thomas Quinot + Robert Dewar + Ed Schonberg + + * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual + subtype to compute the size of the designated object at run-time, + create such a subtype and store it in the Actual_Designated_Subtype + attribute of the N_Free_Statement. + Generate itype for classwide designated object in both cases of + user-specified storage pool: specific and class-wide, not only in the + specific case. + Raise CE when trying to set a not null access type object to null. + (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with + an explicit loop, because freeze nodes make its position variable. + + * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not + null object. + +2005-11-14 Javier Miranda + + * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function, + Build_Stream_Procedure): Add the null-excluding attribute to the first + formal. + This has no semantic meaning under Ada95 mode but it is a + requirement under Ada05 mode. + + * par-ch3.adb (P_Access_Definition): Addition of warning message if + the null exclusion is used under Ada95 mode + (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95. + (P_Access_Definition): Remove assertion that forbids the use of + the null-exclusion feature in Ada95. + +2005-11-14 Robert Dewar + + * impunit.adb: Exclude container helper units not intended for use by + users. + +2005-11-14 Ed Schonberg + + * freeze.adb (Freeze_Entity): For an access formal that is an access + to subprogram, freeze the anonymous subprogram type at the same time, + to prevent later freezing in the wrong scope, such as the enclosing + subprogram body. + (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_ + subprogram whenever available. + +2005-11-14 Arnaud Charlet + + PR ada/23732 + * gnatvsn.ads (Library_Version): Bump to 4.1 + +2005-11-14 Robert Dewar + + * g-debpoo.adb (Set_Valid): Use Integer_Address instead of + Storage_Offset to avoid wrap around causing invalid results. + +2005-11-14 Pascal Obry + + * gnatbind.adb (Is_Cross_Compiler): New function returning True for + cross-compiler. + (Scan_Bind_Arg): Fail with an error message if -M option is used + on a native compiler. + +2005-11-14 Robert Dewar + Vincent Celier + + * gprep.adb: Implement -C switch to scan comments + + * scng.adb: Scan comment symbol separately if Replace_In_Comments set + + * scans.ads: Comment updates (including new use of Tok_Comment in + preprocessing) + + * opt.ads: Add documentation for flags that are used by gprmake, + currently and in the next version of gprmake. + (Verbosity_Level): New variable + Add Replace_In_Comments switch + + * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm + and -vm. + Add /REPLACE_IN_COMMENTS for gnatprep -C switch + +2005-11-14 Arnaud Charlet + + * g-regpat.adb (Fail): raise Expression_Error including the diagnostic + message, friendlier. + +2005-11-14 Robert Dewar + + * g-spitbo.adb: (Hash): Rotate by 3 instead of 1 + +2005-11-14 Doug Rupp + + * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined. + +2005-11-14 Robert Dewar + + * interfac.ads: Change declarations of IEEE float types so that we no + longer need a separate version of this package for VMS. + +2005-11-14 Ed Schonberg + + * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the + internal entity created for the declaration of a child subprogram body + with no spec as coming from source, to generate proper cross-reference + information. + +2005-11-14 Vincent Celier + + * make.adb (Compile_Sources): Change verbose message to minimum + verbosity level High for "is in an Ada library", "is a read-only + library" and "is an internal library", + (Create_Binder_Mapping_File): Path name of ALI file for library project + must include the library directory, not the object directory. + (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called + for new switches -vl, -vm and -vh. + (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity + (Check): Use minimum verbosity Medium for some Verbose_Msg calls + (Compile_Sources): Do not attempt to compile if an ALI file is missing + in a project that is externally built. + (Compute_All_Imported_Projects): New procedure + (Gnatmake): Check if importing libraries should be regenerated because + at least an imported library is more recent. + (Initialize): For each project compute the list of the projects it + imports directly or indirectly. + (Add_Library_Search_Dir): New procedure, used in place of + Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are + put in the search paths. + (Add_Source_Search_Dir): New procedure, used in place of + Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are + put in the search paths. + (Mark_Directory): Resolve the absolute path the directory before marking + it. + + * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with + call to new procedure Bad_Switch. Call Scan_Pos with new parameter + Switch. Do not handle any exception. + (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh + so that the switch is recognized as valid. + (Scan_Make_Switches): Implement new switches -vl, -vm and -vh. + +2005-11-14 GNAT Script + + * Make-lang.in: Makefile automatically updated + +2005-11-14 Pascal Obry + + * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is + used. + (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used. + In both cases the last argument was dropped. + +2005-11-14 Eric Botcazou + + * namet.h: (Column_Numbe): New type. + (Get_Column_Number): Define to sinput__get_column_number. + (Instantiation): Define to sinput__instantiation. + (Get_Column_Number): Declare. + (Instantiation): Likewise. + +2005-11-14 Robert Dewar + + * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit + syntax, which could cause compiler hangs. + +2005-11-14 Vincent Celier + + * prj-ext.adb: Take into account new environment variable + GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH + are defined. + (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH, + normalize its path name, making it absolute and resolving symbolic + links, and replace the original if resolved path is different. + +2005-11-14 Vincent Celier + + * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project + into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS. + +2005-11-14 Emmanuel Briot + + * prj-pp.adb (Print): Do not output the with statement if the + associated name is empty, which happens for virtual extending projects. + (Print): Preserve the "extends all" attribute when printing the project. + + * prj-tree.ads (String_Value_Of): Add comment about returned value for + a virtual extending project. + +2005-11-14 Ed Schonberg + + * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the + rhs of an assignment even if the type is unconstrained, when the + context is non-expanding. + In an inlined body, if the context type is private, + resolve with its full view, which must be a composite type. + +2005-11-14 Robert Dewar + Ed Schonberg + + * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package + Do not give obsolescent warning on with of subprogram (since we + diagnose calls) + (Analyze_With_Clause): Add test for obsolescent package + (Install_Context_Clauses): If the unit is the body of a child unit, do + not install twice the private declarations of the parents, to prevent + circular lists of Use_Clauses in a parent. + (Implicit_With_On_Parent): Do add duplicate with_clause on parent when + compiling body of child unit. + Use new class N_Subprogram_Instantiation + (Expand_With_Clause): If this is a private with_clause for a child unit, + appearing in the context of a package declaration, then the implicit + with_clauses generated for parent units are private as well. + (License_Check): Do not generate message if with'ed unit is internal + +2005-11-14 Gary Dismukes + Ed Schonberg + Thomas Quinot + + * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose + names are internal, because they will not have a corresponding partner + in the actual package. + (Analyze_Formal_Package): Move the setting of the formal package spec's + Generic_Parent field so that it occurs prior to analyzing the package, + to allow proper operation of Install_Parent_Private_Declarations. + (Analyze_Package_Instantiation): Set the instantiated package entity's + Package_Instantiation field. + (Get_Package_Instantiation_Node): Move declaration to package spec. + Retrieve the N_Package_Instantiation node when the Package_Instantiation + field is present. + (Check_Generic_Child_Unit): Within an inlined call, the only possible + instantiation is Unchecked_Conversion, for which no parents are needed. + (Inline_Instance_Body): Deinstall and record the use_clauses for all + parent scopes of a scope being removed prior to inlining an instance + body. + (Analyze_Package_Instantiation): Do not perform front-end inlining when + the current context is itself an instance within a non-instance child + unit, to prevent scope stack errors. + (Save_References): If the node is an aggregate that is an actual in a + call, rewrite as a qualified expression to preserve some type + information, to resolve possible ambiguities in the instance. + (Instance_Parent_Unit): New global variable to record the ultimate + parent unit associated with a generic child unit instance (associated + with the existing Parent_Unit_Visible flag). + (type Instance_Env): New component Instance_Parent_Unit for stacking + parents recorded in the global Instance_Parent_Unit. + (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env + stack. + (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when + it's not a top-level unit, and only do this if Instance_Parent_Unit is + not already set. Replace test of Is_Child_Unit with test of parent's + scope against package Standard. Add comments and a ??? comment. + (Remove_Parent): Revise condition for resetting Is_Immediately_Visible + on a child instance parent to test that the parent equals + Instance_Parent rather than simply checking that the unit is not a + child unit. + (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env. + (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of + a formal interface are ancestors of the corresponding actual. + (Validate_Formal_Interface_Type): Additional legality checks. + (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal + interface types with ancestors. + (Analyze_Formal_Package): If formal is a renaming, use renamed entity + to diagnose attempts to use generic within its own declaration. + +2005-11-14 Ed Schonberg + Javier Miranda + + * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original + discriminant. + (Build_Private_Derived_Type): The entity of the created full view of the + derived type does not come from source. If after installing the private + declarations of the parent scope the parent is still private, use its + full view to construct the full declaration of the derived type. + (Build_Derived_Record_Type): Relax the condition that controls the + execution of the check that verifies that the partial view and + the full view agree in the set of implemented interfaces. In + addition, this test now only takes into account the progenitors. + (Derive_Interface_Subprograms): No need to derive subprograms + of ancestors that are interfaces. + (Derive_Subprograms): Remove formal No_Predefined_Prims and the + associated code. + Change name Is_Package to Is_Package_Or_Generic_Package + (Complete_Subprograms_Derivation): Handle the case in which the full + view is a transitive derivation of the ancestor of the partial view. + (Process_Full_View): Rename local subprogram Find_Interface_In_ + Descendant to Find_Ancestor_Interface to leave the code more clear. + Remove wrong code that avoids the generation of an error message + when the immediate ancestor of the partial view is an interface. + In addition some minor reorganization of the code has been done to + leave it more clear. + (Analyze_Type_Declaration): If type has previous incomplete tagged + partial view, inherit properly its primitive operations. + (Collect_Interfaces): Make public, for analysis of formal + interfaces. + (Analyze_Interface_Declaration): New procedure for use for regular and + formal interface declarations. + (Build_Derived_Record_Type): Add support for private types to the code + that checks if a tagged type implements abstract interfaces. + (Check_Aliased_Component_Type): The test applies in the spec of an + instance as well. + (Access_Type_Declaration): Clean up declaration of malformed type + declared as an access to its own classwide type, to prevent cascaded + crash. + (Collect_Interfaces): For private extensions and for derived task types + and derived protected types, the parent may be an interface that must + be included in the interface list. + (Access_Definition): If the designated type is an interface that may + contain tasks, create Master_Id for it before analyzing the expression + of the declaration, which may be an allocator. + (Record_Type_Declaration): Set properly the interface kind, for use + in allocators, the creation of master id's for task interfaces, etc. + +2005-11-14 Javier Miranda + Ed Schonberg + + * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be + omitted in case of stream attribute subprograms. + (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that + appear immediately after a subprogram body, when there is no previous + subprogram declaration. + Change name Is_Package to Is_Package_Or_Generic_Package + (Process_Formals): A non null qualifier on a non null named access + type is not an error, and is a warning only if Redundant_Constructs + are flagged. + +2005-11-14 Gary Dismukes + Ed Schonberg + + * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure + nested within Analyze_Package_Specification to install the private + declarations and use clauses within each of the parent units of a + package instance of a generic child package. + (Analyze_Package_Specification): When entering a private part of a + package associated with a generic instance or formal package, the + private declarations of the parent must be installed (by calling new + procedure Install_Parent_Private_Declarations). + Change name Is_Package to Is_Package_Or_Generic_Package + (Preserve_Full_Attributes): For a synchronized type, the corresponding + record is absent in a generic context, which does not indicate a + compiler error. + +2005-11-14 Ed Schonberg + + * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do + not try to rewrite a renamed stream attribute, because the operations + on the type may not have been generated. + Handle properly a renaming_as_body generated for a stream operation + whose default is abstract because the object type itself is abstract. + (Find_Type): If the type is incomplete and appears as the prefix of a + 'Class reference, it is tagged, and its list of primitive operations + must be initialized properly. + (Chain_Use_Clauses): When chaining the use clauses that appear in the + private declaration of a parent unit, prior to compiling the private + part of a child unit, find on the scope stack the proper parent entity + on which to link the use clause. + (Note_Redundant_Use): Emit a warning when a redundant use clause is + detected. + (Analyze_Object_Renaming): An attribute reference is not a legal object + if it is not a function call. + +2005-11-14 Robert Dewar + Ed Schonberg + + * sem_eval.adb: Implement d.f flag + (Subtype_Statically_Match): A generic actual type has unknown + discriminants when the corresponding actual has a similar partial view. + If the routine is called to validate the signature of an inherited + operation in a child instance, the generic actual matches the full view, + +2005-11-14 Hristian Kirtchev + Ed Schonberg + Robert Dewar + Thomas Quinot + + * sem_res.adb (Resolve_Call): Provide a better error message whenever + a procedure call is used as a select statement trigger and is not an + entry renaming or a primitive of a limited interface. + (Valid_Conversion): If the operand has a single interpretation do not + remove address operations. + (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise + statement to inhibit warning. + (Resolve_Unary_Op): Do not produce a warning when + processing an expression of the form -(A mod B) + Use Universal_Real instead of Long_Long_Float when we need a high + precision float type for the generated code (prevents gratuitous + Vax_Float stuff when pragma Float_Representation (Vax_Float) used) + (Resolve_Concatenation_Arg): Improve error message when argument is an + ambiguous call to a function that returns an array. + (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that + there is an implicit operator in the given scope if we are within an + instance: legality check has been performed on the generic. + (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator + after resolving operand, to avoid false warnings on overloaded calls. + +2005-11-14 Ed Schonberg + Javier Miranda + + PR ada/15604 + + * sem_type.adb (Covers): In an inlined body, a composite type matches + a private type whose full view is a composite type. + (Interface_Present_In_Ancestor): Protect the frontend against + previously detected errors to ensure that its compilation + with assertions enabled gives the same output that its + compilation without assertions. + (Interface_Present_In_Ancestor): Add support for private types. + Change name In_Actual to In_Generic_Actual (clean up) + (Disambiguate): New predicate In_Actual, to recognize expressions that + appear in the renaming declaration generated for generic actuals, and + which must be resolved in the outer context. + +2005-11-14 Robert Dewar + Thomas Quinot + Hristian Kirtchev + Ed Schonberg + + * sem_util.ads, sem_util.adb: Change name Is_Package to + Is_Package_Or_Generic_Package. + (Check_Obsolescent): New procedure. + (Set_Is_Public): Remove obsolete junk test. + (Set_Public_Status): Do not set Is_Public on an object whose declaration + occurs within a handled_sequence_of_statemets. + (Is_Controlling_Limited_Procedure): Factor some of the logic, account + for a parameterless procedure. + (Enter_Name): Recognize renaming declarations created for private + component of a protected type within protected operations, so that + the source name of the component can be used in the debugger. + +2005-11-14 Ed Schonberg + Robert Dewar + + * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals + of a generic subprogram are not visible outside the body. + (Set_Warning_Switch): New procedure (code to set warning mode moved + here from Switch.C so that it can be shared by pragma processing. + (Check_References): Special case warning for non-modified non-imported + volatile objects. + * par-prag.adb: Modify processing of pragma Warnings to accomodate new + form with a string literal argument + +2005-11-14 Javier Miranda + + * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the + anonymous access. + (Write): Addition of "not null" to the anonymous access. + (Read): Addition of "not null" to the anonymous access. + (Write): Addition of "not null" to the anonymous access. + + * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F, + I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU, + I_SU, I_U, I_WC): Addition of "not null" to the anonymous access. + (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU, + W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of + "not null" to the anonymous access. + +2005-11-14 Robert Dewar + + * s-stoele.adb: Fix code for Address mod Storage_Offset for negative + offset values + +2005-11-14 Vincent Celier + + * switch.adb (Bad_Switch): New procedure + (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate + message when in error. + + * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value, + Too_Many_Output_Files): Remove declarations, no longer used. + (Scan_Nat): New parameter Switch + (Scan_Pos): Ditto + (Bad_Switch): New procedure + + * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;" + with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith + new parameter Switch. Replace "raise Too_Many_Output_Files;" with call + to Osint.Fail. Do not handle any exception. + +2005-11-14 Vincent Celier + + * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it + designates a non existent directory. + +2005-11-14 Robert Dewar + + * xgnatugn.adb: Replace invalid membership test by 'Valid + +2005-11-14 Vincent Celier + + * makegpr.adb (Gprmake): Do not attempt to build the global archive if + there is no object directory. + +2005-11-14 Robert Dewar + + * usage.adb: Minor adjustment to output format, use nn instead of nnn + (so that -gnateInnn does not run into next column) + +2005-11-14 Ed Falis + + * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" => + "constrained" + +2005-11-14 Cyrille Comar + + * s-chepoo.ads: Add comments on Dereference. + Remove unnecessary inherited abstract primitives. + Cosmetic cleanup. + +2005-11-14 Robert Dewar + + * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration + node parameter, not needed, since it is available as Declaration_Node. + +2005-11-14 Geert Bosch + + * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and + grammatically correct. + +2005-11-14 Vincent Celier + + * s-fileio.ads: Correct spelling error in comment + +2005-11-14 Cyrille Comar + Robert Dewar + Vincent Celier + Ben Brosgol + Jose Ruiz + Pascal Obry + + * gnat_ugn.texi: + Document that -fstack-check is needed for strict compliance with the + Ada 95 Reference Manual. + Correct reference to VAX systems to meet HP guidelines + Add documentation for new gnatmake switches -vl, -vm and -vh + Replace DEC Ada by HP Ada + Replace DIGITAL by HP + Remove empty section on tools in compatibility section + Clarify the Windows convention semantics. + Document the Win32 calling convention. + The Stdcall, Win32 and DLL convention are synonyms. + Add a note in -gnatR description about zero size record components + Note on new >= and <= warnings for -gnatwc + Document that equal sign after -gnatm is optional. + Note that strip is working fine on DLL built with a Library + Project. The restriction apply only to DLL built with gnatdll. + Update section about the way to debug a DLL. + Update information about the DLL convention. + Document -C switch for gnatprep + Document new attribute Library_ALI_Dir + Update elaboration doc to include implicit Elaborate pragmas now + generated for subprogram instantiations. + Document limitation on executable names that include spaces for --GCC, + --GNATBIND, and --GNATLINK switches. + Document that -w causes -gnatws to be added at start of gcc switches + + * gnat_rm.texi: Document that -mieee is needed for generating infinite + and NaN values in case of overflow on machines that are not fully + compliant with the IEEE floating-point standard. + Create a section describing the set of compiler options needed for + strict compliance with the Ada 95 Reference Manual. + Add documentation for pragma Obsolescent applied to a package + Clarify potential issues of mixed language programs related to the + I/O buffering enabling in the elaboration of the GNAT runtime. + Add extra documentation for pragma Restrictions (No_Elaboration_Code) + This documentation only patch adds extra documentsion for pragma + Restrictions (No_Elaboration_Code), explaining why it is not possible + to document this restriction in terms of allowed source constructs. + Document string literal form of pragma Warnings + Document new attribute Library_ALI_Dir + Add documentation on stable attributes in project files that was missing + + * gnat-style.texi: Indicate that paragraphs within a single comment + should be separated by empty comment lines + + * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and + /05 respectively) + + * bindusg.adb: Minor cleanup, put -m before -M for consistency + +2005-11-14 Robert Dewar + + * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb, + a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb, + a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads, + a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb, + a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads, + a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads, + a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb, + a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb, + a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, + a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb, + a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, + a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb, + g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads, + a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb, + a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb, + system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads, + g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb, + g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads, + a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads, + a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads, + a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads, + a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads, + a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads, + a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads, + system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads, + system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb, + a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb, + a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb, + a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads, + system-tru64.ads, system-aix.ads, system-solaris-x86.ads, + system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads, + s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb, + system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads, + system-interix.ads, system-solaris-sparc.ads, + system-solaris-sparcv9.ads, s-inmaop-vms.adb, + s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb, + system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb, + s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads, + a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads, + a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb, + a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads, + a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads, + a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads, + a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads, + a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb, + a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb, + a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb, + a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads, + a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb, + a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb, + a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads, + a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads, + a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb, + a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb, + a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb, + a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, + a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb, + a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads, + a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb, + a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb, + a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb, + a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads, + a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb, + a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, + a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb, + a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb, + a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb, + a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb, + bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb, + csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb, + errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, + errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads, + exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb, + exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb, + freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads, + g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads, + g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads, + g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads, + g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb, + g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads, + g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads, + g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads, + g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb, + gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb, + gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb, + g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb, + g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb, + g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads, + g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads, + g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb, + layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb, + mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads, + mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads, + nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb, + osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads, + par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb, + par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb, + par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads, + prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads, + prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb, + prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb, + prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb, + sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb, + sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads, + sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads, + sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads, + s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb, + sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, + s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, + s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, + s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, + s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, + s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, + s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, + s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, + s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, + s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, + s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, + s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, + s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, + s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, + s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, + s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, + s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, + s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, + s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, + s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, + s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, + s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads, + s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb, + s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads, + s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads, + s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads, + s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads, + styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads, + s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads, + s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb, + s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads, + s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads, + s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads, + s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads, + s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb, + s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads, + s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, + s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads, + table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c, + tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads, + ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads, + usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads, + xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, + xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, + a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads, + a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads, + a-numaux-darwin.ads, a-numaux-darwin.adb, + a-swuwha.ads, a-stunha.ads: Minor reformatting + +2005-11-14 Robert Dewar + + PR ada/18434 + * osint-m.adb: Add pragma Elaborate_All for Osint + +2005-11-10 Eric Botcazou + + PR ada/23995 + * trans.c (call_to_gnu): Restore statement lost in translation. + +2005-11-08 Eric Botcazou + + * init.c: Use the Linux-specific section for the IA-64/Linux target. + (__gnat_adjust_context_for_raise): Add conditional code so that the + IA-64 is also supported. + +2005-11-03 James E Wilson + + PR ada/23427 + * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in + TREE_OVERFLOW check. + +2005-09-21 Olivier Hainque + + PR ada/22418 + * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects, + as we create them to store a size in bits. + +2005-10-21 Eric Botcazou + + PR ada/21937 + PR ada/22328 + PR ada/22381 + PR ada/22383 + PR ada/22419 + PR ada/22420 + * utils2.c (build_return_expr): New helper function. + * gigi.h (build_return_expr): Declare it. + * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead + of manually building the RETURN_EXPR tree. + (call_to_gnu): Pass MODIFY_EXPR through build_binary_op. + (gnat_to_gnu) : Pass MODIFY_EXPR through + build_binary_op for the "target pointer" case. Use build_return_expr + instead of manually building the RETURN_EXPR tree. + 2005-09-16 Laurent GUERBY PR ada/23788