* gcc-interface/ada-tree.h (DECL_HAS_REP_P): Delete.
* gcc-interface/decl.c (gnat_to_gnu_entity): Add support for extension
of types with unknown discriminants.
(substitute_in_type): Rewrite and restrict to formal substitutions.
* gcc-interface/utils.c (create_field_decl): Do not set DECL_HAS_REP_P.
(update_pointer_to): Update comment.
From-SVN: r146447
2009-04-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Use_One_Package): In an instance, if two
potentially_use_visible and non-overloadable homonyms are available
from the actuals of distinct formal packages, retain the current one,
which was visible in the generic, to prevent spurious visibility
errors.
(End_Use_Package): Restore use_visibility when needed.
2009-04-20 Sergey Rybin <rybin@adacore.com>
* gnat_ugn.texi, vms_data.ads: Update doc.
From-SVN: r146424
2009-04-20 Robert Dewar <dewar@adacore.com>
* checks.ads: Fix documentation of range check handling
2009-04-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Use_One_Type): Use proper entity on warning message for
a redundant use_type clause.
From-SVN: r146422
2009-04-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Analye_Subprogram_Declaration): Code reorganization,
for better handling of null procedures.
(Check_Overriding_Indicator): Do not emit a warning on a missing
overriding indicator on an operator when the type of which the operator
is a primitive is private.
From-SVN: r146421
2009-04-20 Robert Dewar <dewar@adacore.com>
* sem_attr.adb (Eval_Attribute, case Length): Catch more cases where
this attribute can be evaluated at compile time.
(Eval_Attribute, case Range_Length): Same improvement
* sem_eval.ads, sem_eval.adb (Compile_Time_Compare): New procedure
From-SVN: r146420
* cgraph.h (cgraph_node_ptr): New type for vector functions.
(struct cgraph_node_set_def): New type.
(cgraph_node_set) New type. Also declare vector functions.
(struct cgraph_node_set_element_def): New type.
(cgraph_node_set_element): Ditto.
(cgraph_node_set_iterator): New iterator type.
(cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
cgraph_node_set_remove, dump_cgraph_node_set,
debug_cgraph_node_set): New prototypes.
(csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
cgraph_node_set_size): New inlines.
* tree-pass.h (struct cgraph_node_set_def): New decl to avoid
including cgraph.h.
(struct ipa_opt_pass): Add struct cgraph_node_set_def
argument to function 'write_summary'.
* ipa.c: Include ggc.h.
(hash_cgraph_node_set_element,
eq_cgraph_node_set_element, cgraph_node_set_new,
cgraph_node_set_add, cgraph_node_set_remove,
cgraph_node_set_find, dump_cgraph_node_set,
debug_cgraph_node_set): New functions.
* Makefile.in (ipa.o): Add dependency on GGC_H.
From-SVN: r146418
2009-04-20 Bob Duff <duff@adacore.com>
* sem.adb, gnat1drv.adb, debug.adb: Use the -gnatd.W switch to control
debugging output.
2009-04-20 Robert Dewar <dewar@adacore.com>
* sem_attr.adb: Minor reformatting
* gnatcmd.adb: Minor reformatting
From-SVN: r146417
2009-04-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Analyze_User_Defined_Binary_Op): If left operand is
overloaded and one interpretation matches the context, label the
operand with the type of first formal.
2009-04-20 Bob Duff <duff@adacore.com>
* debug.ads: Minor comment fix.
* debug.adb: Minor comment fixes.
2009-04-20 Javier Miranda <miranda@adacore.com>
* rtsfind.ads (RE_Null_Id): New entity of package Ada.Exceptions
* exp_ch6.adb (Expand_Inlined_Call): Undo previous patch.
* exp_ch11.adb (Expand_N_Raise_Statement): When the raise stmt
is expanded into a call to Raise_Exception, avoid passing the
exception-name'identity in runtimes in which this argument
is not used.
From-SVN: r146416
2009-04-20 Jerome Lambourg <lambourg@adacore.com>
* impunit.adb: Add i-cil and i-cilobj packages, now needed by the
generated bindings for cil.
2009-04-20 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Resolve_Record_Aggregate): If the type has unknown
discriminants, collect components from the Underlying_Record_View,
which will be used in the expansion of the aggregate into assignments.
* sem_ch3.adb: Do not label derived type with unknown discriminants as
having a private declaration.
From-SVN: r146415
2009-04-20 Ed Schonberg <schonberg@adacore.com>
* exp_util.adb (Expand_Subtype_From_Expr): use the
underlying_record_view when available, to create the proper constrained
subtype for an object of a derived type with unknown discriminants.
2009-04-20 Javier Miranda <miranda@adacore.com>
* exp_ch6.ad (Expand_Inlined_Call): Avoid generation of temporaries for
formals that have pragma unreferenced.
From-SVN: r146414
2009-04-20 Pascal Obry <obry@adacore.com>
* a-direct.adb (To_Lower_If_Case_Insensitive): Removed.
Remove all calls to To_Lower_If_Case_Insensitive to preserve
the pathname original casing.
2009-04-20 Robert Dewar <dewar@adacore.com>
* g-trasym.adb: Minor reformatting
* s-os_lib.adb: Minor reformatting
* sem.adb: Minor reformatting
Minor code reorganization
* sem_ch3.adb: Minor reformatting
* sem_ch4.adb: Minor reformatting
* sem_ch8.adb: Minor reformatting
* sem_type.adb: Minor reformatting
From-SVN: r146412
2009-04-20 Javier Miranda <miranda@adacore.com>
* sem_disp.adb (Find_Dispatching_Type): For subprograms internally
generated by derivations of tagged types use the aliased subprogram a
reference to locate their controlling type.
2009-04-20 Tristan Gingold <gingold@adacore.com>
* g-trasym.adb: Set size of result buffer before calling
convert_address.
2009-04-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Valid_Candidate): When checking whether a prefixed call
to a function returning an array can be interpreted as a call with
defaulted parameters whose result is indexed, take into account the
types of all the indices of the array result type.
2009-04-20 Pascal Obry <obry@adacore.com>
* a-direct.adb, s-os_lib.adb: Minor reformatting.
From-SVN: r146411
2009-04-20 Nicolas Roche <roche@adacore.com>
* sysdep.c (__gnat_localtime_tzoff): on Windows, manipulated times are
unsigned long long. So compare local_time and utc_time before computing
the difference.
2009-04-20 Eric Botcazou <ebotcazou@adacore.com>
* sem_ch3.adb (Build_Derived_Private_Type): Insert the declaration
of the Underlying_Record_View before that of the derived type.
* exp_ch3.adb (Expand_Record_Extension): Do not special-case types
with unknown discriminants with regard to the parent subtype.
From-SVN: r146410
2009-04-20 Bob Duff <duff@adacore.com>
* sem.adb (Semantics, Walk_Library_Items): Include dependents of bodies
that are not included. This is necessary if the main unit is a generic
instantiation.
* gnat1drv.adb (Gnat1drv): Comment out the call to Check_Library_Items,
because it doesn't work if -gnatn is used.
From-SVN: r146408
* exp_ch3.adb (Make_Predefined_Primitive_Specs,
Predefined_Primitive_Bodies): Do not create the declarations and bodies
of the primitive subprograms associated with dispatching select
statements when the runtime is in configurable mode.
From-SVN: r146407
* sem_ch3.adb, sem_ch6.adb: Minor reformatting
* adaint.c (__gnat_is_readable_file): Check for file existence
when not using ACL (always the case on remote drives).
From-SVN: r146406
2009-04-20 Ed Schonberg <schonberg@adacore.com>
* rtsfind.adb (RTE, RTE_Record_Component): In
Configurable_Run_Time_Mode, do not enable front-end inlining.
2009-04-20 Thomas Quinot <quinot@adacore.com>
* g-socthi-vms.adb: Remove now unnecessary WITH clause on
System.Address_To_Access_Conversions.
2009-04-20 Ed Schonberg <schonberg@adacore.com>
* sem.adb: Guard against ill-formed subunits.
2009-04-20 Hristian Kirtchev <kirtchev@adacore.com>
* a-calfor.adb (Image): Subtract 0.5 from the sub second component only
when it is positive. This avoids a potential constraint error raised
by the conversion to Natural.
2009-04-20 Thomas Quinot <quinot@adacore.com>
* einfo.ads: Minor comment rewording
* sem_aggr.adb: Minor comment rewording
* sem_ch3.adb, sem_ch6.adb: Minor reformatting
2009-04-20 Pascal Obry <obry@adacore.com>
* adaint.c (__gnat_is_readable_file): Check for file existence
when not using ACL (always the case on remote drives).
From-SVN: r146405
2009-04-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch8,adb (Analyze_Object_Renaming): Reject ambiguous expressions
in an object renaming declaration when the expected type is an
anonymous access type.
* sem_type.adb (Disambiguate): Use anonymousness to resolve a potential
ambiguity when one interpretation is an anonymous access type and the
other is a named access type, and the context itself is anonymous
From-SVN: r146404
2009-04-20 Gary Dismukes <dismukes@adacore.com>
* exp_ch5.adb (Expand_Assign_Array): For the case where the assignment
involves a target that has a specified address, don't set Forward_OK
and Backward_OK to False if the rhs is an aggregate, since overlap
can't occur.
From-SVN: r146403
2009-04-20 Bob Duff <duff@adacore.com>
* output.adb (Flush_Buffer): Do not indent blank lines.
(Ignore_Output): New procedure for output suppression.
From-SVN: r146402
2009-04-20 Robert Dewar <dewar@adacore.com>
* sinfo.ads: Minor comment fixes
* exp_disp.adb: Minor reformatting
* gnat1drv.adb: Minor reformatting
* output.adb: Minor reformatting
* s-vxwext-kernel.ads: Minor reformatting
* sem.ads: Minor reformatting
* sem.adb: Minor reformatting
* sem_elim.adb: Minor reformatting
* uname.ads: Minor reformatting
2009-04-20 Eric Botcazou <ebotcazou@adacore.com>
* init.c (__gnat_adjust_context_for_raise): On x86{-64}/Linux, add
a small dope of 4 words to the adjustment to the stack pointer.
2009-04-20 Thomas Quinot <quinot@adacore.com>
* xoscons.adb: generate C header s-oscons.h in
addition to s-oscons.ads.
* socket.c: On VMS, use s-oscons.h.
* sem_ch3.adb: Minor reformatting
* exp_ch9.adb: Minor reformatting
From-SVN: r146401
PR tree-optimization/39675
* tree-vect-loop.c (vect_transform_loop): Remove currently redundant
check of the return code of vect_schedule_slp. Check that stmt_vec_info
still exists for the statement, before checking its vectorization type.
From-SVN: r146399
2009-04-20 Thomas Quinot <quinot@adacore.com>
* socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.ads,
s-oscons-tmplt.c, gsocket.h, g-socthi-mingw.ads, g-socthi.ads,
g-sothco.ads (__gnat_inet_pton): Needs to be enabled for HP-UX as well,
since HP-UX supports neither inet_aton nor inet_pton (altough the
latter is part of the Single UNIX Specification!).
So reorganize code, and share C implementation based on inet_addr(3)
with VMS (instead of having a VMS specific Ada implementation in
g-socthi-vms.adb).
From-SVN: r146396
2009-04-20 Gary Dismukes <dismukes@adacore.com>
* osint-c.ads, osint-c.adb (Get_Object_Output_File_Name): New function
to return the object file name saved by Set_Object_Output_File_Name.
2009-04-20 Emmanuel Briot <briot@adacore.com>
* g-comlin.adb (Initialize_Option_Scan): Fix initialization of parsers
for the standard command line, when argc has been modified since the
start of the application.
2009-04-20 Thomas Quinot <quinot@adacore.com>
* socket.c (__gnat_inet_pton, Windows case): Adjust return value.
WSAStringToAddress returns 0 for success and SOCKET_ERROR for failure.
From-SVN: r146395
2009-04-20 Bob Duff <duff@adacore.com>
* gnat1drv.adb (Gnat1drv): Put call to Check_Library_Items inside
pragma Debug.
2009-04-20 Ed Schonberg <schonberg@adacore.com>
* exp_ch9.adb (Build_Protected_Sub_Specification): Mark generated
subprogram as Eliminated when source operation is.
(Expand_N_Protected_Type_Declaration): Generate protected and
unprotected specs for the internal operations, even if the source
operation is eliminated.
2009-04-20 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch3.adb (Make_Predefined_Primitive_Specs,
Predefined_Primitive_Bodies): Do not create the declarations and bodies
of the primitive subprograms associated with dispatching select
statements when the runtime is in configurable mode.
2009-04-20 Ed Falis <falis@adacore.com>
* s-vxwext-kernel.ads (tickGet): Use tick64Get.
From-SVN: r146393
2009-04-20 Thomas Quinot <quinot@adacore.com>
* s-oscons-tmplt.c: Add support for generating a dummy version of
s-oscons.ads providing all possible constants.
* g-socthi-mingw.ads: Fix calling convention for __gnat_inet_pton.
* socket.c (__gnat_inet_pton): On Windows make sure we always use the
ANSI version (not the UNICODE version) of WSAStringToAddress.
2009-04-20 Pascal Obry <obry@adacore.com>
* adaint.c (__gnat_set_OWNER_ACL): properly free memory
allocated for the security descriptor and make sure all
handles are closed before leaving this procedure.
From-SVN: r146392
2009-04-20 Javier Miranda <miranda@adacore.com>
* einfo.ads, einfo.adb (Is_Underlying_Record_View): New subprogram
(Set_Is_Underlying_Record_View): New subprogram
* sem_aggr.adb (Discr_Present, Resolve_Record_Aggregate): In case of
private types with unknown discriminants use the underlying record view
if available.
* sem_ch3.adb (Build_Derived_Private_Type): Enable construction of the
underlying record view in the full view of private types whose parent
has unknown discriminants.
(Build_Derived_Record_Type): Avoid generating the class-wide entity
associated with an underlying record view.
(Derived_Type_Declaration): Avoid deriving parent primitives in
underlying record views.
* sem_ch6.adb (Check_Return_Subtype_Indication): Add support for
records with unknown discriminants.
* sem_type.adb (Covers): Handle underlying record views.
(Is_Ancestor): Add support for underlying record views.
* exp_attr.adb (Expand_Attribute): Expand attribute 'size into a
dispatching call if the type of the target object is tagged and has
unknown discriminants.
* exp_aggr.adb (Resolve_Record_Aggregate): Add support for records with
unknown discriminants.
* exp_disp.adb (Build_Dispatch_Tables): Avoid generating dispatch
tables for internally built underlying record views.
* sprint.adb (sprint_node_actual): Improve output of aggregates with an
empty list of component associations.
2009-04-20 Thomas Quinot <quinot@adacore.com>
* sem_ch10.adb: Minor reformatting
* socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.ads,
g-socthi-mingw.ads, g-socthi.ads, g-socket.adb
(GNAT.Sockets.Inet_Addr): Do not use non-portable inet_aton, instead use
standard inet_pton API (and emulate it on platforms that do not
support it).
(GNAT.Sockets.Thin.Inet_Pton, VMS case): Implement in terms of
DECC$INET_ADDR, imported in Ada.
(GNAT.Sockets.Thin.Inet_Pton, VxWorks and Windows cases): Use C
implementation provided by GNAT runtime.
(__gnat_inet_pton): C implementation of inet_pton(3) for VxWorks and
Windows.
From-SVN: r146391
2009-04-20 Eric Botcazou <ebotcazou@adacore.com>
* gnat_ugn.texi: Add documentation for -fno-ivopts.
2009-04-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch10.adb (Analyze_Context): Do not analyze a unit in a
with_clause if it is the main unit.
From-SVN: r146390
2009-04-20 Thomas Quinot <quinot@adacore.com>
* sem_type.adb, ali.adb, erroutc.adb: Minor code reorganization
(no behaviour change): Use Append instead of Increment_Last followed
by assignment.
2009-04-20 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch3.adb (Make_Predefined_Primitive_Specs): Do not generate the
declarations of all primitives associated with dispatching asynchronous,
conditional and timed selects when dispaching calls are forbidden and
select statements are not allowed (such as in Ravenscar).
(Predefined_Primitive_Bodies): Ditto for bodies.
* exp_disp.ad (Make_DT): Do not create and populate the
Select_Specific_Data of the dispatch table when dispatching calls are
forbidden and select statements are not allowed (such as in Ravenscar).
2009-04-20 Robert Dewar <dewar@adacore.com>
* a-tifiio.adb: Minor reformatting
2009-04-20 Thomas Quinot <quinot@adacore.com>
* g-socthi-vms.adb, g-socket.adb, g-socket.ads: inet_aton(3), unlike
other C library functions, report *failure* with a zero status, and
success with a non-zero status.
2009-04-20 Bob Duff <duff@adacore.com>
* sem.ads, sem.adb (Walk_Library_Items): New generic procedure.
(Semantics): After analyzing each unit, Append it to the
Comp_Unit_List, if appropriate.
* gnat1drv.adb (Check_Library_Items): New procedure for debugging
purposes.
(Gnat1drv): Correct comment regarding Back_End_Mode.
2009-04-20 Eric Botcazou <ebotcazou@adacore.com>
* gnat_ugn.texi: Add documentation for -fno-inline-small-functions.
From-SVN: r146389
* g-socket.adb, g-socket.ads, g-socthi-mingw.ads, g-socthi-vms.adb,
g-socthi-vms.ads, g-socthi-vxworks.ads, g-socthi.ads
(GNAT.Sockets.Thin.C_Inet_Addr): Remove.
(GNAT.Sockets.Thin.Inet_Aton): New function, imported from C library
except for VMS where it is reimplemented in Ada using DECC$INET_ADDR.
(GNAT.Sockets.Inet_Addr): Use inet_aton(3) instead of inet_addr(3).
* debug.adb: Fix typo
* gnat_rm.texi: Minor doc fix.
* sem_ch7.adb, freeze.adb: Minor reformatting
From-SVN: r146387
2009-04-20 Thomas Quinot <quinot@adacore.com>
* g-socket.ads: Add new constants:
Loopback_Inet_Addr
Unspecified_Group_Inet_Addr
All_Hosts_Group_Inet_Addr
All_Routers_Group_Inet_Addr
* s-oscons-tmplt.c, g-sttsne-vxworks.adb (System.OS_Constants): Add
ERANGE (Result too large).
(GNAT.Sockets.Thin.Task_Safe_NetDB, VxWorks version): Add missing
propagation of errno to caller.
2009-04-20 Hristian Kirtchev <kirtchev@adacore.com>
* a-calend.adb, a-calend-vms.adb: Increase the number of leap seconds
to 24. Increment Leap_Seconds_Count and add an entry to aggregate
Leap_Second_Times.
2009-04-20 Vincent Celier <celier@adacore.com>
* mlib-prj.adb (Build_Library): Use the shared library linker, if one
has been declared (Library_GCC or Linker'Driver), for the driver name.
* prj-nmsc.adb (Process_Linker): If Library_GCC is not declared and
Linker'Driver is, use Linker'Driver as the shared library linker.
(Process_Project_Level_Simple_Attributes): Issue a warning if attribute
Library_GCC is declared.
(Check_Library_Attributes): Set up the shared linker driver: either
Library_GCC or Linker'Driver. Issue a warning if Library_GCC is
declared.
From-SVN: r146386
2009-04-20 Gary Dismukes <dismukes@adacore.com>
* sem_elim.ads (Check_For_Eliminated_Subprogram): New procedure for
checking for references to eliminated subprograms that should be
flagged.
(Eliminate_Error_Message): Update comment to say "references" rather
than "calls" (since attribute cases are handled here as well).
* sem_elim.adb (Check_For_Eliminated_Subprogram): New procedure for
checking for references to eliminated subprograms that should be
flagged. Add with and use of Sem and Sem_Util.
* sem_res.adb (Resolve_Call): Reject calls to eliminated subprograms.
Add with and use of Sem_Elim.
* sem_attr.adb (Analyze_Access_Attribute): Reject access attributes
applied to eliminated subprograms.
(Analyze_Attribute): Reject 'Address and 'Code_Address applied to
eliminated subprograms.
Add with and use of Sem_Elim.
* sem_disp.adb (Check_Dispatching_Call): Remove error check for calls
to eliminated subprograms, now handled during Resolve_Call.
Remove with and use of Sem_Elim.
* exp_disp.adb (Make_DT): Get Ultimate_Alias of primitive before
testing Is_Eliminated, for proper handling of primitive derived from
eliminated subprograms.
From-SVN: r146385
2009-04-20 Arnaud Charlet <charlet@adacore.com>
* switch-c.adb (Scan_Front_End_Switches): Disable inspector mode in
ASIS mode.
2009-04-20 Geert Bosch <bosch@adacore.com>
* a-tifiio.adb (Put): Avoid generating too many digits for certain
fixed types with smalls that are neither integer or the reciprocal
of an integer.
2009-04-20 Bob Duff <duff@adacore.com>
* uname.ads: Minor comment fix.
* types.ads: Minor comment fix.
From-SVN: r146382
2009-04-20 Pascal Obry <obry@adacore.com>
* adaint.c (__gnat_get_libraries_from_registry): Fix code to
avoid warning. At the same time fix a memory leak.
* osint.adb (Get_Libraries_From_Registry): Properly free memory
returned by the above routine.
From-SVN: r146380