OSDN Git Service

2010-10-05 Ed Schonberg <schonberg@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 5 Oct 2010 10:18:09 +0000 (10:18 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 5 Oct 2010 10:18:09 +0000 (10:18 +0000)
* sem_ch10.adb (Analyze_Task_Body_Stub): Diagnose duplicate stub for
task.

2010-10-05  Vincent Celier  <celier@adacore.com>

* gnatbind.adb: If the main library file is not for a suitable main
program, change the error message.

2010-10-05  Vincent Celier  <celier@adacore.com>

* a-direct.ads: Minor spelling error fixes in comments.
* gnat_rm.texi: Add three entries in "Implementation Defined
Characteristics" for the interpretations of the Form parameters in
Ada.Directories.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164980 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/a-direct.ads
gcc/ada/gnat_rm.texi
gcc/ada/gnatbind.adb
gcc/ada/sem_ch10.adb

index 2dee69e..47f12db 100644 (file)
@@ -1,3 +1,20 @@
+2010-10-05  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch10.adb (Analyze_Task_Body_Stub): Diagnose duplicate stub for
+       task.
+
+2010-10-05  Vincent Celier  <celier@adacore.com>
+
+       * gnatbind.adb: If the main library file is not for a suitable main
+       program, change the error message.
+
+2010-10-05  Vincent Celier  <celier@adacore.com>
+
+       * a-direct.ads: Minor spelling error fixes in comments.
+       * gnat_rm.texi: Add three entries in "Implementation Defined
+       Characteristics" for the interpretations of the Form parameters in
+       Ada.Directories.
+
 2010-10-05  Robert Dewar  <dewar@adacore.com>
 
        * exp_ch3.adb, exp_ch5.adb, exp_disp.adb, exp_dist.adb, gnatlink.adb,
index 267c9c2..a5793b9 100644 (file)
@@ -178,39 +178,56 @@ package Ada.Directories is
    --  Source_Name (in the absence of Name_Error).
    --
    --  Interpretation of the Form parameter:
-   --  The Form parameter is case-insensitive.
-   --  Two fields are recognized in the Form parameter:
-   --    preserve=<value>
-   --    mode=<value>
-   --  <value> starts immediatey after the character '=' and ends with the
-   --  character immediatey preceding the next comma (',') or with the last
-   --  character of the parameter.
-   --  The only possible values for preserve= are:
-   --     no_attributes: do not try to preserve any file attributes. This is
-   --                    the default if no preserve= is found in Form.
-   --     all_attributes: try to preserve all file attributes (timestamps,
-   --                     access rights).
-   --     timestamps: preserve the timestamp of the copied file, but not the
-   --                 other file attributes.
-   --  The only possible values for mode= are:
-   --     copy: only do the copy if the destination file does not already
-   --           exist. If it already exist, Copy_File fails.
-   --     overwrite: copy the file in all cases. Overwite an aready existing
-   --                destination file.
-   --     append: append the original file to the destination file. If the
-   --             destination file does not exist, the destination file is
-   --             a copy of the source file.
-   --             When mode=append, the field preserve=, if it exists, is not
-   --             taken into account.
-   --  If the Form parameter includes one or both of the fields and the value
-   --  or values are incorrect, Copy_file fails with Use_Error.
-   --  Examples of correct Forms:
-   --     Form => "preserve=no_attributes,mode=overwrite" (the default)
-   --     Form => "mode=append"
-   --     Form => "mode=copy, preserve=all_attributes"
-   --  Examples of incorrect Forms
-   --     Form => "preserve=junk"
-   --     Form => "mode=internal, preserve=timestamps"
+   --
+   --    The Form parameter is case-insensitive
+   --
+   --    Two fields are recognized in the Form parameter:
+   --      preserve=<value>
+   --      mode=<value>
+   --
+   --      <value> starts immediately after the character '=' and ends with the
+   --      character immediately preceding the next comma (',') or with the
+   --      last character of the parameter.
+   --
+   --      The allowed values for preserve= are:
+   --
+   --        no_attributes:  Do not try to preserve any file attributes. This
+   --                        is the default if no preserve= is found in Form.
+   --
+   --        all_attributes: Try to preserve all file attributes (timestamps,
+   --                        access rights).
+   --
+   --        timestamps:     Preserve the timestamp of the copied file, but not
+   --                        the other file attributes.
+   --
+   --
+   --      The allowed values for mode= are:
+   --
+   --        copy:           Only copy if the destination file does not already
+   --                        exist. If it already exists, Copy_File will fail.
+   --
+   --        overwrite:      Copy the file in all cases. Overwite an already
+   --                        existing destination file.
+   --
+   --        append:         Append the original file to the destination file.
+   --                        If the destination file does not exist, the
+   --                        destination file is a copy of the source file.
+   --                        When mode=append, the field preserve=, if it
+   --                        exists, is not taken into account.
+   --
+   --    What is the default value for mode=???
+   --
+   --    If the Form parameter includes one or both of the fields and the value
+   --    or values are incorrect, Copy_file fails with Use_Error.
+   --
+   --    Examples of correct Forms:
+   --       Form => "preserve=no_attributes,mode=overwrite" (the default)
+   --       Form => "mode=append"
+   --       Form => "mode=copy, preserve=all_attributes"
+   --
+   --    Examples of incorrect Forms:
+   --       Form => "preserve=junk"
+   --       Form => "mode=internal, preserve=timestamps"
 
    ----------------------------------------
    -- File and directory name operations --
index 4481da9..49aa1e5 100644 (file)
@@ -9144,7 +9144,104 @@ main program in the natural manner.
 @sp 1
 @cartouche
 @noindent
-@strong{74}.  Implementation-defined convention names.  See B.1(11).
+@strong{74}.  The interpretation of the @code{Form} parameter in procedure
+@code{Create_Directory}.  See A.16(56).
+@end cartouche
+@noindent
+The @code{Form} parameter is not used.
+
+@sp 1
+@cartouche
+@noindent
+@strong{75}.  The interpretation of the @code{Form} parameter in procedure
+@code{Create_Path}.  See A.16(60).
+@end cartouche
+@noindent
+The @code{Form} parameter is not used.
+
+@sp 1
+@cartouche
+@noindent
+@strong{76}.  The interpretation of the @code{Form} parameter in procedure
+@code{Copy_File}.  See A.16(68).
+@end cartouche
+@noindent
+The @code{Form} parameter is case-insensitive.
+
+Two fields are recognized in the @code{Form} parameter:
+
+@table @code
+
+@item preserve=<value>
+
+@item mode=<value>
+
+@end table
+
+@noindent
+<value> starts immediately after the character '=' and ends with the
+character immediately preceding the next comma (',') or with the last
+character of the parameter.
+
+The only possible values for preserve= are:
+
+@table @code
+
+@item no_attributes
+Do not try to preserve any file attributes. This is the default if no
+preserve= is found in Form.
+
+@item all_attributes
+Try to preserve all file attributes (timestamps, access rights).
+
+@item timestamps
+Preserve the timestamp of the copied file, but not the other file attributes.
+
+@end table
+
+@noindent
+The only possible values for mode= are:
+
+@table @code
+
+@item copy
+Only do the copy if the destination file does not already exist. If it already
+exists, Copy_File fails.
+
+@item overwrite
+Copy the file in all cases. Overwite an already existing destination file.
+
+@item append
+Append the original file to the destination file. If the destination file does
+not exist, the destination file is a copy of the source file. When mode=append,
+the field preserve=, if it exists, is not taken into account.
+
+@end table
+
+@noindent
+If the Form parameter includes one or both of the fields and the value or
+values are incorrect, Copy_file fails with Use_Error.
+
+Examples of correct Forms:
+
+@smallexample
+Form => "preserve=no_attributes,mode=overwrite" (the default)
+Form => "mode=append"
+Form => "mode=copy, preserve=all_attributes"
+@end smallexample
+
+@noindent
+Examples of incorrect Forms
+
+@smallexample
+Form => "preserve=junk"
+Form => "mode=internal, preserve=timestamps"
+@end smallexample
+
+@sp 1
+@cartouche
+@noindent
+@strong{77}.  Implementation-defined convention names.  See B.1(11).
 @end cartouche
 @noindent
 The following convention names are supported
@@ -9202,7 +9299,7 @@ implementations, these names are accepted silently.
 @sp 1
 @cartouche
 @noindent
-@strong{75}.  The meaning of link names.  See B.1(36).
+@strong{78}.  The meaning of link names.  See B.1(36).
 @end cartouche
 @noindent
 Link names are the actual names used by the linker.
@@ -9210,7 +9307,7 @@ Link names are the actual names used by the linker.
 @sp 1
 @cartouche
 @noindent
-@strong{76}.  The manner of choosing link names when neither the link
+@strong{79}.  The manner of choosing link names when neither the link
 name nor the address of an imported or exported entity is specified.  See
 B.1(36).
 @end cartouche
@@ -9222,7 +9319,7 @@ letters.
 @sp 1
 @cartouche
 @noindent
-@strong{77}.  The effect of pragma @code{Linker_Options}.  See B.1(37).
+@strong{80}.  The effect of pragma @code{Linker_Options}.  See B.1(37).
 @end cartouche
 @noindent
 The string passed to @code{Linker_Options} is presented uninterpreted as
@@ -9243,7 +9340,7 @@ from the corresponding package spec.
 @sp 1
 @cartouche
 @noindent
-@strong{78}.  The contents of the visible part of package
+@strong{81}.  The contents of the visible part of package
 @code{Interfaces} and its language-defined descendants.  See B.2(1).
 @end cartouche
 @noindent
@@ -9252,7 +9349,7 @@ See files with prefix @file{i-} in the distributed library.
 @sp 1
 @cartouche
 @noindent
-@strong{79}.  Implementation-defined children of package
+@strong{82}.  Implementation-defined children of package
 @code{Interfaces}.  The contents of the visible part of package
 @code{Interfaces}.  See B.2(11).
 @end cartouche
@@ -9262,7 +9359,7 @@ See files with prefix @file{i-} in the distributed library.
 @sp 1
 @cartouche
 @noindent
-@strong{80}.  The types @code{Floating}, @code{Long_Floating},
+@strong{83}.  The types @code{Floating}, @code{Long_Floating},
 @code{Binary}, @code{Long_Binary}, @code{Decimal_ Element}, and
 @code{COBOL_Character}; and the initialization of the variables
 @code{Ada_To_COBOL} and @code{COBOL_To_Ada}, in
@@ -9290,7 +9387,7 @@ For initialization, see the file @file{i-cobol.ads} in the distributed library.
 @sp 1
 @cartouche
 @noindent
-@strong{81}.  Support for access to machine instructions.  See C.1(1).
+@strong{84}.  Support for access to machine instructions.  See C.1(1).
 @end cartouche
 @noindent
 See documentation in file @file{s-maccod.ads} in the distributed library.
@@ -9298,7 +9395,7 @@ See documentation in file @file{s-maccod.ads} in the distributed library.
 @sp 1
 @cartouche
 @noindent
-@strong{82}.  Implementation-defined aspects of access to machine
+@strong{85}.  Implementation-defined aspects of access to machine
 operations.  See C.1(9).
 @end cartouche
 @noindent
@@ -9307,7 +9404,7 @@ See documentation in file @file{s-maccod.ads} in the distributed library.
 @sp 1
 @cartouche
 @noindent
-@strong{83}.  Implementation-defined aspects of interrupts.  See C.3(2).
+@strong{86}.  Implementation-defined aspects of interrupts.  See C.3(2).
 @end cartouche
 @noindent
 Interrupts are mapped to signals or conditions as appropriate.  See
@@ -9318,7 +9415,7 @@ on the interrupts supported on a particular target.
 @sp 1
 @cartouche
 @noindent
-@strong{84}.  Implementation-defined aspects of pre-elaboration.  See
+@strong{87}.  Implementation-defined aspects of pre-elaboration.  See
 C.4(13).
 @end cartouche
 @noindent
@@ -9328,7 +9425,7 @@ except under control of the debugger.
 @sp 1
 @cartouche
 @noindent
-@strong{85}.  The semantics of pragma @code{Discard_Names}.  See C.5(7).
+@strong{88}.  The semantics of pragma @code{Discard_Names}.  See C.5(7).
 @end cartouche
 @noindent
 Pragma @code{Discard_Names} causes names of enumeration literals to
@@ -9339,7 +9436,7 @@ Pos values.
 @sp 1
 @cartouche
 @noindent
-@strong{86}.  The result of the @code{Task_Identification.Image}
+@strong{89}.  The result of the @code{Task_Identification.Image}
 attribute.  See C.7.1(7).
 @end cartouche
 @noindent
@@ -9369,7 +9466,7 @@ virtual address of the control block of the task.
 @sp 1
 @cartouche
 @noindent
-@strong{87}.  The value of @code{Current_Task} when in a protected entry
+@strong{90}.  The value of @code{Current_Task} when in a protected entry
 or interrupt handler.  See C.7.1(17).
 @end cartouche
 @noindent
@@ -9379,7 +9476,7 @@ convenient thread, so the value of @code{Current_Task} is undefined.
 @sp 1
 @cartouche
 @noindent
-@strong{88}.  The effect of calling @code{Current_Task} from an entry
+@strong{91}.  The effect of calling @code{Current_Task} from an entry
 body or interrupt handler.  See C.7.1(19).
 @end cartouche
 @noindent
@@ -9390,7 +9487,7 @@ executing the code.
 @sp 1
 @cartouche
 @noindent
-@strong{89}.  Implementation-defined aspects of
+@strong{92}.  Implementation-defined aspects of
 @code{Task_Attributes}.  See C.7.2(19).
 @end cartouche
 @noindent
@@ -9399,7 +9496,7 @@ There are no implementation-defined aspects of @code{Task_Attributes}.
 @sp 1
 @cartouche
 @noindent
-@strong{90}.  Values of all @code{Metrics}.  See D(2).
+@strong{93}.  Values of all @code{Metrics}.  See D(2).
 @end cartouche
 @noindent
 The metrics information for GNAT depends on the performance of the
@@ -9414,7 +9511,7 @@ the required metrics.
 @sp 1
 @cartouche
 @noindent
-@strong{91}.  The declarations of @code{Any_Priority} and
+@strong{94}.  The declarations of @code{Any_Priority} and
 @code{Priority}.  See D.1(11).
 @end cartouche
 @noindent
@@ -9423,7 +9520,7 @@ See declarations in file @file{system.ads}.
 @sp 1
 @cartouche
 @noindent
-@strong{92}.  Implementation-defined execution resources.  See D.1(15).
+@strong{95}.  Implementation-defined execution resources.  See D.1(15).
 @end cartouche
 @noindent
 There are no implementation-defined execution resources.
@@ -9431,7 +9528,7 @@ There are no implementation-defined execution resources.
 @sp 1
 @cartouche
 @noindent
-@strong{93}.  Whether, on a multiprocessor, a task that is waiting for
+@strong{96}.  Whether, on a multiprocessor, a task that is waiting for
 access to a protected object keeps its processor busy.  See D.2.1(3).
 @end cartouche
 @noindent
@@ -9441,7 +9538,7 @@ object does not keep its processor busy.
 @sp 1
 @cartouche
 @noindent
-@strong{94}.  The affect of implementation defined execution resources
+@strong{97}.  The affect of implementation defined execution resources
 on task dispatching.  See D.2.1(9).
 @end cartouche
 @noindent
@@ -9457,7 +9554,7 @@ underlying operating system.
 @sp 1
 @cartouche
 @noindent
-@strong{95}.  Implementation-defined @code{policy_identifiers} allowed
+@strong{98}.  Implementation-defined @code{policy_identifiers} allowed
 in a pragma @code{Task_Dispatching_Policy}.  See D.2.2(3).
 @end cartouche
 @noindent
@@ -9467,7 +9564,7 @@ pragma.
 @sp 1
 @cartouche
 @noindent
-@strong{96}.  Implementation-defined aspects of priority inversion.  See
+@strong{99}.  Implementation-defined aspects of priority inversion.  See
 D.2.2(16).
 @end cartouche
 @noindent
@@ -9477,7 +9574,7 @@ of delay expirations for lower priority tasks.
 @sp 1
 @cartouche
 @noindent
-@strong{97}.  Implementation defined task dispatching.  See D.2.2(18).
+@strong{100}.  Implementation defined task dispatching.  See D.2.2(18).
 @end cartouche
 @noindent
 @c SGI info:
@@ -9490,7 +9587,7 @@ The policy is the same as that of the underlying threads implementation.
 @sp 1
 @cartouche
 @noindent
-@strong{98}.  Implementation-defined @code{policy_identifiers} allowed
+@strong{101}.  Implementation-defined @code{policy_identifiers} allowed
 in a pragma @code{Locking_Policy}.  See D.3(4).
 @end cartouche
 @noindent
@@ -9503,7 +9600,7 @@ requesting the lock.
 @sp 1
 @cartouche
 @noindent
-@strong{99}.  Default ceiling priorities.  See D.3(10).
+@strong{102}.  Default ceiling priorities.  See D.3(10).
 @end cartouche
 @noindent
 The ceiling priority of protected objects of the type
@@ -9513,7 +9610,7 @@ Reference Manual D.3(10),
 @sp 1
 @cartouche
 @noindent
-@strong{100}.  The ceiling of any protected object used internally by
+@strong{103}.  The ceiling of any protected object used internally by
 the implementation.  See D.3(16).
 @end cartouche
 @noindent
@@ -9523,7 +9620,7 @@ The ceiling priority of internal protected objects is
 @sp 1
 @cartouche
 @noindent
-@strong{101}.  Implementation-defined queuing policies.  See D.4(1).
+@strong{104}.  Implementation-defined queuing policies.  See D.4(1).
 @end cartouche
 @noindent
 There are no implementation-defined queuing policies.
@@ -9531,7 +9628,7 @@ There are no implementation-defined queuing policies.
 @sp 1
 @cartouche
 @noindent
-@strong{102}.  On a multiprocessor, any conditions that cause the
+@strong{105}.  On a multiprocessor, any conditions that cause the
 completion of an aborted construct to be delayed later than what is
 specified for a single processor.  See D.6(3).
 @end cartouche
@@ -9542,7 +9639,7 @@ processor, there are no further delays.
 @sp 1
 @cartouche
 @noindent
-@strong{103}.  Any operations that implicitly require heap storage
+@strong{106}.  Any operations that implicitly require heap storage
 allocation.  See D.7(8).
 @end cartouche
 @noindent
@@ -9552,7 +9649,7 @@ task creation.
 @sp 1
 @cartouche
 @noindent
-@strong{104}.  Implementation-defined aspects of pragma
+@strong{107}.  Implementation-defined aspects of pragma
 @code{Restrictions}.  See D.7(20).
 @end cartouche
 @noindent
@@ -9561,7 +9658,7 @@ There are no such implementation-defined aspects.
 @sp 1
 @cartouche
 @noindent
-@strong{105}.  Implementation-defined aspects of package
+@strong{108}.  Implementation-defined aspects of package
 @code{Real_Time}.  See D.8(17).
 @end cartouche
 @noindent
@@ -9570,7 +9667,7 @@ There are no implementation defined aspects of package @code{Real_Time}.
 @sp 1
 @cartouche
 @noindent
-@strong{106}.  Implementation-defined aspects of
+@strong{109}.  Implementation-defined aspects of
 @code{delay_statements}.  See D.9(8).
 @end cartouche
 @noindent
@@ -9580,7 +9677,7 @@ delayed (see D.9(7)).
 @sp 1
 @cartouche
 @noindent
-@strong{107}.  The upper bound on the duration of interrupt blocking
+@strong{110}.  The upper bound on the duration of interrupt blocking
 caused by the implementation.  See D.12(5).
 @end cartouche
 @noindent
@@ -9590,7 +9687,7 @@ no cases is it more than 10 milliseconds.
 @sp 1
 @cartouche
 @noindent
-@strong{108}.  The means for creating and executing distributed
+@strong{111}.  The means for creating and executing distributed
 programs.  See E(5).
 @end cartouche
 @noindent
@@ -9600,7 +9697,7 @@ distributed programs.  See the GLADE reference manual for further details.
 @sp 1
 @cartouche
 @noindent
-@strong{109}.  Any events that can result in a partition becoming
+@strong{112}.  Any events that can result in a partition becoming
 inaccessible.  See E.1(7).
 @end cartouche
 @noindent
@@ -9609,7 +9706,7 @@ See the GLADE reference manual for full details on such events.
 @sp 1
 @cartouche
 @noindent
-@strong{110}.  The scheduling policies, treatment of priorities, and
+@strong{113}.  The scheduling policies, treatment of priorities, and
 management of shared resources between partitions in certain cases.  See
 E.1(11).
 @end cartouche
@@ -9620,7 +9717,7 @@ multi-partition execution.
 @sp 1
 @cartouche
 @noindent
-@strong{111}.  Events that cause the version of a compilation unit to
+@strong{114}.  Events that cause the version of a compilation unit to
 change.  See E.3(5).
 @end cartouche
 @noindent
@@ -9633,7 +9730,7 @@ comments.
 @sp 1
 @cartouche
 @noindent
-@strong{112}.  Whether the execution of the remote subprogram is
+@strong{115}.  Whether the execution of the remote subprogram is
 immediately aborted as a result of cancellation.  See E.4(13).
 @end cartouche
 @noindent
@@ -9643,7 +9740,7 @@ a distributed application.
 @sp 1
 @cartouche
 @noindent
-@strong{113}.  Implementation-defined aspects of the PCS@.  See E.5(25).
+@strong{116}.  Implementation-defined aspects of the PCS@.  See E.5(25).
 @end cartouche
 @noindent
 See the GLADE reference manual for a full description of all implementation
@@ -9652,7 +9749,7 @@ defined aspects of the PCS@.
 @sp 1
 @cartouche
 @noindent
-@strong{114}.  Implementation-defined interfaces in the PCS@.  See
+@strong{117}.  Implementation-defined interfaces in the PCS@.  See
 E.5(26).
 @end cartouche
 @noindent
@@ -9662,7 +9759,7 @@ implementation defined interfaces.
 @sp 1
 @cartouche
 @noindent
-@strong{115}.  The values of named numbers in the package
+@strong{118}.  The values of named numbers in the package
 @code{Decimal}.  See F.2(7).
 @end cartouche
 @noindent
@@ -9682,7 +9779,7 @@ implementation defined interfaces.
 @sp 1
 @cartouche
 @noindent
-@strong{116}.  The value of @code{Max_Picture_Length} in the package
+@strong{119}.  The value of @code{Max_Picture_Length} in the package
 @code{Text_IO.Editing}.  See F.3.3(16).
 @end cartouche
 @noindent
@@ -9691,7 +9788,7 @@ implementation defined interfaces.
 @sp 1
 @cartouche
 @noindent
-@strong{117}.  The value of @code{Max_Picture_Length} in the package
+@strong{120}.  The value of @code{Max_Picture_Length} in the package
 @code{Wide_Text_IO.Editing}.  See F.3.4(5).
 @end cartouche
 @noindent
@@ -9700,7 +9797,7 @@ implementation defined interfaces.
 @sp 1
 @cartouche
 @noindent
-@strong{118}.  The accuracy actually achieved by the complex elementary
+@strong{121}.  The accuracy actually achieved by the complex elementary
 functions and by other complex arithmetic operations.  See G.1(1).
 @end cartouche
 @noindent
@@ -9710,7 +9807,7 @@ operations.  Only fast math mode is currently supported.
 @sp 1
 @cartouche
 @noindent
-@strong{119}.  The sign of a zero result (or a component thereof) from
+@strong{122}.  The sign of a zero result (or a component thereof) from
 any operator or function in @code{Numerics.Generic_Complex_Types}, when
 @code{Real'Signed_Zeros} is True.  See G.1.1(53).
 @end cartouche
@@ -9721,7 +9818,7 @@ implementation advice.
 @sp 1
 @cartouche
 @noindent
-@strong{120}.  The sign of a zero result (or a component thereof) from
+@strong{123}.  The sign of a zero result (or a component thereof) from
 any operator or function in
 @code{Numerics.Generic_Complex_Elementary_Functions}, when
 @code{Real'Signed_Zeros} is @code{True}.  See G.1.2(45).
@@ -9733,7 +9830,7 @@ implementation advice.
 @sp 1
 @cartouche
 @noindent
-@strong{121}.  Whether the strict mode or the relaxed mode is the
+@strong{124}.  Whether the strict mode or the relaxed mode is the
 default.  See G.2(2).
 @end cartouche
 @noindent
@@ -9743,7 +9840,7 @@ provides a highly efficient implementation of strict mode.
 @sp 1
 @cartouche
 @noindent
-@strong{122}.  The result interval in certain cases of fixed-to-float
+@strong{125}.  The result interval in certain cases of fixed-to-float
 conversion.  See G.2.1(10).
 @end cartouche
 @noindent
@@ -9754,7 +9851,7 @@ floating-point format.
 @sp 1
 @cartouche
 @noindent
-@strong{123}.  The result of a floating point arithmetic operation in
+@strong{126}.  The result of a floating point arithmetic operation in
 overflow situations, when the @code{Machine_Overflows} attribute of the
 result type is @code{False}.  See G.2.1(13).
 @end cartouche
@@ -9771,7 +9868,7 @@ properly generated.
 @sp 1
 @cartouche
 @noindent
-@strong{124}.  The result interval for division (or exponentiation by a
+@strong{127}.  The result interval for division (or exponentiation by a
 negative exponent), when the floating point hardware implements division
 as multiplication by a reciprocal.  See G.2.1(16).
 @end cartouche
@@ -9781,7 +9878,7 @@ Not relevant, division is IEEE exact.
 @sp 1
 @cartouche
 @noindent
-@strong{125}.  The definition of close result set, which determines the
+@strong{128}.  The definition of close result set, which determines the
 accuracy of certain fixed point multiplications and divisions.  See
 G.2.3(5).
 @end cartouche
@@ -9794,7 +9891,7 @@ is converted to the target type.
 @sp 1
 @cartouche
 @noindent
-@strong{126}.  Conditions on a @code{universal_real} operand of a fixed
+@strong{129}.  Conditions on a @code{universal_real} operand of a fixed
 point multiplication or division for which the result shall be in the
 perfect result set.  See G.2.3(22).
 @end cartouche
@@ -9806,7 +9903,7 @@ representable in 64-bits.
 @sp 1
 @cartouche
 @noindent
-@strong{127}.  The result of a fixed point arithmetic operation in
+@strong{130}.  The result of a fixed point arithmetic operation in
 overflow situations, when the @code{Machine_Overflows} attribute of the
 result type is @code{False}.  See G.2.3(27).
 @end cartouche
@@ -9817,7 +9914,7 @@ types.
 @sp 1
 @cartouche
 @noindent
-@strong{128}.  The result of an elementary function reference in
+@strong{131}.  The result of an elementary function reference in
 overflow situations, when the @code{Machine_Overflows} attribute of the
 result type is @code{False}.  See G.2.4(4).
 @end cartouche
@@ -9827,7 +9924,7 @@ IEEE infinite and Nan values are produced as appropriate.
 @sp 1
 @cartouche
 @noindent
-@strong{129}.  The value of the angle threshold, within which certain
+@strong{132}.  The value of the angle threshold, within which certain
 elementary functions, complex arithmetic operations, and complex
 elementary functions yield results conforming to a maximum relative
 error bound.  See G.2.4(10).
@@ -9838,7 +9935,7 @@ Information on this subject is not yet available.
 @sp 1
 @cartouche
 @noindent
-@strong{130}.  The accuracy of certain elementary functions for
+@strong{133}.  The accuracy of certain elementary functions for
 parameters beyond the angle threshold.  See G.2.4(10).
 @end cartouche
 @noindent
@@ -9847,7 +9944,7 @@ Information on this subject is not yet available.
 @sp 1
 @cartouche
 @noindent
-@strong{131}.  The result of a complex arithmetic operation or complex
+@strong{134}.  The result of a complex arithmetic operation or complex
 elementary function reference in overflow situations, when the
 @code{Machine_Overflows} attribute of the corresponding real type is
 @code{False}.  See G.2.6(5).
@@ -9858,7 +9955,7 @@ IEEE infinite and Nan values are produced as appropriate.
 @sp 1
 @cartouche
 @noindent
-@strong{132}.  The accuracy of certain complex arithmetic operations and
+@strong{135}.  The accuracy of certain complex arithmetic operations and
 certain complex elementary functions for parameters (or components
 thereof) beyond the angle threshold.  See G.2.6(8).
 @end cartouche
@@ -9868,7 +9965,7 @@ Information on those subjects is not yet available.
 @sp 1
 @cartouche
 @noindent
-@strong{133}.  Information regarding bounded errors and erroneous
+@strong{136}.  Information regarding bounded errors and erroneous
 execution.  See H.2(1).
 @end cartouche
 @noindent
@@ -9877,7 +9974,7 @@ Information on this subject is not yet available.
 @sp 1
 @cartouche
 @noindent
-@strong{134}.  Implementation-defined aspects of pragma
+@strong{137}.  Implementation-defined aspects of pragma
 @code{Inspection_Point}.  See H.3.2(8).
 @end cartouche
 @noindent
@@ -9887,7 +9984,7 @@ be examined by the debugger at the inspection point.
 @sp 1
 @cartouche
 @noindent
-@strong{135}.  Implementation-defined aspects of pragma
+@strong{138}.  Implementation-defined aspects of pragma
 @code{Restrictions}.  See H.4(25).
 @end cartouche
 @noindent
@@ -9898,7 +9995,7 @@ generated code.  Checks must suppressed by use of pragma @code{Suppress}.
 @sp 1
 @cartouche
 @noindent
-@strong{136}.  Any restrictions on pragma @code{Restrictions}.  See
+@strong{139}.  Any restrictions on pragma @code{Restrictions}.  See
 H.4(27).
 @end cartouche
 @noindent
index d388258..9285aa9 100644 (file)
@@ -789,8 +789,20 @@ begin
         and then ALIs.Table (ALIs.First).Main_Program = None
         and then not No_Main_Subprogram
       then
-         Error_Msg_File_1 := Main_Lib_File;
-         Error_Msg ("{ does not contain a unit that can be a main program");
+         Get_Name_String
+           (Units.Table (ALIs.Table (ALIs.First).First_Unit).Uname);
+
+         declare
+            Unit_Name : String := Name_Buffer (1 .. Name_Len - 2);
+         begin
+            To_Mixed (Unit_Name);
+            Get_Name_String (ALIs.Table (ALIs.First).Sfile);
+            Add_Str_To_Name_Buffer (":1: ");
+            Add_Str_To_Name_Buffer (Unit_Name);
+            Add_Str_To_Name_Buffer (" cannot be used as a main program");
+            Write_Line (Name_Buffer (1 .. Name_Len));
+            Errors_Detected := Errors_Detected + 1;
+         end;
       end if;
 
       --  Perform consistency and correctness checks
index f38503d..272cabf 100644 (file)
@@ -2272,7 +2272,16 @@ package body Sem_Ch10 is
       else
          Set_Scope (Defining_Entity (N), Current_Scope);
          Generate_Reference (Nam, Defining_Identifier (N), 'b');
-         Set_Has_Completion (Etype (Nam));
+
+         --  Check for duplicate stub, if so give message and terminate
+
+         if Has_Completion (Etype (Nam)) then
+            Error_Msg_N ("duplicate stub for task", N);
+            return;
+         else
+            Set_Has_Completion (Etype (Nam));
+         end if;
+
          Analyze_Proper_Body (N, Etype (Nam));
 
          --  Set elaboration flag to indicate that entity is callable. This