* par-ch9.adb
(P_Protected): Update the error message on missing "-gnat05" switch when
using interfaces in conjunction with protected types. Remove the
incorrect error message associated with the presence of "private" after
a "with".
From-SVN: r135634
* par-ch3.adb
(P_Access_Definition): Change the error message when parsing "access
all" in Ada 95 mode. The message no longer forces the user to recompile
in 05 mode only to discover that anonymous access types are not allowed
to have "all".
From-SVN: r135633
2008-05-20 Robert Dewar <dewar@adacore.com>
* opt.ads (Treat_Restrictions_As_Warnings): New switch
* sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
Treat_Restrictions_As_Warnings.
* switch-c.adb: Recognize new switch -gnatr
* usage.adb: Add line for -gnatr
From-SVN: r135632
(common-tools): New rule, to avoid parallel build failure on gnat tools.
Reenable parallel builds on this Makefile.
* Make-lang.in: Update dependencies.
From-SVN: r135631
* gnatname.adb
(Scan_Args): Rewrite to take into account new switch --and to separate
arguments into sections.
(Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
section, then Finalize.
From-SVN: r135629
* freeze.adb
(Freeze_Enumeration_Type): For a subtype that inherits a foreign
convention from its base type, do not set the type to that of integer,
because it may inherit a size clause.
Warn on a size clause with a size different
from that of Integer, if the type has convention C.
From-SVN: r135628
2008-05-20 Kevin Pouget <pouget@adacore.com>
* exp_smem.ads, exp_smem.adb: Construction of access and assign
routines has been replaced by an instantiation of
System.Shared_Storage.Shared_Var_Procs generic package, while expanding
shared variable declaration.
Calls to access and assign routines have been replaced by calls to
Read/Write routines of System.Shared_Storage.Shared_Var_Procs
instantiated package.
* rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
It identifies the new generic package added in s-shasto.
* s-shasto.adb, s-shasto.ads: A new generic package has been added, it
is instantiated for each shared passive variable. It provides
supporting procedures called upon each read or write access by the
expanded code.
* sem_attr.adb:
For this runtime unit (always compiled in GNAT mode), we allow
stream attributes references for limited types for the case where
shared passive objects are implemented using stream attributes,
which is the default in GNAT's persistent storage implementation.
From-SVN: r135627
* exp_dist.adb
(GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
assigning NULL into the result, to avoid a spurious warning.
(Add_RACW_Features, case Same_Scope): Add assertion that designated type
is not frozen.
(Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
type.
(Build_From_Any_Function, Build_To_Any_Function,
Build_TypeCode_Function): For a type that has user-specified stream
attributes, use an opaque sequence of octets as the representation.
From-SVN: r135626
2008-05-20 Javier Miranda <miranda@adacore.com>
Ed Schonberg <schonberg@adacore.com>
* exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
generating dispatch tables of locally defined tagged types statically.
Remove implicit if-statement that is no longer required.
(Expand_Dispatching_Call): If this is a call to an instance of the
generic dispatching constructor, the type of the first argument may be
a subtype of Tag, so always use the base type to recognize this case.
From-SVN: r135625
2008-05-20 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
and the derived type are of the same kind.
(Expand_Call): Generate type conversions for actuals of
record or array types when the parent and the derived types differ in
size and/or packed status.
From-SVN: r135624
2008-05-20 Vincent Celier <celier@adacore.com>
* prj.adb (Hash (Project_Id)): New function
(Project_Empty): Add new component Interfaces_Defined
* prj.ads (Source_Data): New component Object_Linked
(Language_Config): New components Object_Generated and Objects_Linked
(Hash (Project_Id)): New function
(Source_Data): New Boolean components In_Interfaces and
Declared_In_Interfaces.
(Project_Data): New Boolean component Interfaces_Defined
* prj-attr.adb:
New project level attribute Object_Generated and Objects_Linked
Add new project level attribute Interfaces
* prj-dect.adb: Use functions Present and No throughout
(Parse_Variable_Declaration): If a string type is specified as a simple
name and is not found in the current project, look for it also in the
ancestors of the project.
* prj-makr.adb:
Replace procedure Make with procedures Initialize, Process and Finalize
to implement H414-023: process different directories with different
patterns.
Use functions Present and No throughout
* prj-makr.ads:
Replace procedure Make with procedures Initialize, Process and Finalize
* prj-nmsc.adb
(Add_Source): Set component Object_Exists and Object_Linked accordnig to
the language configuration.
(Process_Project_Level_Array_Attributes): Process new attributes
Object_Generated and Object_Linked.
(Report_No_Sources): New Boolean parameter Continuation, defaulted to
False, to indicate that the erreor/warning is a continuation.
(Check): Call Report_No_Sources with Contnuation = True after the first
call.
(Error_Msg): Process successively contnuation character and warning
character.
(Find_Explicit_Sources): Check that all declared sources have been found
(Check_File): Indicate in hash table Source_Names when a declared source
is found.
(Check_File): Set Other_Part when found
(Find_Explicit_Sources): In multi language mode, check if all exceptions
to the naming scheme have been found. For Ada, report an error if an
exception has not been found. Otherwise, disregard the exception.
(Check_Interfaces): New procedure
(Add_Source): When Other_Part is defined, set mutual pointers in spec
and body.
(Check): In multi-language mode, call Check_Interfaces
(Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
for an excluded source.
(Remove_Source): A source replacing a source in the interfaces is also
in the interfaces.
* prj-pars.adb: Use function Present
* prj-part.adb: Use functions Present and No throughout
(Parse_Single_Project): Set the parent project for child projects
(Create_Virtual_Extending_Project): Register project with no qualifier
(Parse_Single_Project): Allow an abstract project to be extend several
times. Do not allow an abstract project to extend a non abstract
project.
* prj-pp.adb: Use functions Present and No throughout
(Print): Take into account the full associative array attribute
declarations.
* prj-proc.adb: Use functions Present and No throughout
(Expression): Call itself with the same From_Project_Node for the
default value of an external reference.
* prj-strt.adb: Use functions Present and No throughout
(Parse_Variable_Reference): If a variable is specified as a simple name
and is not found in the current project, look for it also in the
ancestors of the project.
* prj-tree.ads, prj-tree.adb (Present): New function
(No): New function
Use functions Present and No throughout
(Parent_Project_Of): New function
(Set_Parent_Project_Of): New procedure
* snames.ads, snames.adb:
Add new standard names Object_Generated and Objects_Linked
From-SVN: r135623
2008-05-20 Ed Schonberg <schonberg@adacore.com>
* exp_ch5.adb (Expand_Assign_Record): Within an initialization
procedure for a derived type retrieve the discriminant values from the
parent using the corresponding discriminant.
(Expand_N_Assignment_Statement): Skip generation of implicit
if-statement associated with controlled types if we are
compiling with restriction No_Finalization.
From-SVN: r135622
Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch3.adb
(Expand_N_Object_Declaration): Correct the condition which triggers the
generation of a call to Displace when initializing a class-wide object.
(Build_Dcheck_Functions): Build discriminant-checking for null variants
when Frontend_Layout_On_Target is true to ensure that they're available
for calling when a record variant size function is built in Layout.
From-SVN: r135621
* exp_aggr.adb
(Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
tests did not covered the case in which the type of the aggregate has
no progenitors but some its parents has progenitors.
From-SVN: r135620
2008-05-20 Robert Dewar <dewar@adacore.com>
PR ada/30740
* einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
subtypes, always False for non-modular types.
Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
for Shared_Storage package.
(Is_RACW_Stub_Type): New entity flag.
* exp_ch4.adb
(Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
case where we have a modular type with a non-binary modules.
Comments reformattings.
* sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
all types.
From-SVN: r135619
2008-05-20 Tristan Gingold <gingold@adacore.com>
* decl.c: Do not emit a variable for a object that has an address
representation clause whose value is known at compile time.
When a variable has an address clause whose value is known at compile
time, refer to this variable by using directly the address instead of
dereferencing a pointer.
From-SVN: r135618
2008-05-20 Vincent Celier <celier@adacore.com>
* cstand.adb (Print_Standard): Issue the correct Size clause for type
Wide_Wide_Character.
From-SVN: r135617
2008-05-20 Robert Dewar <dewar@adacore.com>
Gary Dismukes <dismukes@adacore.com>
* checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
overflow if result converted to wider integer type.
(Apply_Type_Conversion_Checks): Don't emit checks on conversions to
discriminated types when discriminant checks are suppressed.
From-SVN: r135616
2008-05-20 Robert Dewar <dewar@adacore.com>
* ali.adb: Correct casing of ASCII.NUL
* styleg-c.adb (Check_Identifier): Handle case of names in ASCII
properly.
From-SVN: r135615
2008-05-20 Arnaud Charlet <charlet@adacore.com>
* s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
the underlying issue with malloc/free has been fixed. Remove associated
comments.
Minor reformatting.
Related to PR ada/24533
From-SVN: r135614
2008-05-20 Thomas Quinot <quinot@adacore.com>
* Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
* g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
Add missing "with" of Ada.Unchecked_Conversion
* g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
Move common code out of GNAT.Sockets.Thin implementations and into
Thin_Common.
New constant SIZEOF_fd_set
New flag Has_Sockaddr_Len
New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
* g-stsifd-sockets.adb
(Create): Remove call to Set_Length; use Set_Family to set the family
and (on appropriate platforms) length fields in struct sockaddr.
* g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
Move common code out of GNAT.Sockets.Thin implementations and into
Thin_Common.
* g-socket.ads, g-socket.adb:
Move common code out of GNAT.Sockets.Thin implementations and into
Thin_Common.
(Connect_Socket, Accept_Socket): Provide new versions of these two
routines that operate with a user specified timeout.
(Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
this is now handled automatically by Set_Family on platforms that
require it.
* gen-soccon.c:
Move common code out of GNAT.Sockets.Thin implementations and into
Thin_Common.
(SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
this constant to 0 (not -1) because we use it to initialize an
unsigned_char value.
Align values for numeric constants only.
Handle the case of systems that do not support AF_INET6.
New constant SIZEOF_fd_set
New flag Has_Sockaddr_Len
New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
* gsocket.h: New flag Has_Sockaddr_Len
New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
From-SVN: r135612
2008-05-20 Richard Guenther <rguenther@suse.de>
* tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
* gcc.c-torture/execute/20080519-1.c: New testcase.
From-SVN: r135605
2008-05-19 H.J. Lu <hongjiu.lu@intel.com>
* gcc/config/i386/i386.c (ix86_expand_vector_init_concat): Change
sizes of operand array from 8/4 to 4/2.
(ix86_expand_vector_init_general): Change size of operand array
from 32 to 16. Remove op0, op1 and half_mode.
From-SVN: r135579
PR fortran/36265
* trans-expr.c (gfc_conv_string_tmp): Pick the correct type for
the temporary variable.
* gfortran.dg/char_length_11.f90: New test.
From-SVN: r135576