mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-10 04:20:29 +08:00
exp_ch5.adb, [...]: Minor comment additions.
2014-07-29 Robert Dewar <dewar@adacore.com> * exp_ch5.adb, exp_ch9.adb: Minor comment additions. * gnat_rm.texi: Complete list of implementation aspects. * aspects.ads: Minor comment clarification. From-SVN: r213196
This commit is contained in:
parent
a2cc9797df
commit
0677a1c750
@ -1,3 +1,9 @@
|
||||
2014-07-29 Robert Dewar <dewar@adacore.com>
|
||||
|
||||
* exp_ch5.adb, exp_ch9.adb: Minor comment additions.
|
||||
* gnat_rm.texi: Complete list of implementation aspects.
|
||||
* aspects.ads: Minor comment clarification.
|
||||
|
||||
2014-07-29 Ed Schonberg <schonberg@adacore.com>
|
||||
|
||||
* exp_ch5.adb (Expand_N_Assignment_Statement): If the target type
|
||||
|
@ -194,7 +194,7 @@ package Aspects is
|
||||
Aspect_Volatile_Components,
|
||||
|
||||
-- Aspects that have a static boolean value but don't correspond to
|
||||
-- pragmas
|
||||
-- pragmas with a single argument that it is the entity in question.
|
||||
|
||||
Aspect_Lock_Free); -- GNAT
|
||||
|
||||
|
@ -2001,6 +2001,13 @@ package body Exp_Ch5 is
|
||||
if Is_Access_Type (Typ)
|
||||
and then Can_Never_Be_Null (Etype (Lhs))
|
||||
and then not Can_Never_Be_Null (Etype (Rhs))
|
||||
|
||||
-- If an actual is an out parameter of a null-excluding access
|
||||
-- type, there is access check on entry, so we set the flag
|
||||
-- Suppress_Assignment_Checks on the generated statement to
|
||||
-- assign the actual to the parameter block, and we do not want
|
||||
-- to generate an additional check at this point.
|
||||
|
||||
and then not Suppress_Assignment_Checks (N)
|
||||
then
|
||||
Apply_Constraint_Check (Rhs, Etype (Lhs));
|
||||
|
@ -4768,6 +4768,12 @@ package body Exp_Ch9 is
|
||||
Make_Assignment_Statement (Loc,
|
||||
Name => N_Var,
|
||||
Expression => Relocate_Node (Actual)));
|
||||
|
||||
-- If actual is an out parameter of a null-excluding
|
||||
-- access type, there is access check on entry, so set
|
||||
-- Suppress_Assignment_Checks on the generated statement
|
||||
-- that assigns the actual to the parameter block
|
||||
|
||||
Set_Suppress_Assignment_Checks (Last (Stats));
|
||||
end if;
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
\input texinfo @c -*-texinfo-*-
|
||||
|
||||
@c %**start of header
|
||||
@ -308,6 +307,7 @@ Implementation Defined Aspects
|
||||
* Aspect Initializes::
|
||||
* Aspect Inline_Always::
|
||||
* Aspect Invariant::
|
||||
* Aspect Iterable::
|
||||
* Aspect Linker_Section::
|
||||
* Aspect Object_Size::
|
||||
* Aspect Part_Of::
|
||||
@ -369,8 +369,8 @@ Implementation Defined Attributes
|
||||
* Attribute Implicit_Dereference::
|
||||
* Attribute Integer_Value::
|
||||
* Attribute Invalid_Value::
|
||||
* Attribute Iterator_Element::
|
||||
* Attribute Iterable::
|
||||
* Attribute Iterator_Element::
|
||||
* Attribute Large::
|
||||
* Attribute Library_Level::
|
||||
* Attribute Lock_Free::
|
||||
@ -4493,7 +4493,7 @@ end IO_Card;
|
||||
@end smallexample
|
||||
|
||||
@node Pragma Lock_Free
|
||||
@unnumberedsec Pragma Locl_Free
|
||||
@unnumberedsec Pragma Lock_Free
|
||||
@findex Lock_Free
|
||||
@noindent
|
||||
Syntax:
|
||||
@ -8122,6 +8122,7 @@ clause.
|
||||
* Aspect Initializes::
|
||||
* Aspect Inline_Always::
|
||||
* Aspect Invariant::
|
||||
* Aspect Iterable::
|
||||
* Aspect Linker_Section::
|
||||
* Aspect Lock_Free::
|
||||
* Aspect Object_Size::
|
||||
@ -8344,6 +8345,12 @@ This aspect is equivalent to pragma @code{Invariant}. It is a
|
||||
synonym for the language defined aspect @code{Type_Invariant} except
|
||||
that it is separately controllable using pragma @code{Assertion_Policy}.
|
||||
|
||||
@node Aspect Iterable
|
||||
@unnumberedsec Aspect Iterable
|
||||
@findex Iterable
|
||||
@noindent
|
||||
PLEASE ADD DOCUMENTATION HERE???
|
||||
|
||||
@node Aspect Linker_Section
|
||||
@unnumberedsec Aspect Linker_Section
|
||||
@findex Linker_Section
|
||||
|
Loading…
x
Reference in New Issue
Block a user