Contents   Index   Search   Previous   Next
 C.5 Pragma Discard_Names
1
   A pragma
Discard_Names may be used to request a reduction in storage used for
the names of certain entities. 
Syntax
2
The form of
a pragma Discard_Names is as follows:
3
  pragma Discard_Names[([On
=> ] 
local_name)];
 
4
A pragma
Discard_Names is allowed only immediately within a declarative_part,
immediately within a package_specification,
or as a configuration pragma. 
Legality Rules
5
   The local_name
(if present) shall denote a non-derived enumeration first subtype, a
tagged first subtype, or an exception. The pragma applies to the type
or exception. Without a local_name,
the pragma applies to all such entities declared after the pragma, within
the same declarative region. Alternatively, the pragma can be used as
a configuration pragma. If the pragma applies to a type, then it applies
also to all descendants of the type. 
Static Semantics
6
   If a 
local_name
is given, then a 
pragma Discard_Names
is a representation pragma.
 
7
   If the pragma applies to an enumeration type,
then the semantics of the Wide_Image and Wide_Value attributes are implementation
defined for that type; the semantics of Image and Value are still defined
in terms of Wide_Image and Wide_Value. In addition, the semantics of
Text_IO.Enumeration_IO are implementation defined. If the pragma applies
to a tagged type, then the semantics of the Tags.Expanded_Name function
are implementation defined for that type. If the pragma applies to an
exception, then the semantics of the Exceptions.Exception_Name function
are implementation defined for that exception.
Implementation Advice
8
   If the pragma applies to an entity, then the implementation
should reduce the amount of storage used for storing names associated
with that entity. 
Contents   Index   Search   Previous   Next   Legal