Commit 9c8457a7 by Quentin Ochem Committed by Arnaud Charlet

gnat_ugn.texi: Created section "Stack Related Tools" Moved "Stack Overflow Checking"...

2005-12-05  Quentin Ochem  <ochem@adacore.com>
	    Robert Dewar  <dewar@adacore.com>
	    Ed Falis  <falis@adacore.com>
	    Florian Villoing  <villoing@adacore.com>
	    Thomas Quinot  <quinot@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* gnat_ugn.texi: Created section "Stack Related Tools"
	Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
	"Stack Related Tools"
	Added subsection "Static Stack Usage Analysis"
	Added subsection "Dynamic Stack Usage Analysis"
	Include documentation of itypes in sprint listing (-gnatG)
	Documented gnatbind -D switch (default sec stack size for fixed sec
	stacks).
	Added Interrupt_State and Persistent_BSS to list of configuration
	pragmas.
	Add missing doc for maximum value of nnn in -gnatyMnnn

	* gnat_rm.texi: Document the AltiVec binding.
	Add documentation for pragma Complete_Representation
	Shortened an overly long line (> 79 chars)
	Clarify documentation of unchecked conversion in implementation
	defined cases.
	Document two argument form of pragma Debug

	* types.ads (Column_Number): Update documentation.

	* exp_ch7.ads (Make_Adjust_Call): Document the special processing for
	library level Finalize_Storage_Only objects (these are not attached to
	any finalization list).

	* system-mingw.ads: (Underlying_Priorities): Update comment.

From-SVN: r108307
parent 195b0505
......@@ -115,7 +115,9 @@ package Exp_Ch7 is
-- type (Is_Controlled) or a type with controlled components
-- (Has_Controlled). With_Attach is an integer expression representing
-- the level of attachment, see Attach_To_Final_List's Nb_Link param
-- documentation in s-finimp.ads.
-- documentation in s-finimp.ads. Note: if Typ is Finalize_Storage_Only
-- and the object is at library level, then With_Attach will be ignored,
-- and a zero link level will be passed to Attach_To_Final_List.
--
-- This function will generate the appropriate calls to make
-- sure that the objects referenced by Ref are adjusted. The generated
......
......@@ -110,6 +110,7 @@ Implementation Defined Pragmas
* Pragma Comment::
* Pragma Common_Object::
* Pragma Compile_Time_Warning::
* Pragma Complete_Representation::
* Pragma Complex_Representation::
* Pragma Component_Alignment::
* Pragma Convention_Identifier::
......@@ -281,6 +282,11 @@ The GNAT Library
* Ada.Text_IO.C_Streams (a-tiocst.ads)::
* Ada.Wide_Text_IO.C_Streams (a-wtcstr.ads)::
* Ada.Wide_Wide_Text_IO.C_Streams (a-ztcstr.ads)::
* GNAT.Altivec (g-altive.ads)::
* GNAT.Altivec.Conversions (g-altcon.ads)::
* GNAT.Altivec.Vector_Operations (g-alveop.ads)::
* GNAT.Altivec.Vector_Types (g-alvety.ads)::
* GNAT.Altivec.Vector_Views (g-alvevi.ads)::
* GNAT.Array_Split (g-arrspl.ads)::
* GNAT.AWK (g-awk.ads)::
* GNAT.Bounded_Buffers (g-boubuf.ads)::
......@@ -644,6 +650,7 @@ consideration, the use of these pragmas should be minimized.
* Pragma Comment::
* Pragma Common_Object::
* Pragma Compile_Time_Warning::
* Pragma Complete_Representation::
* Pragma Complex_Representation::
* Pragma Component_Alignment::
* Pragma Convention_Identifier::
......@@ -1039,6 +1046,25 @@ If these conditions are met, a warning message is generated using
the value given as the second argument. This string value may contain
embedded ASCII.LF characters to break the message into multiple lines.
@node Pragma Complete_Representation
@unnumberedsec Pragma Complete_Representation
@findex Complete_Representation
@noindent
Syntax:
@smallexample @c ada
pragma Complete_Representation;
@end smallexample
@noindent
This pragma must appear immediately within a record representation
clause. Typical placements are before the first component clause
or after the last component clause. The effect is to give an error
message if any component is missing a component clause. This pragma
may be used to ensure that a record representation clause is
complete, and that this invariant is maintained if fields are
added to the record in the future.
@node Pragma Complex_Representation
@unnumberedsec Pragma Complex_Representation
@findex Complex_Representation
......@@ -1356,7 +1382,7 @@ See @ref{Interfacing to C++} for related information.
Syntax:
@smallexample @c ada
pragma Debug (PROCEDURE_CALL_WITHOUT_SEMICOLON);
pragma Debug ([CONDITION, ]PROCEDURE_CALL_WITHOUT_SEMICOLON);
PROCEDURE_CALL_WITHOUT_SEMICOLON ::=
PROCEDURE_NAME
......@@ -1364,18 +1390,17 @@ PROCEDURE_CALL_WITHOUT_SEMICOLON ::=
@end smallexample
@noindent
The argument has the syntactic form of an expression, meeting the
syntactic requirements for pragmas.
If debug pragmas are not enabled, this pragma has no
effect. If debug pragmas are enabled, the semantics of the pragma is exactly
equivalent to the procedure call statement corresponding to the argument
with a terminating semicolon. Pragmas are permitted in sequences of
declarations, so you can use pragma @code{Debug} to intersperse calls to
debug procedures in the middle of declarations. Debug pragmas can be
enabled either by use of the command line switch @code{-gnata} or by use
of the configuration pragma @code{Debug_Policy}.
The procedure call argument has the syntactic form of an expression, meeting
the syntactic requirements for pragmas.
If debug pragmas are not enabled or if the condition is present and evaluates
to False, this pragma has no effect. If debug pragmas are enabled, the
semantics of the pragma is exactly equivalent to the procedure call statement
corresponding to the argument with a terminating semicolon. Pragmas are
permitted in sequences of declarations, so you can use pragma @code{Debug} to
intersperse calls to debug procedures in the middle of declarations. Debug
pragmas can be enabled either by use of the command line switch @code{-gnata}
or by use of the configuration pragma @code{Debug_Policy}.
@node Pragma Debug_Policy
@unnumberedsec Pragma Debug_Policy
......@@ -1393,20 +1418,6 @@ If the argument is @code{IGNORE}, then pragma @code{DEBUG} is ignored.
This pragma overrides the effect of the @code{-gnata} switch on the
command line.
If debug pragmas are not enabled, this pragma has no
effect. If debug pragmas are enabled, the semantics of the pragma is exactly
equivalent to the procedure call statement corresponding to the argument
with a terminating semicolon. Pragmas are permitted in sequences of
declarations, so you can use pragma @code{Debug} to intersperse calls to
debug procedures in the middle of declarations. Debug pragmas can be
enabled either by use of the command line switch @code{-gnata} or by use
of the configuration pragma @code{Debug_Policy}.
@node Pragma Detect_Blocking
@unnumberedsec Pragma Detect_Blocking
@findex Detect_Blocking
......@@ -7257,7 +7268,7 @@ See the definition and documentation in file @file{s-maccod.ads}.
@end cartouche
@noindent
Unchecked conversion between types of the same size
and results in an uninterpreted transmission of the bits from one type
results in an uninterpreted transmission of the bits from one type
to the other. If the types are of unequal sizes, then in the case of
discrete types, a shorter source is first zero or sign extended as
necessary, and a shorter target is simply truncated on the left.
......@@ -7265,7 +7276,10 @@ For all non-discrete types, the source is first copied if necessary
to ensure that the alignment requirements of the target are met, then
a pointer is constructed to the source value, and the result is obtained
by dereferencing this pointer after converting it to be a pointer to the
target type.
target type. Unchecked conversions where the target subtype is an
unconstrained array are not permitted. If the target alignment is
greater than the source alignment, then a copy of the result is
made with appropriate alignment
@sp 1
@cartouche
......@@ -8079,7 +8093,7 @@ of delay expirations for lower priority tasks.
@noindent
@c SGI info:
@ignore
Tasks map to IRIX threads, and the dispatching policy is as defied by
Tasks map to IRIX threads, and the dispatching policy is as defined by
the IRIX implementation of threads.
@end ignore
The policy is the same as that of the underlying threads implementation.
......@@ -11078,9 +11092,9 @@ streams by mixed language programs. Note though that system level buffering is
explictly enabled at elaboration of the standard I/O packages and that can have
an impact on mixed language programs, in particular those using I/O before
calling the Ada elaboration routine (e.g. adainit). It is recommended to call
the Ada elaboration routine before performing any I/O or when impractical, flush
the common I/O streams and in particular Standard_Output before elaborating the
Ada code.
the Ada elaboration routine before performing any I/O or when impractical,
flush the common I/O streams and in particular Standard_Output before
elaborating the Ada code.
@node FORM Strings
@section FORM Strings
......@@ -12154,6 +12168,11 @@ of GNAT, and will generate a warning message.
* Ada.Text_IO.C_Streams (a-tiocst.ads)::
* Ada.Wide_Text_IO.C_Streams (a-wtcstr.ads)::
* Ada.Wide_Wide_Text_IO.C_Streams (a-ztcstr.ads)::
* GNAT.Altivec (g-altive.ads)::
* GNAT.Altivec.Conversions (g-altcon.ads)::
* GNAT.Altivec.Vector_Operations (g-alveop.ads)::
* GNAT.Altivec.Vector_Types (g-alvety.ads)::
* GNAT.Altivec.Vector_Views (g-alvevi.ads)::
* GNAT.Array_Split (g-arrspl.ads)::
* GNAT.AWK (g-awk.ads)::
* GNAT.Bounded_Buffers (g-boubuf.ads)::
......@@ -12451,6 +12470,55 @@ C streams and @code{Wide_Wide_Text_IO}. The stream identifier can be
extracted from a file opened on the Ada side, and an Ada file
can be constructed from a stream opened on the C side.
@node GNAT.Altivec (g-altive.ads)
@section @code{GNAT.Altivec} (@file{g-altive.ads})
@cindex @code{GNAT.Altivec} (@file{g-altive.ads})
@cindex AltiVec
@noindent
This is the root package of the GNAT AltiVec binding. It provides
definitions of constants and types common to all the versions of the
binding.
@node GNAT.Altivec.Conversions (g-altcon.ads)
@section @code{GNAT.Altivec.Conversions} (@file{g-altcon.ads})
@cindex @code{GNAT.Altivec.Conversions} (@file{g-altcon.ads})
@cindex AltiVec
@noindent
This package provides the Vector/View conversion routines.
@node GNAT.Altivec.Vector_Operations (g-alveop.ads)
@section @code{GNAT.Altivec.Vector_Operations} (@file{g-alveop.ads})
@cindex @code{GNAT.Altivec.Vector_Operations} (@file{g-alveop.ads})
@cindex AltiVec
@noindent
This package exposes the Ada interface to the AltiVec operations on
vector objects. A soft emulation is included by default in the GNAT
library. The hard binding is provided as a separate package. This unit
is common to both bindings.
@node GNAT.Altivec.Vector_Types (g-alvety.ads)
@section @code{GNAT.Altivec.Vector_Types} (@file{g-alvety.ads})
@cindex @code{GNAT.Altivec.Vector_Types} (@file{g-alvety.ads})
@cindex AltiVec
@noindent
This package exposes the various vector types part of the Ada binding
to AltiVec facilities.
@node GNAT.Altivec.Vector_Views (g-alvevi.ads)
@section @code{GNAT.Altivec.Vector_Views} (@file{g-alvevi.ads})
@cindex @code{GNAT.Altivec.Vector_Views} (@file{g-alvevi.ads})
@cindex AltiVec
@noindent
This package provides public 'View' data types from/to which private
vector representations can be converted via
GNAT.Altivec.Conversions. This allows convenient access to individual
vector elements and provides a simple way to initialize vector
objects.
@node GNAT.Array_Split (g-arrspl.ads)
@section @code{GNAT.Array_Split} (@file{g-arrspl.ads})
......
......@@ -167,39 +167,22 @@ private
pragma Suppress_Initialization (Priorities_Mapping);
-- Suppress initialization in case gnat.adc specifies Normalize_Scalars
-- On NT, the default mapping preserves the standard 31 priorities
-- of the Ada model, but maps them using compression onto the 7
-- priority levels available in NT.
-- To replace the default values of the Underlying_Priorities mapping,
-- copy this source file into your build directory, edit the file to
-- reflect your desired behavior, and recompile with the command:
-- $ gcc -c -O3 -gnatpgn system.ads
-- then recompile the run-time parts that depend on this package:
-- $ gnatmake -a -gnatn -O3 <your application>
-- then force rebuilding your application if you need different options:
-- $ gnatmake -f <your options> <your application>
Underlying_Priorities : constant Priorities_Mapping :=
(Priority'First .. 1 => -15,
2 .. Default_Priority - 2 => -2,
Default_Priority - 1 => -1,
Default_Priority => 0,
Default_Priority + 1 .. 19 => 1,
20 .. Priority'Last => 2,
Interrupt_Priority => 15);
-- On NT, the default mapping preserves the standard 31 priorities
-- of the Ada model, but maps them using compression onto the 7
-- priority levels available in NT.
-- To replace the default values of the Underlying_Priorities mapping,
-- copy this source file into your build directory, edit the file to
-- reflect your desired behavior, and recompile using Makefile.adalib
-- which can be found under the adalib directory of your gnat installation
pragma Linker_Options ("-Wl,--stack=0x2000000");
-- This is used to change the default stack (32 MB) size for non tasking
......
......@@ -172,8 +172,9 @@ package Types is
type Column_Number is range 0 .. 32767;
for Column_Number'Size use 16;
-- Column number (assume that 2**15 is large enough, see declaration of
-- Hostparm.Max_Line_Length, and also processing for -gnatyM in Stylesw)
-- Column number (assume that 2**15 - 1 is large enough). The range for
-- this type is used to compute Hostparm.Max_Line_Length. See also the
-- processing for -gnatyM in Stylesw).
No_Column_Number : constant Column_Number := 0;
-- Special value used to indicate no column number
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment