aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8/gcc/ada/ChangeLog-2006
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.8/gcc/ada/ChangeLog-2006')
-rw-r--r--gcc-4.8/gcc/ada/ChangeLog-20064462
1 files changed, 0 insertions, 4462 deletions
diff --git a/gcc-4.8/gcc/ada/ChangeLog-2006 b/gcc-4.8/gcc/ada/ChangeLog-2006
deleted file mode 100644
index b43e0106f..000000000
--- a/gcc-4.8/gcc/ada/ChangeLog-2006
+++ /dev/null
@@ -1,4462 +0,0 @@
-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 innermost
- enclosing generic declaration node.
- (Compile_Time_Constraint_Error): Remove '!' in warning messages.
- (Type_Access_Level): The accessibility level of anonymous acccess types
- associated with discriminants is that of the current instance of the
- type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
- (Compile_Time_Constraint_Error): Handle case of conditional expression.
- (Kill_Current_Values_For_Entity): New function
- (Enter_Name): Change formal type to Entity_Id
-
-2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
- Ed Schonberg <schonberg@adacore.com>
- Gary Dismukes <dismukes@adacore.com>
-
- * sem_ch10.adb (Check_Redundant_Withs): New procedure in
- Analyze_Compilation_Unit.
- Detect and warn on redundant with clauses detected in a package spec
- and/or body when -gnatwr is used.
- (Analyze_Context): Analyze config pragmas before other items
- (Install_Context_Items): Don't analyze config pragmas here
- (Install_Limited_Withed_Unit): Set limited entity of package in
- with_clause so that cross-reference information or warning messages on
- unused packages can be properly generated
- (Is_Visible_Through_Renamings): Return false if the limited_with_clause
- has Error_Posted set. Prevent infinite loops in illegal programs.
- (Check_Private_Child_Unit): Move test for a nonprivate with clause down
- to the point of the error test requiring the current unit to be private.
- This ensures that private with clauses are not exempted from the basic
- checking for being a descendant of the same library unit parent as a
- withed private descendant unit.
- (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
- handle private with clauses properly, as well as to account for cases
- where the withed unit is a public descendant of a private ancestor
- (in which case the current unit must be a descendant of the private
- ancestor's parent). The spec comments were updated accordingly. Also,
- the old error message in this subprogram was replaced with error
- messages that mirror the errors tested and reported by
- Check_Private_Child_Unit.
- Parameter and variable names improved for readability.
- (Install_Limited_Context_Clauses): Remove test for a withed unit being
- private as the precondition for calling
- Check_Private_Limited_Withed_Unit since that subprogram has been
- revised to test public units as well as private units.
-
-2006-02-13 Thomas Quinot <quinot@adacore.com>
- Robert Dewar <dewar@adacore.com>
- Ed Schonberg <schonberg@adacore.com>
- Javier Miranda <miranda@adacore.com>
-
- * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
- that Scope_Stack.First = 1.
- Properly handle Ada_Version_Explicit and Ada_Version_Config, which
- were not always properly handled previously.
- (Formal_Entity): Complete rewrite, to handle properly some complex case
- with multiple levels of parametrization by formal packages.
- (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
- to the corresponding derived type declaration for proper semantics.
-
- * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
- (Check_Component): Enforce restriction on components of
- unchecked_unions: a component in a variant cannot contain tasks or
- controlled types.
- (Unchecked_Union): Allow nested variants and multiple discriminants, to
- conform to AI-216.
- Add pragma Ada_2005 (synonym for Ada_05)
- Properly handle Ada_Version_Explicit and Ada_Version_Config, which
- were not always properly handled previously.
- Document that pragma Propagate_Exceptions has no effect
- (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
- (Set_Convention_From_Pragma): Check that if a convention is
- specified for a dispatching operation, then it must be
- consistent with the existing convention for the operation.
- (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
- longer required to specify an vtable-ptr component in the record. For
- compatibility reasons we leave the support for the previous definition.
- (Analyze_Pragma, case No_Return): Allow multiple arguments
-
- * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
- non-overrideen inherited operation with a controlling result as
- illegal only its implicit declaration comes from the derived type
- declaration of its result's type.
- (Check_Possible_Deferred_Completion): Relocate the object definition
- node of the subtype indication of a deferred constant completion rather
- than directly analyzing it. The analysis of the generated subtype will
- correctly decorate the GNAT tree.
- (Record_Type_Declaration): Check whether this is a declaration for a
- limited derived record before analyzing components.
- (Analyze_Component_Declaration): Diagnose record types not explicitly
- declared limited when a component has a limited type.
- (Build_Derived_Record_Type): Code reorganization to check if some of
- the inherited subprograms of a tagged type cover interface primitives.
- This check was missing in case of a full-type associated with a private
- type declaration.
- (Constant_Redeclaration): Check that the subtypes of the partial and the
- full view of a constrained deferred constant statically match.
- (Mentions_T): A reference to the current type in an anonymous access
- component declaration must be an entity name.
- (Make_Incomplete_Type_Declaration): If type is tagged, set type of
- class_wide type to refer to full type, not to the incomplete one.
- (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
- available. Required to give support to the certified run-time.
- (Analyze_Component_Declaration): In case of anonymous access components
- perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
- (Process_Discriminants): For an access discriminant, use the
- discriminant specification as the associated_node_for_itype, to
- simplify accessibility checks.
-
-2006-02-13 Ed Schonberg <schonberg@adacore.com>
- Javier Miranda <miranda@adacore.com>
-
- * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
- abstract interpretations on an operator, remove interpretations that
- yield Address or a type derived from it, if one of the operands is an
- integer literal.
- (Try_Object_Operation.Try_Primitive_Operation,
- Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
- location when creating the new reference to a primitive or class-wide
- operation as a part of rewriting a subprogram call.
- (Try_Primitive_Operations): If context requires a function, collect all
- interpretations after the first match, because there may be primitive
- operations of the same type with the same profile and different return
- types. From code reading.
- (Try_Primitive_Operation): Use the node kind to choose the proper
- operation when a function and a procedure have the same parameter
- profile.
- (Complete_Object_Operation): If formal is an access parameter and prefix
- is an object, rewrite as an Access reference, to match signature of
- primitive operation.
- (Find_Equality_Type, Find_One_Interp): Handle properly equality given
- by an expanded name with prefix Standard, when the operands are of an
- anonymous access type.
- (Remove_Abstract_Operations): If the operation is abstract because it is
- inherited by a user-defined type derived from Address, remove it as
- well from the set of candidate interpretations of an overloaded node.
- (Analyze_Membership_Op): Membership test not applicable to cpp-class
- types.
-
-2006-02-13 Bob Duff <duff@adacore.com>
-
- * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
- redundant use clauses.
- In particular, if the scope of two use clauses overlaps, but one is not
- entirely included in the other, we should not warn. This can happen
- with nested packages.
- (Analyze_Subprogram_Renaming): Protect the compiler against previously
- reported errors. The bug was reported when the compiler was built
- with assertions enabled.
- (Find_Type): If the node is a 'Class reference and the prefix is a
- synchronized type without a corresponding record, return the type
- itself.
-
-2006-02-13 Javier Miranda <miranda@adacore.com>
-
- * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
- if this is the full-declaration associated with a private declaration
- that implement interfaces, then the private type declaration must be
- limited.
- (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
- as aliased. The use of the 'access attribute is not available for such
- object (for this purpose the object should be explicitly marked as
- aliased, but being an anonymous type this is not possible).
-
-2006-02-13 Ed Schonberg <schonberg@adacore.com>
- Robert Dewar <dewar@adacore.com>
-
- * sem_elab.adb (Same_Elaboration_Scope): A package that is a
- compilation unit is an elaboration scope.
- (Add_Task_Proc): Add '\' in 2-line warning message.
- (Activate_All_Desirable): Deal with case of unit with'ed by parent
-
-2006-02-13 Ed Schonberg <schonberg@adacore.com>
- Javier Miranda <miranda@adacore.com>
-
- * sem_type.adb (Write_Overloads): Improve display of candidate
- interpretations.
- (Add_One_Interp): Do not add to the list of interpretations aliased
- entities corresponding with an abstract interface type that is an
- immediate ancestor of a tagged type; otherwise we have a dummy
- conflict between this entity and the aliased entity.
- (Disambiguate): The predefined equality on universal_access is not
- usable if there is a user-defined equality with the proper signature,
- declared in the same declarative part as the designated type.
- (Find_Unique_Type): The universal_access equality operator defined under
- AI-230 does not cover pool specific access types.
- (Covers): If one of the types is a generic actual subtype, check whether
- it matches the partial view of the other type.
-
-2006-02-13 Thomas Quinot <quinot@adacore.com>
-
- * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
- line. This is necessary to allow In_Extended_Main_Unit to provide
- correct results for itypes while writing out expanded source.
- (Close_File): No need to update the source_index_table here since it's
- now done for each line.
-
-2006-02-13 Ed Schonberg <schonberg@adacore.com>
- Robert Dewar <dewar@adacore.com>
-
- * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
- preserve the source unit where the itype is declared, and prevent a
- backend abort.
- (Note_Implicit_Run_Time_Call): New procedure
- (Write_Itype): Handle missing cases (E_Class_Wide_Type and
- E_Subprogram_Type)
-
- * sprint.ads: Document use of $ for implicit run time routine call
-
-2006-02-13 Quentin Ochem <ochem@adacore.com>
-
- * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
- task name.
-
-2006-02-13 Bob Duff <duff@adacore.com>
-
- * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
- Scan_Unsigned, so we do not scan leading blanks and sign twice.
- Integer'Value("- 5") and Integer'Value("-+5") now correctly
- raise Constraint_Error.
-
- * s-vallli.adb (Scan_Long_Long_Integer): Call
- Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
- do not scan leading blanks and sign twice.
- Integer'Value("- 5") and Integer'Value("-+5") now correctly
- raise Constraint_Error.
-
- * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
- Scan_Long_Long_Unsigned): Split out most of the processing from
- Scan_Long_Long_Unsigned out into
- Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
- This prevents scanning leading blanks and sign twice.
- Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
- See RM-3.5(44).
-
- * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
- out most of the processing from Scan_Unsigned out into
- Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
- This prevents scanning leading blanks and sign twice.
-
- * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
- use with Modular'Value attribute.
- (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
- attribute.
-
-2006-02-13 Robert Dewar <dewar@adacore.com>
-
- * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
-
-2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
-
- * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
- (PPC VxWorks): Likewise.
- (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
- (forced_callee): Make non-inlinable and non-pure.
- (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
-
-2006-02-13 Arnaud Charlet <charlet@adacore.com>
- Ben Brosgol <brosgol@adacore.com>
- Robert Dewar <dewar@adacore.com>
-
- * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
- support.
- Document that gnatbind -M option is for cross environments only.
- Added description of using gnatmem to trace gnat rtl allocs and deallocs
- Add note on use of $ to label implicit run time calls
- Add documentation for -gnatyI (check mode IN)
- Updated chapter on compatibility with HP Ada
- VMS-oriented edits.
- Ran spell and corrected errors
- Add documentation for gnatbind -d and rework documentation of -D
- at the same time.
- Add subprogram/data elimination section.
- Minor editing of annex A.
- Add section for gnatcheck.
- Add documentation for restriction No_Dispatching_Calls
- Add documentation for pragma Ada_2005
- Remove mention of obsolete pragma Propagate_Exceptions
- Document that pragma Unreferenced can appear after DO in ACCEPT
- Clarify Pure_Function for library level units
- Mention Max/Min in connection with No_Implicit_Conditionals
- No_Wide_Characters restriction is no longer partition-wide
- Add a nice example for Universal_Literal_String attribute
- Document that pragma No_Return can take multiple arguments
-
- * ug_words: Added entry for gnatcheck
-
- * g-ctrl_c.ads (Install_Handler): Enhance comments
-
- * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
-
- * g-trasym.ads: Add documentation on how to do off line symbolic
- traceback computation.
-
- * s-fatgen.adb: Add comments for Unaligned_Valid
-
- * stand.ads: Fix typo in comment
-
-2006-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
-
- * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
-
-2006-02-06 Roger Sayle <roger@eyesopen.com>
-
- * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
-
-2006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR target/25926
- * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
- implementation that calls __main.
-
-2006-01-25 Peter O'Gorman <peter@pogma.com>
-
- PR bootstrap/25859
- * Makefile.in (GCC_LINK): Remove quotes.
- (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
- or $(GCC_LINK).
-
- (powerpc-darwin): Pass -shared-libgcc when building shared library.
-
-2006-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
-
- PR ada/24533
- * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
-
-
-
-Copyright (C) 2006 Free Software Foundation, Inc.
-
-Copying and distribution of this file, with or without modification,
-are permitted in any medium without royalty provided the copyright
-notice and this notice are preserved.