[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Mon, 19 Apr 2004 15:20:16 +0000 (17:20 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 19 Apr 2004 15:20:16 +0000 (17:20 +0200)
commit7324bf49ceb4aaca385ae0c32095901b96a2c969
tree978d1dfc5330e89503dce76f1c63cf981f4b9d73
parent10b5935eb21a9828cf77e08e2b7e43238be7df40
[multiple changes]

2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>

* 5isystem.ads: Removed, unused.

* gnat_rm.texi: Redo 1.13 change.

2004-04-19  Robert Dewar  <dewar@gnat.com>

* s-stoele.ads: Clean up definition of Storage_Offset (the new
definition is cleaner, avoids the kludge of explicit Standard operator
references, and also is consistent with a visible System.Address with
no visible operations.

* s-geveop.adb: Add declarations to avoid assumption of visible
operations on type System.Address (since these might not be available
if Address is a non-private type for which the operations
are made abstract).

* sem_eval.adb: Minor reformatting

* s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
reformatting (new function spec format).

* s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
s-caun64.adb: Add declarations to avoid assumption of visible
operations on type System.Address (since these might not be available
if Address is a non-private type for which the operations are made
abstract).

* lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.

* exp_intr.adb: Minor comment update

* exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.

* 5omastop.adb: Add declarations to avoid assumption of visible
operations on type System.Address (since these might not be available
if Address is a non-private type for which the operations
are made abstract).

2004-04-19  Vincent Celier  <celier@gnat.com>

* switch-m.adb: (Scan_Make_Switches): Process new switch -eL

* prj-pars.ads (Parse): New Boolean parameter Process_Languages,
defaulted to Ada.

* prj-proc.adb (Process): New Boolean parameter Process_Languages,
defaulted to Ada.
Call Check with Process_Languages.
(Check): New Boolean parameter Process_Languages. Call Recursive_Check
with Process_Languages.
(Recursive_Check): New Boolean parameter Process_Languages. Call
Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
Process_Languages.

* prj-proc.ads (Process): New Boolean parameter Process_Languages,

* prj-util.ads, prj-util.adb (Executable_Of): New Boolean
parameter Ada_Main, defaulted to True.
Check for Ada specific characteristics only when Ada_Main is True.

* opt.ads: (Follow_Links): New Boolean flag for gnatmake

* prj.adb: (Project_Empty): Add new Project_Data components.

* prj.ads: New types and tables for non Ada languages.
(Project_Data): New components Languages, Impl_Suffixes,
First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
Include_Path, Include_Data_Set.

* prj-env.ads, prj-env.adb: Minor reformatting

* prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
Put subprograms in alphabetical order

* prj-pars.adb (Parse): New Boolean parameter Process_Languages,
defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
Opt.Follow_Links.

* mlib-prj.adb: Back out modification in last version, as they are
incorrect.
(Build_Library.Check_Libs): Remove useless pragma Warnings (Off)

* make.adb: (Mains): Moved to package Makeutl
(Linker_Opts): Moved to package Makeutl
(Is_External_Assignment): Moved to package Makeutl
(Test_If_Relative_Path): Moved to package Makeutl
(Gnatmake): Move sorting of linker options to function
Makeutl.Linker_Options_Switches.

* Makefile.in: Add makeutl.o to the object files for gnatmake

* makeusg.adb: Add line for new switch -eL.

* gnatls.adb (Image): New function.
(Output_Unit): If in verbose mode, output the list of restrictions
specified by pragmas Restrictions.

* 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
Text_IO.

* a-calend.adb (Split): Shift the date by multiple of 56 years, if
needed, to put it in the range 1970 (included) - 2026 (excluded).
(Time_Of): Do not shift Unix_Min_Year (1970).
Shift the date by multiple of 56 years, if needed, to put it in the
range 1970 (included) - 2026 (excluded).

* adaint.h, adaint.c (__gnat_set_executable): New function.

2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

* trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
and pop GC context.
(tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
(tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
(tree_transform, case N_Procedure_Call_Statement): Build a tree.
(tree_transform, case N_Code_Statement): Likewise.
(gnat_expand_stmt, case LABEL_STMT): Don't look at
LABEL_STMT_FIRST_IN_EH.
(gnat_expand_stmt, case ASM_STMT): New case.

* utils2.c (build_unary_op): Properly set TREE_READONLY of
UNCONSTRAINED_ARRAY_REF.

* utils.c (poplevel): Temporarily push/pop GC context around inline
function expansion.

* decl.c (maybe_variable): Properly set TREE_READONLY of
UNCONSTRAINED_ARRAY_REF.
(make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.

* ada-tree.def: (ASM_STMT): New.

* ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
(ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
ASM_STMT_INPUT): New.
(ASM_STMT_CLOBBER): Likewise.

2004-04-19  Thomas Quinot  <quinot@act-europe.fr>

* a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
general rcheck mechanism to raise Program_Error for E.4(18), instead
of a custom raiser in System.Partition_Interface.
Part of general cleanup work before PolyORB integration.

* snames.ads, snames.adb: Add new runtime library entities and names
for PolyORB DSA.

* sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
exp_dist.
(Build_Subprogram_Id): New subprogram provided by exp_dist
Code reorganisation in preparation for PolyORB integration.

* exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
exp_dist.
(Build_Subprogram_Id): New subprogram provided by exp_dist

* sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
actual parameter types for call to dereference of an
access-to-subprogram type.

* rtsfind.ads: Add new runtime library entities and names for PolyORB
DSA.

* gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
instead, which has the same behaviour here since we never pass it a
NULL pointer.

* link.c (run_path_option, Solaris case): Use -Wl, as for other
platforms.

* Makefile.in: adjust object file lists for gnatlink and gnatmake
to account for new dependency upon Interfaces.C.Strings + link.o
For x86 FreeBSD, use 86numaux.

* make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
from Mlib.Tgt to Mlib.

* mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
target-independent.

* mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
target-specific versions of this subprogram, now implemented as a
target-independent function in Mlib.

* 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
(Linker_Library_Path_Option): Remove target-specific versions of this
subprogram, now implemented as a target-independent function in Mlib.

* atree.adb: (Allocate_Initialize_Node): New subprogram.
Factors out node table slots allocation.
(Fix_Parents): New subprogram.
Encapsulate the pattern of fixing up parent pointers for syntactic
children of a rewritten node.
(New_Copy_Tree): Use New_Copy to copy non-entity nodes.
(Rewrite): Use New_Copy when creating saved copy of original node.
(Replace): Use Copy_Node to copy nodes.

2004-04-19  Javier Miranda  <miranda@gnat.com>

* sprint.adb (Sprint_Node_Actual): Give support to the new
Access_To_Subprogram node available in Access_Definition nodes. In
addition, give support to the AI-231 node fields: null-exclusion,
all-present, constant-present.

* sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram

* sinfo.ads, sinfo.adb:
New field Access_To_Subprogram_Definition in Access_Definition nodes

* sem_ch6.adb (Process_Formals): Move here the code that creates and
decorates internal subtype declaration corresponding to the
null-excluding formal. This code was previously in Set_Actual_Subtypes.
In addition, carry out some code cleanup on this code. In case of
access to protected subprogram call
Replace_Anonymous_Access_To_Protected_Subprogram.
(Set_Actual_Subtypes): Code cleanup.

* sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
Find_Type in case of anonymous access renamings. Add warning in case of
null-excluding attribute used in anonymous access renaming.

* sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
subprogram

* sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
subprogram.
(Access_Definition): In case of anonymous access to subprograms call
the corresponding semantic routine to decorate the node.
(Access_Subprogram_Declaration): Addition of some comments indicating
some code that probably should be added here. Detected by comparison
with the access_definition subprogram.
(Analyze_Component_Declaration): In case of access to protected
subprogram call Replace_Anonymous_Access_To_Protected.
(Array_Type_Declaration): In case of access to protected subprogram call
Replace_Anonymous_Access_To_Protected_Subprogram.
(Process_Discriminants): In case of access to protected subprogram call
Replace_Anonymous_Access_To_Protected_Subprogram.

* par.adb (P_Access_Definition): New formal that indicates if the
null-exclusion part was present.
(P_Access_Type_Definition): New formal that indicates if the caller has
already parsed the null-excluding part.

* par-ch3.adb (P_Subtype_Declaration): Code cleanup.
(P_Identifier_Declarations): Code cleanup and give support to renamings
of anonymous access to subprogram types.
(P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
(P_Array_Type_Definition): Give support to AI-254.
(P_Component_Items): Give support to AI-254.
(P_Access_Definition): New formal that indicates if the header was
already parsed by the caller.
(P_Access_Type_Definition): New formal that indicates if the caller has
already parsed the null-excluding part.

* par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
call to P_Access_Definition.

2004-04-19  Geert Bosch  <bosch@gnat.com>

* checks.adb (Apply_Float_Conversion_Check): New procedure to implement
the delicate semantics of floating-point to integer conversion.
(Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.

* eval_fat.adb (Machine_Mantissa): Moved to spec.
(Machine_Radix): New function.

* eval_fat.ads (Machine_Mantissa): Moved from body for use in
conversion checks.
(Machine_Radix): New function also for use in conversion checks.

2004-04-19  Ed Schonberg  <schonberg@gnat.com>

* par-prag.adb (Source_File_Name_Project): Fix typo in error message.

* exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
to decorate the access-to-protected subprogram and the equivalent type.

* checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
to anonymous access to subprogram types.

* exp_ch4.adb (Expand_N_In): Preserve Static flag before
constant-folding, for legality checks in contexts that require an RM
static expression.

* exp_ch6.adb (Expand_N_Function_Call): If call may generate large
temporary but stack checking is not enabled, increment serial number
to so that symbol generation is consistent with and without stack
checking.

* exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
independent on whether stack checking is enabled, caller must check
the corresponding flag.

* sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
range checks.
(Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
parent if it has discriminants.
(Build_Derived_Private_Type): Constructed full view does
not come from source.
(Process_Discriminants): Default discriminants on a tagged type are
legal if this is the internal completion of a private untagged
derivation.

* sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
no constraint checks, because it corresponds to an existing object.

* sem_prag.adb (Process_Convention): Pragma applies
only to subprograms in the same declarative part, i.e. the same unit,
not the same scope.

* sem_res.adb (Valid_Conversion): In an instance or inlined body,
ignore type mismatch on a numeric conversion if expression comes from
expansion.

2004-04-19  Sergey Rybin  <rybin@act-europe.fr>

* sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
Homonym_Number parameter, add processing for Source_Location parameter
corresponding.
(Check_Eliminated): Remove the check for homonym numbers, add the check
for source location traces.

* sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
with Arg_Source_Location corresponding to the changes in the format of
the pragma.

* sem_prag.adb: (Analyze_Pragma): Changes in the processing of
Eliminate pragma corresponding to the changes in the format of the
pragma: Homonym_Number is replaced with Source_Location, two ways of
distinguishing homonyms are mutially-exclusive.

2004-04-19  Joel Brobecker  <brobecker@gnat.com>

* get_targ.ads (Get_No_Dollar_In_Label): Remove.

* exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
No_Dollar_In_Label, no longer necessary, as it is always True.
(Strip_Suffixes): Likewise.

2004-04-19  Gary Dismukes  <dismukes@gnat.com>

* s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
modulus for compatibility with size clause on targets with 16-bit
Integer.

* layout.adb (Discrimify): In the case of private types, set Vtyp to
full type to fix type mismatches on calls to size functions for
discriminant-dependent array components.

2004-04-19  Jerome Guitton  <guitton@act-europe.fr>

* Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
lib.

2004-04-19  Pascal Obry  <obry@gnat.com>

* mdll-utl.adb (Locate): New version is idempotent.

From-SVN: r80856
118 files changed:
gcc/ada/5aml-tgt.adb
gcc/ada/5bml-tgt.adb
gcc/ada/5gml-tgt.adb
gcc/ada/5hml-tgt.adb
gcc/ada/5isystem.ads [deleted file]
gcc/ada/5lml-tgt.adb
gcc/ada/5omastop.adb
gcc/ada/5sml-tgt.adb
gcc/ada/5vml-tgt.adb
gcc/ada/5wml-tgt.adb
gcc/ada/5zml-tgt.adb
gcc/ada/ChangeLog
gcc/ada/Makefile.in
gcc/ada/a-calend.adb
gcc/ada/a-except.adb
gcc/ada/ada-tree.def
gcc/ada/ada-tree.h
gcc/ada/adaint.c
gcc/ada/adaint.h
gcc/ada/atree.adb
gcc/ada/checks.adb
gcc/ada/decl.c
gcc/ada/eval_fat.adb
gcc/ada/eval_fat.ads
gcc/ada/exp_aggr.adb
gcc/ada/exp_attr.adb
gcc/ada/exp_ch13.adb
gcc/ada/exp_ch4.adb
gcc/ada/exp_ch6.adb
gcc/ada/exp_ch9.adb
gcc/ada/exp_dbug.adb
gcc/ada/exp_dist.adb
gcc/ada/exp_dist.ads
gcc/ada/exp_intr.adb
gcc/ada/exp_util.adb
gcc/ada/exp_util.ads
gcc/ada/get_targ.ads
gcc/ada/gnat_rm.texi
gcc/ada/gnatcmd.adb
gcc/ada/gnatlink.adb
gcc/ada/gnatls.adb
gcc/ada/layout.adb
gcc/ada/lib.adb
gcc/ada/lib.ads
gcc/ada/link.c
gcc/ada/make.adb
gcc/ada/makeusg.adb
gcc/ada/mdll-utl.adb
gcc/ada/mlib-prj.adb
gcc/ada/mlib-tgt.adb
gcc/ada/mlib-tgt.ads
gcc/ada/mlib.adb
gcc/ada/mlib.ads
gcc/ada/opt.ads
gcc/ada/par-ch3.adb
gcc/ada/par-ch6.adb
gcc/ada/par-prag.adb
gcc/ada/par.adb
gcc/ada/prj-env.adb
gcc/ada/prj-env.ads
gcc/ada/prj-nmsc.adb
gcc/ada/prj-nmsc.ads
gcc/ada/prj-pars.adb
gcc/ada/prj-pars.ads
gcc/ada/prj-proc.adb
gcc/ada/prj-proc.ads
gcc/ada/prj-util.adb
gcc/ada/prj-util.ads
gcc/ada/prj.adb
gcc/ada/prj.ads
gcc/ada/rtsfind.ads
gcc/ada/s-auxdec.adb
gcc/ada/s-carsi8.adb
gcc/ada/s-carsi8.ads
gcc/ada/s-carun8.adb
gcc/ada/s-carun8.ads
gcc/ada/s-casi16.adb
gcc/ada/s-casi16.ads
gcc/ada/s-casi32.adb
gcc/ada/s-casi32.ads
gcc/ada/s-casi64.adb
gcc/ada/s-casi64.ads
gcc/ada/s-caun16.adb
gcc/ada/s-caun16.ads
gcc/ada/s-caun32.adb
gcc/ada/s-caun32.ads
gcc/ada/s-caun64.adb
gcc/ada/s-caun64.ads
gcc/ada/s-geveop.adb
gcc/ada/s-parint.adb
gcc/ada/s-parint.ads
gcc/ada/s-stalib.ads
gcc/ada/s-stoele.ads
gcc/ada/sem_ch3.adb
gcc/ada/sem_ch3.ads
gcc/ada/sem_ch4.adb
gcc/ada/sem_ch6.adb
gcc/ada/sem_ch8.adb
gcc/ada/sem_dist.adb
gcc/ada/sem_dist.ads
gcc/ada/sem_elim.adb
gcc/ada/sem_elim.ads
gcc/ada/sem_eval.adb
gcc/ada/sem_prag.adb
gcc/ada/sem_res.adb
gcc/ada/sem_util.adb
gcc/ada/sem_util.ads
gcc/ada/sinfo.adb
gcc/ada/sinfo.ads
gcc/ada/snames.adb
gcc/ada/snames.ads
gcc/ada/sprint.adb
gcc/ada/switch-m.adb
gcc/ada/trans.c
gcc/ada/types.ads
gcc/ada/types.h
gcc/ada/utils.c
gcc/ada/utils2.c