| 2006-12-07 Geoffrey Keating <geoffk@apple.com> |
| |
| * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE. |
| * adaint.c: Likewise. |
| |
| 2006-12-05 Aldy Hernandez <aldyh@redhat.com> |
| |
| Merge from gimple-tuples-branch: |
| 2006-11-02 Aldy Hernandez <aldyh@redhat.com> |
| |
| * 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 <kazu@codesourcery.com> |
| |
| * 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 <ebotcazou@adacore.com> |
| |
| 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 <rguenther@suse.de> |
| |
| * trans.c (maybe_stabilize_reference): Remove handling of |
| FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR. |
| |
| 2006-11-05 Arnaud Charlet <charlet@adacore.com> |
| |
| PR ada/29707 |
| * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads |
| (To_Target_Priority): New function. |
| |
| 2006-10-31 Robert Dewar <dewar@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| Bob Duff <duff@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| |
| * 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 <quinot@adacore.com> |
| |
| * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned |
| error status. |
| |
| 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com> |
| Jose Ruiz <ruiz@adacore.com> |
| |
| * 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 <charlet@adacore.com> |
| Jose Ruiz <ruiz@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * 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 <celier@adacore.com> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| * 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 <ebotcazou@adacore.com> |
| |
| * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer. |
| (Initialize): Add type conversions required by above change. |
| |
| 2006-10-31 Jose Ruiz <ruiz@adacore.com> |
| |
| * 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 <obry@adacore.com> |
| Eric Botcazou <ebotcazou@adacore.com> |
| Vincent Celier <celier@adacore.com> |
| |
| * 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 <ebotcazou@adacore.com> |
| Nicolas Setton <setton@adacore.com> |
| Olivier Hainque <hainque@adacore.com> |
| Gary Dismukes <dismukes@adacore.com> |
| |
| * gigi.h: (tree_code_for_record_type): Declare. |
| (add_global_renaming_pointer): Rename to record_global_renaming_pointer. |
| (get_global_renaming_pointers): Rename to |
| invalidate_global_renaming_pointers. |
| (static_ctors): Delete. |
| (static_dtors): Likewise. |
| (gnat_write_global_declarations): Declare. |
| (create_var_decl): Adjust descriptive comment to indicate that the |
| subprogram may return a CONST_DECL node. |
| (create_true_var_decl): Declare new function, similar to |
| create_var_decl but forcing the creation of a VAR_DECL node. |
| (get_global_renaming_pointers): Declare. |
| (add_global_renaming_pointer): Likewise. |
| |
| * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro. |
| |
| * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type |
| tree before setting TREE_ADDRESSABLE for by-reference return mechanism |
| processing. |
| (gnat_to_gnu_entity): Remove From_With_Type from computation for |
| imported_p. |
| <E_Access_Type>: Use the Non_Limited_View as the full view of the |
| designated type if the pointer comes from a limited_with clause. Make |
| incomplete designated type if it is in the main unit and has a freeze |
| node. |
| <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and |
| Underlying_Full_View similarly. Return earlier if the full view already |
| has an associated tree. |
| (gnat_to_gnu_entity) <E_Record_Type>: Restore comment. |
| (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type. |
| (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the |
| reference type built for objects with an address clause. |
| Use create_true_var_decl with const_flag set for |
| DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with |
| TREE_READONLY set. |
| (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME |
| for Character and Wide_Character types. This info is read by the |
| dwarf-2 writer, and is needed to be able to use the command "ptype |
| character" in the debugger. |
| (gnat_to_gnu_entity): When generating a type representing |
| a Character or Wide_Character type, set the flag TYPE_STRING_FLAG, |
| so that debug writers can distinguish it from ordinary integers. |
| (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in |
| addition to TREE_READONLY to assert the constantness of variables for |
| elaboration purposes. |
| (gnat_to_gnu_entity, subprogram cases): Change loops on formal |
| parameters to call new Einfo function First_Formal_With_Extras. |
| (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a |
| protected type with its corresponding discriminant, to obtain a usable |
| declaration |
| (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared |
| for a multiple elaboration of the "equivalent" type. |
| (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer |
| into record_global_renaming_pointer. |
| (gnat_to_gnu_entity) <E_Array_Type>: Do not force |
| TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate. |
| <E_Array_Subtype>: Likewise. |
| (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular |
| incomplete subtypes and incomplete subtypes of incomplete types visible |
| through a limited with clause. |
| (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of |
| the base index type for the maximum size of the array only if they are |
| constant. |
| (gnat_to_gnu_entity, renaming object case): Do not wrap up the |
| expression into a SAVE_EXPR if stabilization failed. |
| |
| * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of |
| a result decl into DECL_BY_REFERENCE on this decl, now what is expected |
| by lower level compilation passes. |
| (gnat_genericize): New function, lowering a function body to GENERIC. |
| Turn the type of RESULT_DECL into a real reference type if the decl |
| has been marked DECL_BY_REFERENCE, and adjust references to the latter |
| accordingly. |
| (gnat_genericize_r): New function. Tree walking callback for |
| gnat_genericize. |
| (convert_from_reference, is_byref_result): New functions. Helpers for |
| gnat_genericize_r. |
| (create_type_decl): Call gnat_pushdecl before calling |
| rest_of_decl_compilation, to make sure that field TYPE_NAME of |
| type_decl is properly set before calling the debug information writers. |
| (write_record_type_debug_info): The heuristics which compute the |
| alignment of a field in a variant record might not be accurate. Add a |
| safety test to make sure no alignment is set to a smaller value than |
| the alignment of the field type. |
| (make_dummy_type): Use the Non_Limited_View as the underlying type if |
| the type comes from a limited_with clause. Do not loop on the full view. |
| (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros. |
| (dummy_node_table): New global variable, moved from decl.c. |
| (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros. |
| (save_gnu_tree): Use above macros. |
| (get_gnu_tree): Likewise. |
| (present_gnu_tree): Likewise. |
| (init_dummy_type): New function, moved from decl.c. Use above macros. |
| (make_dummy_type): Likewise. |
| (tree_code_for_record_type): New function extracted from make_dummy_type |
| (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc. |
| (static_ctors): Change it to a vector, make static. |
| (static_dtors): Likewise. |
| (end_subprog_body): Adjust for above change. |
| (build_global_cdtor): Moved from trans.c. |
| (gnat_write_global_declarations): Emit global constructor and |
| destructor, and call cgraph_optimize before emitting debug info for |
| global declarations. |
| (global_decls): New global variable. |
| (gnat_pushdecl): Store the global declarations in global_decls, for |
| later use. |
| (gnat_write_global_declarations): Emit debug information for global |
| declarations. |
| (create_var_decl_1): Former create_var_decl, with an extra argument to |
| state whether the creation of a CONST_DECL is allowed. |
| (create_var_decl): Behavior unchanged. Now a wrapper around |
| create_var_decl_1 allowing CONST_DECL creation. |
| (create_true_var_decl): New function, similar to create_var_decl but |
| forcing the creation of a VAR_DECL node (CONST_DECL not allowed). |
| (create_field_decl): Do not always mark the field as addressable |
| if its type is an aggregate. |
| (global_renaming_pointers): New static variable. |
| (add_global_renaming_pointer): New function. |
| (get_global_renaming_pointers): Likewise. |
| |
| * misc.c (gnat_dwarf_name): New function. |
| (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name. |
| (gnat_post_options): Add comment about structural alias analysis. |
| (gnat_parse_file): Do not call cgraph_optimize here. |
| (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations. |
| |
| * trans.c (process_freeze_entity): Don't abort if we already have a |
| non dummy GCC tree for a Concurrent_Record_Type, as it might |
| legitimately have been elaborated while processing the associated |
| Concurrent_Type prior to this explicit freeze node. |
| (Identifier_to_gnu): Do not make a variable referenced in a SJLJ |
| exception handler volatile if it is of variable size. |
| (process_type): Remove bypass for types coming from a limited_with |
| clause. |
| (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT |
| actual, convert the corresponding gnu_actual to the real destination |
| type when necessary. |
| (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables |
| originally TREE_READONLY but whose elaboration cannot be performed |
| statically. |
| Part of fix for F504-021. |
| (tree_transform, subprogram cases): Change loops on formal parameters to |
| call new Einfo function First_Formal_With_Extras. |
| (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow |
| stemming from type conversion for the lhs. |
| (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the |
| number of bits per unit for components of records. |
| (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed. |
| (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated |
| with At_End_Proc after the SJLJ EH cleanup. |
| (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main |
| compilation unit. |
| (elaborate_all_entities): Do not retest type_annotate_only. |
| (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the |
| result type of an abstract subprogram, which may be an itype associated |
| with an anonymous access result (related to AI-318-02). |
| (build_global_cdtor): Move to utils.c. |
| (Case_Statement_to_gnu): Avoid adding the choice of a when statement if |
| this choice is not a null tree nor an integer constant. |
| (gigi): Run unshare_save_expr via walk_tree_without_duplicates |
| on the body of elaboration routines instead of mark_unvisited. |
| (add_stmt): Do not mark the tree. |
| (add_decl_expr): Tweak comment. |
| (mark_unvisited): Delete. |
| (unshare_save_expr): New static function. |
| (call_to_gnu): Issue an error when making a temporary around a |
| procedure call because of non-addressable actual parameter if the |
| type of the formal is by_reference. |
| (Compilation_Unit_to_gnu): Invalidate the global renaming pointers |
| after building the elaboration routine. |
| |
| 2006-10-31 Bob Duff <duff@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| Jose Ruiz <ruiz@adacore.com> |
| |
| * 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 <miranda@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * binde.adb (Better_Choice, Worse_Choice): Implement new preferences. |
| |
| 2006-10-31 Robert Dewar <dewar@adacore.com> |
| |
| * 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 <ruiz@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| Bob Duff <duff@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * 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 <duff@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| |
| * 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 <schonberg@adacore.com> |
| Thomas Quinot <quinot@adacore.com> |
| Javier Miranda <miranda@adacore.com> |
| Robert Dewar <dewar@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * 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 <miranda@adacore.com> |
| Robert Dewar <dewar@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| Gary Dismukes <dismukes@adacore.com> |
| |
| * 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 <miranda@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| Bob Duff <duff@adacore.com> |
| Gary Dismukes <dismukes@adacore.com> |
| Robert Dewar <dewar@adacore.com> |
| |
| * 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 <duff@adacore.com> |
| Robert Dewar <dewar@adacore.com> |
| Gary Dismukes <dismukes@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| Bob Duff <duff@adacore.com> |
| Gary Dismukes <dismukes@adacore.com> |
| |
| * 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 <schonberg@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * 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 <quinot@adacore.com> |
| Pablo Oliveira <oliveira@adacore.com> |
| |
| * 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 <schonberg@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * 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 <miranda@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * 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 <duff@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| Robert Dewar <dewar@adacore.com> |
| |
| * 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 <celier@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| |
| * 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 <hainque@adacore.com> |
| |
| * 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 <duff@adacore.com> |
| Robert Dewar <dewar@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| |
| * 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 <kirtchev@adacore.com> |
| |
| * 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 <celier@adacore.com> |
| |
| * g-debpoo.adb (Is_Valid): Correctly compute Offset using |
| Integer_Address arithmetic, as in Set_Valid. |
| |
| 2006-10-31 Arnaud Charlet <charlet@adacore.com> |
| Robert Dewar <dewar@adacore.com> |
| |
| * 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 <celier@adacore.com> |
| |
| * 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 <celier@adacore.com> |
| |
| * 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 <celier@adacore.com> |
| |
| * 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 <quinot@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * g-speche.ads, g-speche.adb: Add special case to recognize misspelling |
| initial letter o as a zero. |
| |
| 2006-10-31 Robert Dewar <dewar@adacore.com> |
| |
| * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First |
| |
| 2006-10-31 Robert Dewar <dewar@adacore.com> |
| |
| * 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 <celier@adacore.com> |
| |
| * 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 <quinot@adacore.com> |
| Eric Botcazou <ebotcazou@adacore.com> |
| Arnaud Charlet <charlet@adacore.com> |
| |
| * 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 <celier@adacore.com> |
| |
| * 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 <schonberg@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * par-ch10.adb (P_Context_Clause): Minor error message fix |
| |
| 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com> |
| Javier Miranda <miranda@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| Javier Miranda <miranda@adacore.com> |
| |
| * 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 <celier@adacore.com> |
| |
| * 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 <celier@adacore.com> |
| |
| * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant |
| (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter |
| Packages_To_Check. |
| |
| 2006-10-31 Vincent Celier <celier@adacore.com> |
| |
| * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S |
| on VMS, change "__" to '.' before checking the name. |
| (Record_Ada_Source): Always add the source file name in the list of |
| of sources, even if it is not the first time, as it is for another |
| source index. |
| (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single |
| dot, instead of replacing only the first '_'. |
| |
| * prj-part.adb (Parse): Convert project file path to canonical form |
| |
| * prj-proc.adb (Recursive_Process): Make sure that, when a project is |
| extended, the project id of the project extending it is recorded in its |
| data, even when it has already been processed as an imported project. |
| |
| 2006-10-31 Robert Dewar <dewar@adacore.com> |
| |
| * repinfo.adb (List_Entities): Don't list entities from renaming |
| declarations. |
| |
| 2006-10-31 Arnaud Charlet <charlet@adacore.com> |
| Robert Dewar <dewar@adacore.com> |
| |
| * restrict.ads, restrict.adb (Restriction_Active): Now returns False if |
| only a restriction warning is active for the given restriction. This is |
| desirable because we do not want to modify code in the case where only |
| a warning is set. |
| (Set_Profile_Restrictions): Make sure that a Profile_Warnings never |
| causes overriding of real restrictions. |
| Take advantage of new No_Restrictions constant. |
| |
| * raise.h: (__gnat_set_globals): Change profile. |
| |
| 2006-10-31 Arnaud Charlet <charlet@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * scng.adb (Scan, case of numeric literal): Better msg for identifier |
| starting with a digit. |
| |
| 2006-10-31 Ed Schonberg <schonberg@adacore.com> |
| Thomas Quinot <quinot@adacore.com> |
| Javier Miranda <miranda@adacore.com> |
| Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose |
| properly an attempt to apply Unchecked_Access to a protected operation. |
| (OK_Self_Reference): New subprogram to check the legality of an access |
| attribute whose prefix is the type of an enclosing aggregate. |
| Generalizes previous mechanism to handle attribute references nested |
| arbitrarily deep within the aggregate. |
| (Analyze_Access_Attribute): An access attribute whose prefix is a type |
| can appear in an aggregate if this is a default-initialized aggregate |
| for a self-referential type. |
| (Resolve_Attribute, case Access): Ditto. |
| Add support for new implementation defined attribute Stub_Type. |
| (Eval_Attribute, case Attribute_Stub_Type): New case. |
| (Analyze_Attribute, case Attribute_Stub_Type): New case. |
| (Stream_Attribute_Available): Implement using new subprogram from |
| sem_cat, Has_Stream_Attribute_Definition, instead of incorrect |
| Has_Specified_Stream_Attribute flag. |
| Disallow Storage_Size and Storage_Pool for access to subprogram |
| (Resolve_Attribute, case 'Access et al): Take into account anonymous |
| access types of return subtypes in extended return statements. Remove |
| accessibility checks on anonymous access types when Unchecked_Access is |
| used. |
| (Analyze_Attribute): Add support for the use of 'Class to convert |
| a class-wide interface to a tagged type. |
| Add support for the attribute Priority. |
| (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for |
| whether the designated type is discriminated with a constrained partial |
| view and require static matching in that case. |
| Add local variable Des_Btyp. The Designated_Type |
| of an access to incomplete subtype is either its non-limited view if |
| coming from a limited with or its etype if regular incomplete subtype. |
| |
| * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type): |
| Fix predicate to identify and allow cases of (expander-generated) |
| references to tag of designated object of a RACW. |
| (Validate_Static_Object_Name): In Ada 2005, a formal object is |
| non-static, and therefore cannot appear as a primary in a preelaborable |
| package. |
| (Has_Stream_Attribute_Definition): New subprogram, abstracted from |
| Has_Read_Write_Attributes. |
| (Has_Read_Write_Attributes): Reimplement in termes of |
| Has_Stream_Attribute_Definition. |
| (Missing_Read_Write_Attributes): When checking component types in a |
| record, unconditionally call Missing_Read_Write_Attributes recursively |
| (remove guard checking for Is_Record_Type / Is_Access_Type). |
| |
| 2006-10-31 Robert Dewar <dewar@adacore.com> |
| |
| * sem_ch11.adb (Analyze_Handled_Statements): Move final test for |
| useless assignments here and conditionalize it on absence of exception |
| handlers. |
| (Analyze_Exception_Handlers): Small code reorganization of error |
| detection code, for new handling of formal packages. |
| |
| 2006-10-31 Ed Schonberg <schonberg@adacore.com> |
| Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator |
| that has been constant-folded, preserve information of original tree, |
| for ASIS uses. |
| (Analyze_Formal_Derived_Type): Set the limited present flag of the newly |
| generated private extension declaration if the formal derived type is |
| synchronized. Carry synchronized present over to the generated private |
| extension. |
| (Validate_Derived_Type_Instance): Ensure that the actual of a |
| synchronized formal derived type is a synchronized tagged type. |
| (Instantiate_Formal_Package): When creating the instantiation used to |
| validate the actual package of a formal declared without a box, check |
| whether the formal itself depends on a prior actual. |
| (Instantiate_Formal_Subprogram): Create new entities for the defining |
| identifiers of the formals in the renaming declaration, for ASIS use. |
| (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating |
| a renaming declaration or a subtype declaration for an actual in an |
| instance, capture location information of declaration in generic, for |
| ASIS use. |
| (Instantiate_Formal_Package): Add comments on needed additional tests. |
| AI-317 (partial parametrization) is fully implemented. |
| (Validate_Private_Type_Instance): Add check for actual which |
| must have preelaborable initialization |
| Use new // insertion for some continuation messages |
| (Analyze_Formal_Object_Declaration): Change usage of Expression to |
| Default_Expression. Add type retrieval when the declaration has an |
| access definition. Update premature usage of incomplete type check. |
| (Check_Access_Definition): New subsidiary routine. Check whether the |
| current compilation version is Ada 05 and the supplied node has an |
| access definition. |
| (Instantiate object): Alphabetize local variables. Handle the creation |
| of new renaming declarations with respect to the kind of definition |
| used - either an access definition or a subtype mark. Guard against |
| unnecessary error message in the context of anonymous access types after |
| they have been resolved. Add check for required null exclusion in a |
| formal object declaration. |
| (Switch_View): A private subtype of a non-private type needs to be |
| switched (the base type can have been switched without its private |
| dependents because of the last branch of Check_Private_View. |
| (Check_Private_View): Do not recompute Base_Type (T), instead use cached |
| value from BT. |
| (Instantiate_Type): Emit an error message whenever a class-wide type of |
| a tagged incomplete type is used as a generic actual. |
| (Find_Actual_Type): Extend routine to handle a component type in a child |
| unit that is imported from a formal package in a parent. |
| (Validate_Derived_Type_Instance): Check that analyzed formal and actual |
| agree on constrainedness, rather than checking against ultimate ancestor |
| (Instantiate_Subprogram_Body): Create a cross-reference link to the |
| generic body, for navigation purposes. |
| |
| 2006-10-31 Robert Dewar <dewar@adacore.com> |
| Thomas Quinot <quinot@adacore.com> |
| |
| * sem_ch13.adb: Storage pool cannot be given for access to subprogram |
| type. |
| (New_Stream_Subprogram): When processing an attribute definition clause |
| for a stream-oriented subprogram, record an entity node occurring at |
| the point of clause to use for checking the visibility of the clause, |
| as defined by 8.3(23) as amended by AI-195. |
| (New_Stream_Subprogram): New procedure, factoring behaviour from both |
| New_Stream_Function and New_Stream_Procedure. |
| (New_Stream_Function, New_Stream_Procedure): Removed. |
| (Analyze_Attribute_Definition_Clause, case Address): Check new |
| Alignment_Check check |
| |
| 2006-10-31 Ed Schonberg <schonberg@adacore.com> |
| Javier Miranda <miranda@adacore.com> |
| Robert Dewar <dewar@adacore.com> |
| |
| * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we |
| generate the same errors compiling under -gnatc. |
| (Try_Object_Operation): If no candidate interpretation succeeds, but |
| there is at least one primitive operation with the right name, report |
| error in call rather than on a malformed selected component. |
| (Analyze_Selected_Component): If the prefix is an incomplete type from |
| a limited view, and the full view is available, use the full view to |
| determine whether this is a prefixed call to a primitive operation. |
| (Operator_Check): Verify that a candidate interpretation is a binary |
| operation before checking the type of its second formal. |
| (Analyze_Call): Add additional warnings for function call contexts not |
| yet supported. |
| (Analyze_Allocator): Move the check for "initialization not allowed for |
| limited types" after analyzing the expression. This is necessary, |
| because OK_For_Limited_Init looks at the structure of the expression. |
| Before analysis, we don't necessarily know what sort of expression it |
| is. For example, we don't know whether F(X) is a function call or an |
| indexed component; the former is legal in Ada 2005; the latter is not. |
| (Analyze_Allocator): Correct code for AI-287 -- extension aggregates |
| were missing. We also didn't handle qualified expressions. Now also |
| allow function calls. Use new common routine OK_For_Limited_Init. |
| (Analyze_Type_Conversion): Do not perform some legality checks in an |
| instance, because the error message will be redundant or spurious. |
| (Analyze_Overloaded_Selected_Component): Do not do style check when |
| setting an entity, since we do not know it is the right entity yet. |
| (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res |
| (Analyze_Overloaded_Selected_Component): Same change |
| (Analyze_Selected_Component): Remove unnecessary prefix type retrieval |
| since regular incomplete subtypes are transformed into corresponding |
| subtypes of their full views. |
| (Complete_Object_Operation): Treat name of transformed subprogram call |
| as coming from source, for browsing purposes. |
| (Try_Primitive_Operation): If formal is an access parameter, compare |
| with base type of object to determine whether it is a primitive |
| operation. |
| (Operator_Check): If no interpretation of the operator matches, check |
| whether a use clause on any candidate might make the operation legal. |
| (Try_Class_Wide_Operation): Check whether the first parameter is an |
| access type whose designated type is class-wide. |
| |
| 2006-10-31 Robert Dewar <dewar@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to |
| warn on infinite loops. |
| Add \\ to some continuation messages |
| (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment |
| (Process_Bounds): If the bounds are integer literals that result from |
| constant-folding, and they carry a user-defined type, preserve that type |
| rather than treating this as an integer range. |
| (Analyze_Exit_Statement): Test for E_Return_Statement in legality check. |
| (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check. |
| (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for |
| left hand side of assignment. |
| (Analyze_Assignment): Add suport to manage assigments to the attribute |
| priority of a protected object. |
| (Check_Possible_Current_Value_Condition): Allow fully qualified names |
| not just identifiers. |
| (Check_Possible_Current_Value_Condition): Acquire left operand of AND |
| or AND THEN for possible tracking. |
| (Analyze_Iteration_Scheme): Check for setting Current_Value for the |
| case of while loops so we can track values in the loop body. |
| |
| 2006-10-31 Ed Schonberg <schonberg@adacore.com> |
| Hristian Kirtchev <kirtchev@adacore.com> |
| Bob Duff <duff@adacore.com> |
| |
| * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null |
| procedure cannot be a protected operation (it is a basic_declaration, |
| not a subprogram_declaration). |
| (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_ |
| Subp. Add logic for entry processing. |
| (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity. |
| Determine whether an entry or subprogram of a protected or task type |
| override an inherited primitive of an implemented interface. |
| (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding. |
| Update the actual used in calls to Check_Overriding_Indicator. |
| (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit, |
| generate the proper reference to the parent unit, for cross-reference. |
| (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with |
| Is_Formal. |
| Add -gnatd.l --Use Ada 95 semantics for limited function returns, |
| (Add_Extra_Formal): Revise procedure to allow passing in associated |
| entity, scope, and name suffix, and handle setting of the new |
| Extra_Formals field. |
| (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to |
| pass new parameters. Add support for adding the new extra access formal |
| for functions whose calls are treated as build-in-place. |
| (Analyze_A_Return_Statement): Correct casing in error message. |
| Move Pop_Scope to after Analyze_Function_Return, because an extended |
| return statement really is a full-fledged scope. Otherwise, visibility |
| doesn't work right. Correct use of "\" for continuation messages. |
| (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than |
| evilly trying to call Analyze_Object_Declaration directly. Otherwise, |
| the node doesn't get properly marked as analyzed. |
| (Analyze_Subprogram_Body): If subprogram is a function that returns |
| an anonymous access type that denotes a task, build a Master Entity |
| for it. |
| (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify |
| proper usage of null exclusion in a result definition. |
| (Process_Formals): Code cleanup and new error message. |
| (Process_Formals): Detect incorrect application of null exclusion to |
| non-access types. |
| (Conforming_Types): Handle conformance between [sub]types and itypes |
| generated for entities that have null exclusions applied to them. |
| (Maybe_Primitive_Operation): Add an additional type retrieval when the |
| base type is an access subtype. This case arrises with null exclusions. |
| (New_Overloaded_Entity): Do not remove the overriden entity from the |
| homonym chain if it corresponds with an abstract interface primitive. |
| (Process_Formals): Replace membership test agains Incomplete_Kind with a |
| call to the synthesized predicate Is_Incomplete_Type. |
| (Analyze_Subprogram_Body): Check wrong placement of abstract interface |
| primitives. |
| (Analyze_Subprogram_Declaration): Check that abstract interface |
| primitives are abstract or null. |
| (Analyze_Subprogram_Specification): Remove previous check for abstract |
| interfaces because it was not complete. |
| (Has_Interface_Formals): Removed. |
| |
| 2006-10-31 Ed Schonberg <schonberg@adacore.com> |
| Javier Miranda <miranda@adacore.com> |
| |
| * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary |
| of Analyze_Package_Body, to create Itype references for anonymous |
| access types created in the package declaration, whose designated types |
| may have only a limited view. |
| (Analyze_Package_Specification): For the private part of a nested |
| package, install private_with_clauses of enclosing compilation unit if |
| we are in its visible part. |
| (Declare_Inherited_Private_Subprograms): Complete barrier |
| to ensure that the primitive operation has an alias to some parent |
| primitive. This is now required because, after the changes done for the |
| implementation of abstract interfaces, the contents of the list of |
| primitives has entities whose alias attribute references entities of |
| such list of primitives. |
| (Analyze_Package_Specification): Simplify code that handles parent units |
| of instances and formal packages. |
| (Uninstall_Declarations): Check the convention consistency among |
| primitive overriding operations of a tagged record type. |
| |
| 2006-10-31 Robert Dewar <dewar@adacore.com> |
| Hristian Kirtchev <kirtchev@adacore.com> |
| Javier Miranda <miranda@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch8.adb: Minor error msg rewording |
| (Undefined): When checking for misspellings, invert arguments (to get |
| expected and found set right) |
| (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated |
| (Analyze_Generic_Renaming): Same fix |
| (Use_One_Package): Do not take into account the internal entities of |
| abstract interfaces during the analysis of entities that are marked |
| as potentially use-visible. |
| (Find_Type): Handle the case of an attribute reference for |
| implementation defined attribute Stub_Type (simply let the analysis of |
| the attribute reference rewrite it). |
| (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a |
| type that appears in a Use_Type clause. |
| (Analyze_Object_Renaming): Add support for renaming of the Priority |
| attribute. |
| (Find_Type): In Ada 2005, a task type can be used within its own body, |
| when it appears in an access definition. |
| (Analyze_Object_Renaming): Remove warning on null_exclusion. |
| (Analyze_Object_Renaming): Introduce checks for required null exclusion |
| in a formal object declaration or in a subtype declaration. |
| (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion. |
| (Check_Null_Exclusion): New local routine to |
| Analyze_Subprogram_Renaming. Check whether the formals and return |
| profile of a renamed subprogram have required null exclusions when |
| their counterparts of the renaming already impose them. |
| (In_Generic_Scope): New local routine to Analyze_Object_Renaming. |
| Determine whether an entity is inside a generic scope. |
| (In_Open_Scope): First pass of documentation update. |
| (Find_Expanded_Name): Add support for shadow entities associated with |
| limited withed packages. This is required to handle nested packages. |
| (Analyze_Package_Renaming): Remove the restriction imposed by AI-217 |
| that makes a renaming of a limited withed package illegal. |
| |
| 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_ch9.adb (Analyze_Protected_Definition): Remove call to |
| Check_Overriding_Indicator. |
| (Analyze_Task_Definition): Ditto. |
| (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup. |
| (Check_Overriding_Indicator): To find overridden interface operation, |
| examine only homonyms that have an explicit subprogram declaration, not |
| inherited operations created by an unrelated type derivation. |
| (Check_Overriding_Indicator): When checking for the presence of "null" |
| in a procedure, ensure that the queried node is a procedure |
| specification. |
| (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter |
| type when the formal is an access to variable. |
| (Analyze_Protected_Type): Add check for Preelaborable_Initialization |
| (Analyze_Task_Type): Same addition |
| (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to |
| provide navigation capabilities for entries. |
| |
| 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| Javier Miranda <miranda@adacore.com> |
| Gary Dismukes <dismukes@adacore.com> |
| |
| * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms |
| inherited from an interface ancestor by another interface in the |
| context of an instance as 'late'. |
| (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference |
| of a call to a function that dispatches on access result. |
| (Check_Dispatching_Operation): In case of late overriding of a primitive |
| that covers abstract interface subprograms we register it in all the |
| secondary dispatch tables associated with abstract interfaces. |
| (Check_Dispatching_Call): Add check that a dispatching call is not made |
| to a function with a controlling result of a limited type. This is a |
| current implementation restriction. |
| (Check_Controlling_Formal): Remove bogus checks for E.2.2(14). |
| (Check_Dispatching_Operation): Do no emit a warning if the controlling |
| argument is an interface type that is a generic formal. |
| (Is_Interface_Subprogram): Removed. |
| (Check_Dispatching_Operation): If the subprogram is not a dispatching |
| operation, check the formals to handle the case in which it is |
| associated with an abstract interface type. |
| |
| 2006-10-31 Robert Dewar <dewar@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure |
| Add new calls to this procedure during traversal |
| (Activate_Elaborate_All_Desirable): Do not set elaboration flag on |
| another unit if expansion is disabled. |
| |
| 2006-10-31 Robert Dewar <dewar@adacore.com> |
| |
| * sem_eval.adb (Compile_Time_Compare): Make use of information from |
| Current_Value in the conditional case, to evaluate additional |
| comparisons at compile time. |
| |
| 2006-10-31 Ed Schonberg <schonberg@adacore.com> |
| Hristian Kirtchev <kirtchev@adacore.com> |
| Javier Miranda <miranda@adacore.com> |
| |
| * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve |
| subprogram type to provide better diagnostics in case of ambiguity. |
| (Covers): Handle coverage of formal and actual anonymous access types in |
| the context of generic instantiation. |
| (Covers/Interface_Present_In_Ancestors): Use the base type to manage |
| abstract interface types; this is required to handle concurrent types |
| with discriminants and abstract interface types. |
| (Covers): Include type coverage of both regular incomplete subtypes and |
| incomplete subtypes of incomplete type visibles through a limited with |
| clause. |
| |
| 2006-10-31 Robert Dewar <dewar@adacore.com> |
| Hristian Kirtchev <kirtchev@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning |
| messages for entities in packages which are not used. |
| (Collect_Synchronized_Interfaces): New procedure. |
| (Overrides_Synchronized_Primitive): New function. |
| (Denotes_Discriminant): Extend predicate to apply to task types. |
| Add missing continuation marks in error msgs |
| (Unqualify): New function for removing zero or more levels of |
| qualification from an expression. There are numerous places where this |
| ought to be used, but we currently only deal properly with zero or one |
| level. |
| (In_Instance); The analysis of the actuals in the instantiation of a |
| child unit is not within an instantiation, even though the parent |
| instance is on the scope stack. |
| (Safe_To_Capture_Value): Exclude the case of variables that are |
| renamings. |
| (Check_Obsolescent): Removed |
| (Is_Aliased_View): A reference to an enclosing instance in an aggregate |
| is an aliased view, even when rewritten as a reference to the target |
| object in an assignment. |
| (Get_Subprogram_Entity): New function |
| (Known_To_Be_Assigned): New function |
| (Type_Access_Level): Compute properly the access level of a return |
| subtype that is an anonymous access type. |
| (Explain_Limited_Type): Correct use of "\" for continuation messages. |
| (Is_Transfer): The new extended_return_statement causes a transfer of |
| control. |
| (Has_Preelaborable_Initialization): New function |
| (Has_Null_Exclusion): New function. Given a node N, determine whether it |
| has a null exclusion depending on its Nkind. |
| Change Is_Lvalue to May_Be_Lvalue |
| (May_Be_Lvalue): Extensive additional code to deal with subprogram |
| arguments (IN parameters are not Lvalues, IN OUT parameters are). |
| (Safe_To_Capture_Value): Extend functionality so it can be used for |
| the current value condition case. |
| (Has_Compatible_Alignment): New function |
| (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable |
| objects to handle the Ada 2005 case, where aliasedness no longer implies |
| that the object is constrained. In particular, for dereferenced names, |
| the designated object must be assumed to be unconstrained. |
| (Kill_Current_Values): Properly deal with the case where we encounter |
| a loop in the scope chain. |
| (Safe_To_Capture_Value): Do not let a loop stop us from capturing |
| a value. |
| (Compile_Time_Constraint_Error): Improve error message in error case |
| |
| * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node |
| associated with entities of abstract interface primitives. |
| Call Apply_Address_Clause_Check instead of Apply_Alignment_Check |
| |
| 2006-10-31 Robert Dewar <dewar@adacore.com> |
| |
| * s-osinte-tru64.adb: |
| Mark Asm statements Volatile to prevent warnings (seems a |
| reasonable change anyway) |
| Fixes new warnings |
| |
| * s-mastop-irix.adb: Add Volatile to Asm statements |
| Suppresses warning, and seems appropriate in any case |
| |
| * s-osinte-vms.adb: Add Volatile to Asm statement |
| |
| * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements |
| |
| * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be |
| returned. |
| Add call to Check_Code_Statement |
| |
| 2006-10-31 Robert Dewar <dewar@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| Bob Duff <duff@adacore.com> |
| |
| * sinfo.ads, sinfo.adb (Set_Synchronized_Present, |
| Synchronized_Present): Add Formal_Derived_Type_Definition and |
| Private_Extension_Declaration to the list of assertions. |
| (Is_Entry_Barrier_Function): New flag |
| (Has_Self_Reference): New flag on aggregates, to indicate that they |
| contain a reference to the enclosing type, inserted through a default |
| initialization. |
| (Next_Rep_Item): Move from Node4 to Node5. |
| (Entity): Add this field for N_Attribute_Definition_Clause. |
| (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement |
| (N_Return_Object_Declaration): Remove this node kind. We now use |
| N_Object_Declaration instead. |
| (Actual_Designated_Subtype): Move to a different place to make room in |
| N_Extended_Return_Statement. |
| (Procedure_To_Call): Move to a different place to make room in |
| N_Extended_Return_Statement. |
| (Return_Type): Removed this field to make room in return statements |
| (both kinds). |
| (Return_Statement_Entity): New field in return statements, in part to |
| replace Return_Type, and in part to support the fact that return |
| statements are now pushed on the scope stack during semantic analysis. |
| (Return_Object_Declarations): New field to support extended return |
| statements. |
| (N_Extended_Return_Statement): New node for extended_return_statement |
| nonterminal. |
| (N_Return_Object_Declaration): New node for part of |
| extended_return_statement nonterminal. Needed because all the necessary |
| fields won't fit in N_Extended_Return_Statement. |
| Generic_associations now carry the Box_Present flag, to indicate a |
| default for an actual in a partially parametrized formal package. |
| |
| * snames.h, snames.ads, snames.adb: Add definition for Validity_Check |
| (Preset_Names): Add entries for Priority_Specific_Dispatching pragma |
| and for the new predefined dispatching policies: EDF_Across_Priorities, |
| Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities. |
| Introduce new name Stub_Type for implementation defined attribute. |
| Add pragma Preelaborable_Initialization |
| Add entry for Priority attribute. |
| Add Pragma_Wide_Character_Encoding |
| (Get_Convention_Name): Given a convention id, this function returns the |
| corresponding name id from the names table. |
| |
| 2006-10-31 Ed Schonberg <schonberg@adacore.com> |
| Robert Dewar <dewar@adacore.com> |
| Bob Duff <duff@adacore.com> |
| |
| * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not |
| print null exclusion twice in the case of an access definition, |
| Implement new -gnatL switch |
| Remove N_Return_Object_Declaration. We now use |
| N_Object_Declaration instead. Implement the case for |
| N_Extended_Return_Statement. Alphabetize the cases. |
| Add cases for new nodes N_Extended_Return_Statement and |
| N_Return_Object_Declaration. The code is not yet written. |
| Update the output for N_Formal_Object_Declaration |
| and N_Object_Renaming_Declaration. |
| (Write_Itype): Account for the case of a modular integer subtype whose |
| base type is private. |
| |
| 2006-10-31 Arnaud Charlet <charlet@adacore.com> |
| |
| * s-restri.ads, s-restri.adb: Mark this package as Preelaborate. |
| Remove elaboration code, now done in the binder. |
| |
| * s-rident.ads: Make this unit Preelaborate. |
| (No_Restrictions): New constant used to clean up code and follow |
| preelaborate constraints. |
| |
| * s-stalib.adb: |
| Add System.Restrictions dependence, referenced directly from the |
| binder generated file. |
| |
| 2006-10-31 Gary Dismukes <dismukes@adacore.com> |
| |
| * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set |
| True when AAMP extended floating-point is in use (48-bit). Change type |
| ByteLF to ByteLLF, add new array type ByteLF and condition the size of |
| the two byte array types on AFloat. Change type of IV_Ilf overlay |
| variable from Byte8 to ByteLF. Add appropriate initializations of |
| floating-point overlays for AAMP cases. |
| |
| 2006-10-31 Javier Miranda <miranda@adacore.com> |
| |
| * 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 <ruiz@adacore.com> |
| |
| * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when |
| requeuing to the same protected object to give higher priority tasks |
| the opportunity to execute. |
| |
| 2006-10-31 Robert Dewar <dewar@adacore.com> |
| |
| * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding, |
| add more precise check for the character sequence that follows '[' to |
| avoid possible confusion in case if '[' is the last character of a |
| string literals. |
| (Scan_Wide): Always allow brackets encoding |
| |
| 2006-10-31 Olivier Hainque <hainque@adacore.com> |
| |
| * s-stchop.ads: make this unit preelaborate. This is desirable in |
| general and made mandatory by the use of this unit by s-taprop which |
| is itself preelaborate. |
| |
| * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add |
| Td_Events component. |
| |
| 2006-10-31 Vincent Celier <celier@adacore.com> |
| |
| * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed |
| in file names. |
| |
| 2006-10-31 Vincent Celier <celier@adacore.com> |
| |
| * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005 |
| |
| 2006-10-31 Vincent Celier <celier@adacore.com> |
| |
| * makegpr.adb (Check_Compilation_Needed): Take into account path names |
| with spaces. |
| (Check_Compilation_Needed): When checking a C or C++ source, do not |
| resolve symbolic links. |
| (Display_Command): New Boolean parameter Ellipse, defaulted to False. |
| When not in verbose mode and Ellipse is True, display "..." for the |
| first argument with Display set to False. |
| (Build_Global_Archive): Always set Display True for the first object |
| file. Call Display_Command with Ellipse set to True. |
| |
| 2006-10-31 Matt Heaney <heaney@adacore.com> |
| |
| * a-crbtgo.ads: Commented each subprogram |
| |
| * a-crbtgo.adb: Added reference to book from which algorithms were |
| adapted. |
| |
| * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to |
| indicate which child. |
| (Generic_Conditional_Insert): changed parameter name from "Success" to |
| "Inserted". |
| (Generic_Unconditional_Insert_With_Hint): improved algorithm |
| |
| * a-coorse.adb (Replace_Element): changed parameter name in call to |
| conditional insert operation. |
| |
| * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment |
| |
| * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in |
| Generic_Iteration |
| |
| * a-ciorse.adb (Replace_Element): changed parameter name in call to |
| conditional insert operation. |
| |
| * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in |
| Generic_Iteration. |
| |
| * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in |
| instead of mode inout. |
| |
| * a-chtgop.adb (Adjust): modified comments to reflect current AI-302 |
| draft |
| (Generic_Read): preserve existing buckets array if possible |
| (Generic_Write): don't send buckets array length anymore |
| |
| * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in |
| instead of mode inout. |
| |
| * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets |
| (Iterate): manipulate busy-bit here, instead of in Generic_Iteration |
| |
| * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets |
| (Iterate): manipulate busy-bit here, instead of in Generic_Iteration |
| (Replace_Element): local operation is now an instantiation |
| |
| * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually |
| check current length. |
| (Generic_Replace_Element): new operation |
| |
| 2006-10-31 Doug Rupp <rupp@adacore.com> |
| |
| * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function. |
| Call TBK$SYMBOLIZE without omitting parameters. |
| |
| 2006-10-31 Vincent Celier <celier@adacore.com> |
| |
| * symbols-processing-vms-ia64.adb, |
| symbols-processing-vms-alpha.adb (Process): Do not include symbols |
| that come from generic instantiations in bodies. |
| |
| 2006-10-31 Pat Rogers <rogers@adacore.com> |
| |
| * a-rttiev.ads, a-rttiev.adb: |
| This is a significant redesign primarily for the sake of automatic |
| timer task termination but also to fix a design flaw. |
| Therefore we are now using an RTS lock, instead of a protected |
| object, to provide mutual exclusion to the queue of pending events |
| and the type Timing_Event is no longer a protected type. |
| |
| 2006-10-31 Robert Dewar <dewar@adacore.com> |
| Cyrille Comar <comar@adacore.com> |
| Ben Brosgol <brosgol@adacore.com> |
| |
| * debug.adb: Update flags documentation |
| |
| * gnat_ugn.texi: Add documentation for new -gnatwq switch |
| Clean up documentation for several other warning switches |
| Clarify how task stack size can be specified with various |
| versions of Windows. |
| Add note that -gnatVo includes ranges including loops |
| Add documentation for -gnatL switch |
| Add note on elaboration warning for initializing variables |
| Add documentation for new -gnatwt warning switch |
| Document new form of pragma Warnings (On|Off, string) |
| Add comment on use of pragma Warnings to control warnings |
| Add documentation for -gnatjnn switch |
| Modify section on interfacing with C for VMS 64-bit. |
| Add doc for -gnatVe/E |
| Add documentation of new warning flags -gnatww/-gnatwW |
| Add warnings about address clause overlays to list of warnings |
| (Exception Handling Control): Document that the option --RTS must be |
| used consistently for gcc and gnatbind. |
| Clarify that inlining is not always possible |
| Update documentation on pragma Unchecked_Union. |
| |
| * gnat_rm.texi: |
| Add documentation for new extended version of pragma Obsolescent |
| Add documentation for implementation defined attribute 'Stub_Type. |
| Add note on use of Volatile in asm statements |
| Add documentation on use of pragma Unreferenced in context clause |
| Document new form of pragma Warnings (On|Off, pattern) |
| Document pragma Wide_Character_Encoding |
| Add note that pragma Restrictions (No_Elaboration_Code) is only fully |
| enforced if code generation is active. |
| Add section on pragma Suppress to document GNAT specific check |
| Alignment_Check |
| Clarify difference between No_Dispatching_Calls & No_Dispatch. |
| Add documentation for pragma Restrictions (No_Elaboration_Code) |
| |
| * gnat-style.texi: |
| Add comments on layout of subprogram local variables in the |
| presence of nested subprograms. |
| |
| * ug_words: Resync. |
| |
| * elists.ads: Minor reformatting |
| Node returns Node_Or_Entity_Id (doc change only) |
| |
| * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION |
| |
| * g-arrspl.ads (Create): Update comments. |
| |
| * sem.ads: Add details on the handling of the scope stack. |
| |
| * usage.adb: Update documentation. |
| |
| * validsw.ads, validsw.adb: |
| Add definition of Validity_Check_Components and implement -gnatVe/E |
| |
| * vms_data.ads: Add missing VMS qualifiers. |
| |
| * s-addope.ads: Add documentation on overflow and divide by zero |
| |
| 2006-10-31 Robert Dewar <dewar@adacore.com> |
| Thomas Quinot <quinot@adacore.com> |
| Arnaud Charlet <charlet@adacore.com> |
| |
| * fmap.adb: Put routines in alpha order |
| |
| * g-boumai.ads: Remove redundant 'in' keywords |
| |
| * g-cgi.adb: Minor reformatting |
| |
| * g-cgi.ads: Remove redundant 'in' keywords |
| |
| * get_targ.adb: Put routines in alpha order |
| |
| * prj-attr.ads: Minor reformatting |
| |
| * s-atacco.ads: Minor reformatting |
| |
| * scn.adb: Put routines in alpha order |
| |
| * sinput-l.adb: Minor comment fix |
| |
| * sinput-p.adb: Minor comment fix |
| |
| * s-maccod.ads: Minor reformatting |
| |
| * s-memory.adb: Minor reformatting |
| |
| * s-htable.adb: Fix typo in comment. |
| |
| * s-secsta.adb: Minor comment update. |
| |
| * s-soflin.adb: Minor reformatting |
| |
| * s-stoele.ads: |
| Add comment about odd qualification in Storage_Offset declaration |
| |
| * s-strxdr.adb: |
| Remove unnecessary 'in' keywords for formal parameters. |
| |
| * treeprs.adt: Minor reformatting |
| |
| * urealp.adb: Put routines in alpha order |
| |
| * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version |
| taking string. |
| |
| * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords |
| |
| * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords |
| |
| * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so |
| workaround as on other platforms. |
| |
| * g-eacodu-vms.adb: Remove redundant 'in' keywords |
| * g-expect-vms.adb: Remove redundant 'in' keywords |
| |
| * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a |
| clear error message if the list-of-files file cannot be opened. |
| |
| * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the |
| equality operator is always visible. |
| |
| * lang.opt: Woverlength-strings: New option. |
| |
| * nmake.adt: |
| Update copyright, since nmake.ads and nmake.adb have changed. |
| |
| * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function . |
| (Binder_Output_Time_Stamps_Set): removed. |
| (Old_Binder_Output_Time_Stamp): idem. |
| (New_Binder_Output_Time_Stamp): idem. |
| (Recording_Time_From_Last_Bind): idem. |
| (Recording_Time_From_Last_Bind): Make constant. |
| |
| * output.ads, output.adb (Write_Str): Allow LF characters |
| (Write_Spaces): New procedure |
| |
| * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100% |
| |
| * inline.adb: Minor reformatting |
| |
| * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords |
| |
| * s-mastop-vms.adb: Remove redundant 'in' keywords |
| |
| * s-osprim-vms.adb: Remove redundant 'in' keywords |
| |
| * s-trafor-default.adb: Remove redundant 'in' keywords |
| |
| * 9drpc.adb: Remove redundant 'in' keywords |
| |
| * s-osinte-mingw.ads: Minor reformatting |
| |
| * s-inmaop-posix.adb: Minor reformatting |
| |
| * a-direio.ads: Remove quotes from Compile_Time_Warning message |
| |
| * a-exexda.adb: Minor code reorganization |
| |
| * a-filico.adb: Minor reformatting |
| |
| * a-finali.adb: Minor reformatting |
| |
| * a-nudira.ads: Remove quote from Compile_Time_Warning message |
| |
| * a-numeri.ads: Minor reformatting |
| |
| * a-sequio.ads: Remove quotes from Compile_Time_Warning message |
| |
| * exp_pakd.ads: Fix obsolete comment |
| |
| * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb, |
| a-wtenio.adb (Put): Avoid assuming low bound of string is 1. |
| Probably not a bug, but certainly neater and more efficient. |
| |
| * a-tienio.adb: Minor reformatting |
| |
| * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start |
| Avoid assuming low bound of string is 1. |
| |
| * gnatbind.adb: Change Bindusg to package and rename procedure as |
| Display, which now ensures that it only outputs usage information once. |
| (Scan_Bind_Arg): Avoid assuming low bound of string is 1. |
| |
| * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by |
| Table'First. |
| |
| * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill |
| warning. |
| (Match): Add pragma Assert to ensure that Matches'First is zero |
| |
| * g-regpat.ads (Match): Document that Matches lower bound must be zero |
| |
| * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check |
| documented preconditions (also kills warnings about bad indexes). |
| |
| * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First |
| is 1. |
| (Build_Import_Library): Ditto; |
| |
| * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1 |
| |
| * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1. |
| |
| * sem_case.adb (Analyze_Choices): Add pragma Assert to check that |
| lower bound of choice table is 1. |
| |
| * sem_case.ads (Analyze_Choices): Document that lower bound of |
| Choice_Table is 1. |
| |
| * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of |
| string is 1. |
| |
| * uintp.adb (Init_Operand): Document that low bound of Vec is always 1, |
| and add appropriate Assert pragma to suppress warnings. |
| |
| * atree.h, atree.ads, atree.adb |
| Change Elist24 to Elist25 |
| Add definitions of Field28 and Node28 |
| (Traverse_Field): Use new syntactic parent table in sinfo. |
| |
| * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only |
| |
| * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only |
| |
| * exp_tss.adb: Put routines in alpha order |
| |
| * fe.h: Remove redundant declarations. |
| |
| 2006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> |
| |
| * 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 <bmoses@stanford.edu> |
| |
| * Makefile.in: Add TEXI2PDF definition. |
| * Make-lang.in: Add "ada.pdf" target. |
| |
| 2006-10-03 Kazu Hirata <kazu@codesourcery.com> |
| |
| * decl.c, utils.c: Fix comment typos. |
| * utils.c: Fix a typo. |
| |
| 2006-09-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * decl.c (gnat_to_gnu_entity) <E_Procedure>: 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 <laurent@guerby.net> |
| |
| PR ada/28716 |
| g-socket.adb (Bind_Socket): Call Set_Address. |
| |
| 2006-09-15 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/15802 |
| * decl.c (same_discriminant_p): New static function. |
| (gnat_to_gnu_entity) <E_Record_Type>: 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 <roger@eyesopen.com> |
| |
| 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 <hainque@adacore.com> |
| |
| PR ada/29025 |
| * trans.c (gnat_gimplify_expr) <ADDR_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 <ebotcazou@adacore.com> |
| |
| 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 <ebotcazou@adacore.com> |
| |
| 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 <reichelt@igpm.rwth-aachen.de> |
| |
| * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies. |
| |
| 2006-06-23 Olivier Hainque <hainque@adacore.com> |
| |
| * 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 <phython@gcc.gnu.org> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR ada/18692 |
| * Make-lang.in: Add check-gnat to lang_checks. Rename existing |
| check-gnat into check-acats. |
| |
| 2006-06-17 Karl Berry <karl@gnu.org> |
| |
| * gnat-style.texi (@dircategory): Use "Software development" |
| instead of "Programming", following the Free Software Directory. |
| |
| 2006-06-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR ada/27944 |
| * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'. |
| |
| 2006-06-06 Laurent Guerby <laurent@guerby.net> |
| |
| PR ada/27769 |
| mlib-utl.adb: Use Program_Name. |
| |
| 2006-05-28 Kazu Hirata <kazu@codesourcery.com> |
| |
| * 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 <setton@adacore.com> |
| |
| * misc.c (gnat_dwarf_name): New function. |
| (LANG_HOOKS_DWARF_NAME): Define to it. |
| |
| 2006-05-14 H.J. Lu <hongjiu.lu@intel.com> |
| |
| * 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 <aurel32@debian.org> |
| |
| * Makefile.in: Add Ada support for GNU/kFreeBSD. |
| * s-osinte-kfreebsd-gnu.ads: New file. |
| |
| 2006-03-29 Carlos O'Donell <carlos@codesourcery.com> |
| |
| * Make-lang.in: Rename docdir to gcc_docdir. |
| |
| 2006-03-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * 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 <kenner@vlsi1.ultra.nyu.edu> |
| |
| * uintp.adb (Num_Bits): Handle Uint_Int_First specially. |
| |
| 2006-03-02 Richard Sandiford <richard@codesourcery.com> |
| |
| * 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 <rafael.espindola@gmail.com> |
| |
| * Make-lang.in (Ada): Remove. |
| (.PHONY): Remove Ada |
| |
| 2006-02-17 Ed Schonberg <schonberg@adacore.com> |
| |
| * 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 <botcazou@adacore.com> |
| |
| 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 <ruiz@adacore.com> |
| |
| * 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 <miranda@adacore.com> |
| Robert Dewar <dewar@adacore.com> |
| |
| * 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 <schonberg@adacore.com> |
| |
| * 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 <schonberg@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * 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 <fofanov@adacore.com> |
| |
| * 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 <fofanov@adacore.com> |
| |
| * 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 <schonberg@adacore.com> |
| |
| * 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 <schonberg@adacore.com> |
| |
| * 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 <miranda@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| |
| * 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 <schonberg@adacore.com> |
| |
| * 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 <miranda@adacore.com> |
| |
| * 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 <celier@adacore.com> |
| |
| * 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 <heaney@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * 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 <fernandez@adacore.com> |
| Thomas Quinot <quinot@adacore.com> |
| Robert Dewar <dewar@adacore.com> |
| Javier Miranda <miranda@adacore.com> |
| |
| * 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 <ebotcazou@adacore.com> |
| |
| * env.c (__gnat_setenv): Use size_t. |
| (__gnat_unsetenv): Likewise. |
| (__gnat_clearenv): Likewise. |
| |
| 2006-02-16 Arnaud Charlet <charlet@adacore.com> |
| |
| * opt.ads (Ada_Version_Default): Set to Ada 2005 by default. |
| |
| 2006-02-13 Arnaud Charlet <charlet@adacore.com> |
| |
| * 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 <ruiz@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * 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 <kirtchev@adacore.com> |
| |
| * 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 <charlet@adacore.com> |
| |
| * 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 <obry@adacore.com> |
| |
| * 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 <obry@adacore.com> |
| |
| * 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 <setton@adacore.com> |
| |
| * 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 <obry@adacore.com> |
| Nicolas Roche <roche@adacore.com> |
| Arnaud Charlet <charlet@adacore.com> |
| |
| * 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 <kenner@vlsi1.ultra.nyu.edu> |
| Olivier Hainque <hainque@adacore.com> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| * 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) <E_Signed_Integer_Subtype, |
| E_Floating_Point_Subtype>: 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) <E_Variable>: 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 <charlet@adacore.com> |
| Robert Dewar <dewar@adacore.com> |
| |
| * 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 <quinot@adacore.com> |
| Vincent Celier <celier@adacore.com> |
| Robert Dewar <dewar@adacore.com> |
| |
| * 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 <charlet@adacore.com> |
| |
| * 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 <charlet@adacore.com> |
| |
| * 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 <heaney@adacore.com> |
| |
| * 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 <heaney@adacore.com> |
| |
| * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of |
| quicksort. |
| |
| 2006-02-13 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * 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 <roche@adacore.com> |
| |
| * a-envvar.adb, a-envvar.ads: New files. |
| |
| 2006-02-13 Douglas Rupp <rupp@adacore.com> |
| |
| * 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 <rogers@adacore.com> |
| |
| * a-rttiev.adb, a-rttiev.ads: New files. |
| |
| 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * 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 <bosch@adacore.com> |
| Gary Dismukes <dismukes@adacore.com> |
| |
| * 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 |
| * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid |
| layout is requested. |
| |
| 2006-02-13 Vincent Celier <celier@adacore.com> |
| |
| * 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 <brobecke@adacore.com> |
| |
| * 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 <celier@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| * 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 <ebotcazou@adacore.com> |
| |
| * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has |
| wrapped around. |
| |
| 2006-02-13 Vincent Celier <celier@adacore.com> |
| |
| * 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 <schonberg@adacore.com> |
| Thomas Quinot <quinot@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| Vincent Celier <celier@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| Serguei Rybin <rybin@adacore.com> |
| |
| * 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 <miranda@adacore.com> |
| Robert Dewar <dewar@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| |
| * 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 <ochem@adacore.com> |
| Olivier Hainque <hainque@adacore.com> |
| |
| * 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) <alpha-vms case>: 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 <schonberg@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * 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 <miranda@adacore.com> |
| Gary Dismukes <dismukes@adacore.com> |
| |
| * 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 <quinot@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| |
| * 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 <schonberg@adacore.com> |
| |
| * 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 <schonberg@adacore.com> |
| Javier Miranda <miranda@adacore.com> |
| Robert Dewar <dewar@adacore.com> |
| Gary Dismukes <dismukes@adacore.com> |
| |
| * 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 <schonberg@adacore.com> |
| Hristian Kirtchev <kirtchev@adacore.com> |
| |
| * 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 <miranda@adacore.com> |
| |
| * 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 <schonberg@adacore.com> |
| |
| * 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 <obry@adacore.com> |
| |
| * 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 <dewar@adacore.com> |
| |
| * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze |
| call. |
| |
| 2006-02-13 Thomas Quinot <quinot@adacore.com> |
| |
| * exp_pakd.ads: Fix typos in comments. |
| |
| * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed |
| array reference that is an explicit dereference, mark the converted |
| (packed) array reference as analyzed to prevent a forthcoming |
| reanalysis from resetting its type to the original (non-packed) array |
| type. |
| |
| 2006-02-13 Ed Schonberg <schonberg@adacore.com> |
| Javier Miranda <miranda@adacore.com> |
| Eric Botcazou <ebotcazou@adacore.com> |
| |
| * exp_util.ads, exp_util.adb (Find_Prim_Op, |
| Is_Predefined_Primitive_Operation): When |
| searching for the predefined equality operator, verify that operands |
| have the same type. |
| (Is_Predefined_Dispatching_Operation): Remove the code that looks |
| for the last entity in the list of aliased subprograms. This code |
| was wrong in case of renamings. |
| (Set_Renamed_Subprogram): New procedure |
| (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the |
| Exp_Type constant computed when entering this subprogram. |
| (Known_Null): New function |
| (OK_To_Do_Constant_Replacement): New function |
| (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag |
| (Side_Effect_Free): An attribute reference 'Input is not free of |
| side effect, unlike other attributes that are functions. (from code |
| reading). |
| (Remove_Side_Effects): Expressions that involve packed arrays or records |
| are copied at the point of reference, and therefore must be marked as |
| renamings of objects. |
| (Is_Predefined_Dispatching_Operation): Return false if the operation is |
| not a dispatching operation. |
| |
| PR ada/18819 |
| (Remove_Side_Effects): Lift enclosing type conversion nodes for |
| elementary types in all cases. |
| |
| 2006-02-13 Javier Miranda <miranda@adacore.com> |
| |
| * freeze.adb (Freeze_Entity): Handle subtypes of protected types and |
| task types when accessing to the corresponding record type. |
| Remove '!' in warning message. |
| |
| 2006-02-13 Olivier Hainque <hainque@adacore.com> |
| |
| * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment), |
| to avoid useless and space inefficient overalignments on targets where |
| Max_Alignment is larger than 16. |
| |
| 2006-02-13 Pascal Obry <obry@adacore.com> |
| |
| * g-catiio.adb (Sec_Number): New type used to compute the number of |
| seconds since 1-1-1970. |
| (Image) [Natural]: The parameter was an Integer, as we can't deal with |
| negative numbers (years, months...) it is better to have a Natural here. |
| Code clean-up. |
| (Image) [Number]: Change parameter from Long_Integer to Number. |
| (Image): Use Number type to compute the seconds since 1-1-1970 to fix an |
| overflow for dates past year 2038. |
| |
| 2006-02-13 Matthew Heaney <heaney@adacore.com> |
| |
| * g-dyntab.adb (Index_Of): conversion from Natural can no longer raise |
| Constraint_Error. |
| |
| 2006-02-13 Arnaud Charlet <charlet@adacore.com> |
| |
| * 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 <celier@adacore.com> |
| |
| * gnatcmd.adb (Rules_Switches): New table |
| (Add_To_Rules_Switches): New procedure |
| (GNATCmd): For command CHECK, put all options following "-rules" in the |
| Rules_Switches table. Append these -rules switches after the -cargs |
| switches. |
| |
| 2006-02-13 Robert Dewar <dewar@adacore.com> |
| |
| * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM): |
| These two cases were generating incorrect output, and if this unit |
| was built with checks on, generated a discriminant mismatch constraint |
| error. |
| |
| 2006-02-13 Ed Schonberg <schonberg@adacore.com> |
| Robert Dewar <dewar@adacore.com> |
| |
| * lib-xref.adb (Get_Type_Reference): For a private type whose full |
| view is an array type, indicate the component type as well, for |
| navigation purposes. |
| (Generate_Reference): Don't consider array ref on LHS to be a case |
| of violating pragma Unreferenced. |
| Do not give Ada 2005 warning except on real reference. |
| |
| 2006-02-13 Vincent Celier <celier@adacore.com> |
| |
| * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the |
| main source, add switch -mdebug-main=_ada_ so that the executable can |
| be debugged by the standard VMS debugger. |
| (Gnatmake): Set No_Main_Subprogram to True when there is no main |
| subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly. |
| Exit the Multi_Main_Loop when Unique_Compile is True after compilation |
| of the last source, as the binding and linking phases are never |
| performed. |
| Set all executable obsolete when rebuilding a library. |
| |
| * makeutl.adb (Linker_Options_Switches): Do not process empty linker |
| options. |
| |
| 2006-02-13 Javier Miranda <miranda@adacore.com> |
| |
| PR ada/23973 |
| * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the |
| code to improve the error message reported when the program has |
| declarations of abstract interface types and it is not compiled with |
| the -gnat05 switch. |
| (P_Access_Definition): Reorganize the code to improve the error |
| message reported when the new Ada 2005 syntax for anonymous |
| access types is used and the program is not compiled with the |
| -gnat05 switch. |
| |
| 2006-02-13 Robert Dewar <dewar@adacore.com> |
| |
| * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb, |
| stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch |
| (MODE_IN) |
| |
| 2006-02-13 Javier Miranda <miranda@adacore.com> |
| |
| * par-endh.adb (Explicit_Start_Label): Add code to protect the parser |
| against source containing syntax errors. |
| |
| 2006-02-13 Vincent Celier <celier@adacore.com> |
| |
| * prj.adb (Reset): Initialize the first element of table Namings with |
| the standard naming data. |
| |
| 2006-02-13 Vincent Celier <celier@adacore.com> |
| |
| * prj.ads (Error_Warning): New enumeration type |
| |
| * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is |
| unknown, use the location of the project to report the error. |
| (When_No_Sources): New global variable |
| (Report_No_Ada_Sources): New procedure |
| (Check): New parameter When_No_Sources. Set value of global variable |
| When_No_Sources, |
| (Find_Sources): Call Report_No_Ada_Sources when appropriate |
| (Get_Sources_From_File): Ditto |
| (Warn_If_Not_Sources): Better warning messages indicating the unit name |
| and the file name. |
| |
| * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources. |
| Call Prj.Proc.Process with parameter When_No_Sources. |
| |
| * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources. |
| Call Recursive_Check with parameter When_No_Sources. |
| (Recursive_Check): New parameter When_No_Sources. Call itself and |
| Prj.Nmsc.Check with parameter When_No_Sources. |
| (Process): New parameter When_No_Sources. Call Check with parameter |
| When_No_Sources. |
| (Copy_Package_Declarations): New procedure to copy renamed parameters |
| and setting the location of the declared attributes to the location |
| of the renamed package. |
| (Process_Declarative_Items): Call Copy_Package_Declarations for renamed |
| packages. |
| |
| 2006-02-13 Vincent Celier <celier@adacore.com> |
| |
| * prj-makr.adb (Make): Preserve the comments from the original project |
| file. |
| When removing nodes (attributes Source_Dirs, Source_Files, |
| Source_List_File and package Naming), save the comments and attach the |
| saved comments to the newly created nodes. |
| Do not add a with clause for the naming package if one already exists. |
| |
| 2006-02-13 Javier Miranda <miranda@adacore.com> |
| Gary Dismukes <dismukes@adacore.com> |
| Robert Dewar <dewar@adacore.com> |
| |
| * restrict.ads (No_Dispatching_Calls): New GNAT restriction. |
| |
| * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of |
| aliased entities to look for the overriden abstract interface |
| subprogram. |
| (Is_Interface_Subprogram): Complete documentation. |
| (Check_Dispatching_Operation): Do not generate code to register the |
| operation in the dispatch table if the source is compiled with |
| restriction No_Dispatching_Calls. |
| (Override_Dispatching_Operation): Check for illegal attempt to override |
| No_Return procedure with procedure that is not No_Return |
| (Check_Dispatching_Call): Suppress the check for an abstract operation |
| when the original node of an actual is a tag-indeterminate attribute |
| call, since the attribute, which must be 'Input, can never be abstract. |
| (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a |
| call to the Input attribute (even when rewritten). |
| (Propagate_Tag): Augment comment to indicate the possibility of a call |
| to an Input attribute. |
| |
| * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow |
| calling it from Exp_Ch3.Make_Controlling_Function_Wrappers. |
| |
| * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction. |
| No_Wide_Characters is no longer partition-wide |
| No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257) |
| rather than GNAT |
| |
| 2006-02-13 Douglas Rupp <rupp@adacore.com> |
| |
| * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type. |
| |
| 2006-02-13 Javier Miranda <miranda@adacore.com> |
| |
| * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that |
| handles default-initialized components to keep separate the management |
| of this feature but also avoid the unrequired resolution and |
| expansion of components that do not have partially initialized |
| values. |
| (Collect_Aggr_Bounds): Add '\' in 2-line warning message. |
| (Check_Bounds): Likewise. |
| (Check_Length): Likewise. |
| |
| 2006-02-13 Javier Miranda <miranda@adacore.com> |
| Ed Schonberg <schonberg@adacore.com> |
| |
| * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an |
| abstract interface type call analyze_and_resolve to expand the type |
| conversion into the corresponding displacement of the |
| reference to the base of the object. |
| (Eval_Attribute, case Width): For systems where IEEE extended precision |
| is supported, the maximum exponent occupies 4 decimal digits. |
| (Accessibility_Message): Add '\' in 2-line warning message. |
| (Resolve_Attribute): Likewise. |
| (case Attribute_Access): Significantly revise checks |
| for illegal access-to-subprogram Access attributes to properly enforce |
| the rules of 3.10.2(32/2). |
| Diagnose use of current instance with an illegal attribute. |
| |
| * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal |
| to a Node_Id. |
| (Enclosing_Generic_Unit): New function to return a node's inne
|